08/04/18 23:23:06
std::vector<std::string> vtSource; を UTF16 に変換して std::vector<std::wstring> vtDest; に保存したいと思っています.
// string >> wstring 変換関数(中身はダミー)
std::wstring A2WString(const std::string& strSource))
{
return std::wstring(L"out");
}
この変換関数での変換は以下のコードでできました.
std::vector<std::string> vtSource;
std::vector<std::wstring> vtDest;
vtSource.push_back( "AbC" );
std::transform( vtSource.begin(), vtSource.end(), std::inserter( vtDest, vtDest.end() ), A2WString );
しかし,変換関数にデフォルト引数があるとコンパイルエラーになりました.
std::wstring A2WString2(const std::string& strSource, int i=0)//デフォルト引数がある
{
return std::wstring(L"out");
}
transform 第4引数で bind2nd や ptr_fun を使用すればいいような気がするんですが,どのように書けばいいんでしょうか?
std::transform( vtSource.begin(), vtSource.end(), std::inserter( vtDest, vtDest.end() ),
std::bind2nd( std::ptr_fun(A2WString2), 0) );//コンパイルエラー
Window2000
Visual C++ 2005 express edition