ошибка C2678 при использовании std :: stringstream при миграции на VS2010 - PullRequest
0 голосов
/ 02 февраля 2012

Вот мой код, который отлично работал в VS2005:

template <typename T> void _get(const PTree & p, T & value) const
{
    std::stringstream s(p._value);
    s >> value;
}

Теперь в Visual Studio 2010 у меня есть эта ошибка:

Ошибка 1, ошибка C2678: двоичный файл «>>»: не найден оператор, который принимает левый операнд типа «std :: stringstream» (или нет допустимого преобразования)

на этой строчке:

s >> value;

Что я могу сделать, чтобы решить эту проблему?

Edit: вот глубинная ошибка:

while trying to match the argument list '(std::stringstream, btVector3)'
ptree.h(162) 
: see reference to function template instantiation 'void PTree::_get<T>(const PTree &,T &) const' being compiled
with
[
    T=btVector3
]
errorfile.cpp(240)
: see reference to function template instantiation 'bool PTree::get<btVector3>(const std::string &,T &) const' being compiled
with
[
    T=btVector3
]
...