std::experi...ath::native,(3)
Welcome to the <pink>std::experi...ath::native,(3)</pink> page from the C++ Standard Libary manual β yes, that's the exact spelling on the page, and we're keeping it. π
This is the bestie briefing for std::experimental::filesystem::path::c_str and std::experimental::filesystem::path::native, with all the signatures, notes, and tiny details intact.
π NAME π
Okay so the NAME block is doing that cute little dash thing, and it is literally:
std::experimental::filesystem::path::c_str,std::experimental::filesystem::path::native,
-
std::experimental::filesystem::path::c_str,std::experimental::filesystem::path::native,
No cap, that's the whole NAME vibe.
π Synopsis π
Here's the signature lineup, exactly as printed:
const value_type* c_str() const; (1) (filesystem TS)
const string_type& native() const; (2) (filesystem TS)
operator string_type() const; (3) (filesystem TS)
It's all about accessing the native path name as a character string. And the numbered tea:
1)is equivalent tonative().c_str().2)returns the native string representation of the pathname by reference.3)returns the native string representation of the pathname by value.
π Parameters π
(none) β literally none, bestie.
π Return value π
The native string representation of the pathname, using native syntax, native character type, and native character encoding. This string is suitable for use with OS APIs.
π¨ Exceptions π¨
1,2) β noexcept specification: noexcept.
ποΈ Notes ποΈ
The conversion function (3) is provided so that standard file-opening APIs that accept std::basic_string file names, such as the std::ifstream constructor, can use pathnames with no changes to code:
fs::path p = "/tmp/text.txt";
std::ifstream f(p);
πΈ Example πΈ
// Run this code
#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 β¨
File contents
File name in narrow multibyte encoding: θ¦γγͺγ.txt
File name in wide encoding: θ¦γγͺγ.txt
π See also π
string,wstring,u8string,u16string,u32stringβ returns the path in native pathname format converted to a string (public member function)generic_string,generic_wstring,generic_u8string,generic_u16string,generic_u32stringβ returns the path in generic pathname format converted to a string (public member function)
π·οΈ Categories π·οΈ
Noindexed pagesunconditionally noexcept
π«£ Hidden categories π«£
Pages with unreviewed unconditional noexcept templatePages with unreviewed noexcept template
That's the whole page, bestie. Source/version/date sign-off: http://cppreference.com Β· 2024.06.10 Β· std::experi...ath::native,(3). Slay and bye πβ¨
π¦ 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