2017-07-12 5 views
2

私は最近、ブーストライブラリを使い始めました。特定のブーストヘッダ(おそらくfilesystem.h)をインクルードした後、cout関数は文字列とwstringを同じプログラムに完全に出力できます。さらに、wstringを印刷すると、内容は引用符で囲まれます。cstがwstringとその印字を可能にするboostライブラリのどの部分ですか?

私は現在の動作に非常に満足しており、誤った行為を避けるためにその背後にあるメカニズムを完全に理解したいと考えています。

答えて

2

boost::filesystem::pathは、string_typeの暗黙的変換コンストラクタを持ちます。これはstd::basic_string<value_type>と定義されています。 value_typeは、環境に応じて可変的に定義されます。特に、Windowsではwchar_tです。つまり、Windowsではstring_typestd::basic_string<wchar_t>、a.k.a. std::wstringです。

wstringは、operator<<で印刷するためにオーバーロードされるboost::filesystem::pathに暗黙的に変換されています。

関連する問題