私は最近、ブーストライブラリを使い始めました。特定のブーストヘッダ(おそらくfilesystem.h)をインクルードした後、cout関数は文字列とwstringを同じプログラムに完全に出力できます。さらに、wstringを印刷すると、内容は引用符で囲まれます。cstがwstringとその印字を可能にするboostライブラリのどの部分ですか?
私は現在の動作に非常に満足しており、誤った行為を避けるためにその背後にあるメカニズムを完全に理解したいと考えています。
私は最近、ブーストライブラリを使い始めました。特定のブーストヘッダ(おそらくfilesystem.h)をインクルードした後、cout関数は文字列とwstringを同じプログラムに完全に出力できます。さらに、wstringを印刷すると、内容は引用符で囲まれます。cstがwstringとその印字を可能にするboostライブラリのどの部分ですか?
私は現在の動作に非常に満足しており、誤った行為を避けるためにその背後にあるメカニズムを完全に理解したいと考えています。
boost::filesystem::path
は、string_type
の暗黙的変換コンストラクタを持ちます。これはstd::basic_string<value_type>
と定義されています。 value_type
は、環境に応じて可変的に定義されます。特に、Windowsではwchar_t
です。つまり、Windowsではstring_type
はstd::basic_string<wchar_t>
、a.k.a. std::wstring
です。
wstring
は、operator<<
で印刷するためにオーバーロードされるboost::filesystem::path
に暗黙的に変換されています。