【发布时间】:2015-10-23 12:25:45
【问题描述】:
我有以下适用于 Visual C++ 10 但不适用于 Linux 上的 GCC 的场景:
呼叫:
value& v;
wstring fn(L"");
char_conv::str_to_wstr( path, fn );
parse( v, ifstream( fn.c_str() ) ); //<-- ERROR
函数定义:
inline std::string parse(value& out, std::istream& is){...}
这是我得到的错误:
In member function ‘std::string PrintInvoker::extractParameter(const std::string&, picojson::value&)’:
error: no matching function for call to ‘std::basic_ifstream<char, std::char_traits<char> >::basic_ifstream(const wchar_t*)’
【问题讨论】:
-
ifstream只是不接受宽字符串:en.cppreference.com/w/cpp/io/basic_ifstream/basic_ifstream -
您还尝试将临时绑定到非 const 左值引用,这是不允许的。
标签: c++ visual-c++ gcc