std::experimental::filesystem::path:: string,wstring,u8string,...
|
template
<
class
CharT,
class
Traits
=
std::
char_traits
<
CharT
>
,
class
Alloc
=
std::
allocator
<
CharT
>
>
|
(1) | (filesystem TS) |
| (2) | (filesystem TS) | |
|
std::
string
string
(
)
const
;
|
||
|
std::
wstring
wstring
(
)
const
;
|
||
|
std::
string
u8string
(
)
const
;
|
||
|
std::
u16string
u16string
(
)
const
;
|
||
|
std::
u32string
u32string
(
)
const
;
|
||
ネイティブのパス名形式での内部パス名を、特定の文字列型に変換して返します。変換がある場合は、 todo で指定されています。
u8string()
の場合のエンコーディングは常にUTF-8です。
目次 |
パラメータ
(なし)
戻り値
ネイティブのパス名形式での内部パス名を、指定された文字列型に変換したもの。
例外
実装定義の例外をスローする可能性があります。
例
#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"); // ネイティブ文字列表現はOS APIで使用可能 std::ofstream(p) << "File contents"; // これはoperator string()を使用 if (std::FILE* f = std::fopen(p.c_str(), "r")) { int ch; while ((ch=fgetc(f))!= EOF) putchar(ch); std::fclose(f); } // マルチバイトおよびワイド表現は出力に使用可能 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); }
出力例:
File contents File name in narrow multibyte encoding: 要らない.txt File name in wide encoding: 要らない.txt
関連項目
|
ジェネリックパス名形式に変換されたパスを文字列として返す
(公開メンバ関数) |