gpt4 book ai didi

c++ - 发送的参数与函数 def 不匹配

转载 作者:行者123 更新时间:2023-11-28 06:00:57 25 4
gpt4 key购买 nike

我有以下场景适用于 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*)’

最佳答案

std::idstream具有以下构造函数:

basic_ifstream();
explicit basic_ifstream( const char* filename,
ios_base::openmode mode = ios_base::in );

explicit basic_ifstream( const string& filename,
ios_base::openmode mode = ios_base::in );

basic_ifstream( basic_ifstream&& other );

basic_ifstream( const basic_ifstream& rhs) = delete;

现在,当您调用返回 wchar_t*fn.c_str() 时,因为 fn 是一个 wstrgin .如您所见,没有采用 wchar_t* 的重载,因此编译器会报错。

查看我的 MSVS2015 拷贝,微软似乎添加了一个构造函数,该构造函数确实采用 wchar_t*,这就是它在那里工作的原因,

关于c++ - 发送的参数与函数 def 不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33302302/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com