Я получаю следующие ошибки, что является небольшим улучшением после нескольких недель (очень частичной) получения ошибок из из моего кода:
1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\sstream(451) : error C2248: 'std::basic_ios<_Elem,_Traits>::basic_ios' : cannot access private member declared in class 'std::basic_ios<_Elem,_Traits>'
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> C:\Program Files\Microsoft Visual Studio 9.0\VC\include\ios(151) : see declaration of 'std::basic_ios<_Elem,_Traits>::basic_ios'
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> This diagnostic occurred in the compiler generated function 'std::basic_ostringstream<_Elem,_Traits,_Alloc>::basic_ostringstream(const std::basic_ostringstream<_Elem,_Traits,_Alloc> &)'
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>,
1> _Alloc=std::allocator<char>
1> ]
Я перехожу из CLI в std::
классы, с которыми у меня еще меньше опыта.
Я думаю, что там, где говорится: «Эта диагностика произошла в сгенерированной компилятором функции», упоминаемая мной функция - std::ostringstream os;
.
Я использую os
примерно так:
os << "Level: " << levelName << ", contains unexpected header at line " << (numMatched + 1)
<< "\nExpected:\n" << longStringHeader;
addToErrorSTDstring(os);
потому что std::string
конкатенация выстраивалась в линию с каждым добавлением.
Единственный способ использовать ostringstream
-
bool LevelParser::addToErrorSTDstring(std::ostringstream os){
, который, как я считаю, ildjarn просто определенно определил как проблему для меня.