У меня есть конструктор класса примерно так:
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
Я использую VS2003 и STLport в Windows.
Кто-нибудь знает, где яидет не так здесь?Почему этот код не скомпилируется?Я заранее прошу прощения, если мне не хватает информации.Я обновлю свой вопрос для тех, кто запрашивает дополнительную информацию.