我有一个像这样的类构造函数:
DotDashLogMatcher( std::stringstream const& pattern );
我这样称呼它:
std::stringstream s;
DotDashLogMatcher( s << "test" );
这是一个过于简单的例子,但本质上就是这样。这是我得到的确切编译器错误。请注意,由于某种原因,传入的结果对象是 basic_ostream,我不确定这是否正常。它无法像我的函数期望的那样将其转换为 std::stringstream 。
error C2664: 'DotDashLogMatcher::DotDashLogMatcher(const stlpd_std::stringstream &)' : cannot convert parameter 1 from 'stlpd_std::basic_ostream<_CharT,_Traits>' to 'const stlpd_std::stringstream &'
with
[
_CharT=char,
_Traits=stlpd_std::char_traits<char>
]
Reason: cannot convert from 'stlpd_std::basic_ostream<_CharT,_Traits>' to 'const stlpd_std::stringstream'
with
[
_CharT=char,
_Traits=stlpd_std::char_traits<char>
]
No constructor could take the source type, or constructor overload resolution was ambiguous
我在 Windows 上使用 VS2003 和 STLport。
有人知道我在这里哪里出错了吗?为什么这段代码不能编译?如果我缺乏信息,我会提前道歉。我将为那些要求更多信息的人更新我的问题。