std::experi...8string,...(3)
okay so hi bestie π this page is std::experi...8string,...(3) from the C++ Standard Libary, and we are lowkey obsessed because it's all about pulling the internal pathname out in native pathname format, converted to a specific string type. It's giving path-conversion main character energy, no cap β¨
β¨ NAME β¨
std::experimental::filesystem::path::string,wstring,u8string,... - std::experimental::filesystem::path::string,wstring,u8string,...
πΈ Synopsis πΈ
okay so the signatures, verbatim, because we do not mess with code here π«Ά
template< class CharT, class Traits = std::char_traits<CharT>,
class Alloc = std::allocator<CharT> > (1)
(filesystem TS)
std::basic_string<CharT,Traits,Alloc>
string( const Alloc& a = Alloc() ) const;
std::string string() const;
std::wstring wstring() const;
std::string u8string() const; (2)
(filesystem TS)
std::u16string u16string() const;
std::u32string u32string() const;
It returns the internal pathname in native pathname format, converted to the specific string type. Conversion, if any, is specified in todo β yes, literally todo, bestie π
- All memory allocations are performed by
a. - The encoding in the case of
u8string()is always UTF-8.
π Parameters π
(none) β literally no parameters, bestie. The vibe check is empty and that's the point π«Ά
π Return value π
The internal pathname in native pathname format, converted to specified string type. That's it, that's the return π
π¦ Exceptions π¦
May throw implementation-defined exceptions. So like, implementation-defined, meaning don't @ me for exact exception types π
π Example π
Run it with the little // Run this code energy, bestie:
#include <clocale>
#include <cstdio>
#include <experimental/filesystem>
#include <fstream>
#include <iostream>
namespace fs = std::experimental::filesystem;
int main()
{
std::setlocale(LC_ALL, "en_US.utf8");
std::locale::global(std::locale("en_US.utf8"));
fs::path p = fs::u8path(u8"θ¦γγͺγ.txt");
// native string representation can be used with OS APIs
std::ofstream(p) << "File contents"; // this uses operator string()
if (std::FILE* f = std::fopen(p.c_str(), "r"))
{
int ch;
while ((ch=fgetc(f))!= EOF) putchar(ch);
std::fclose(f);
}
// multibyte and wide representation can be used for output
std::cout.imbue(std::locale());
std::cout << "\nFile name in narrow multibyte encoding: "
<< p.string() << '\n';
std::wcerr.imbue(std::locale());
std::wcerr << "File name in wide encoding: "
<< p.wstring() << '\n';
fs::remove(p);
}
π Possible output π
and the possible output is giving exactly this:
File contents
File name in narrow multibyte encoding: θ¦γγͺγ.txt
File name in wide encoding: θ¦γγͺγ.txt
π See also π
other path-string besties you might wanna check:
generic_stringgeneric_wstringβ returns the path in generic pathname format converted to a stringgeneric_u8stringβ (public member function)generic_u16stringgeneric_u32string
π Categories π
Noindexed pagesUses of dcl rev begin with nonempty note
xoxo, your Unix bestie π
β source: http://cppreference.com, version/date: 2024.06.10, page: std::experi...8string,...(3). bye bestie π«Ά
π¦ where this page comes from
- nixpkgs unstable: stdman 2024.07.05
- opensuse-leap 16.0: stdman 2024.07.05-bp160.1.9 Β· MIT
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms