【发布时间】:2011-12-10 11:42:43
【问题描述】:
我有一个像这样的类构造函数:
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。
有人知道我哪里出错了吗?为什么这段代码不能编译?如果我缺乏信息,我会提前道歉。我会为那些要求更多信息的人更新我的问题。
【问题讨论】:
标签: c++ stl compiler-errors stringstream stlport