Поэтому я пытаюсь получить некоторый код, написанный для gcc, для компиляции в Visual Studio 2008. У меня есть проблема, которую я сузил до этого:
class value_t
{
public:
typedef std::deque<value_t> sequence_t;
typedef sequence_t::iterator iterator;
};
Этот код не работает:
1>cpptest.cpp
1>c:\program files\microsoft visual studio 9.0\vc\include\deque(518) : error C2027: use of undefined type 'value_t'
1> c:\temp\cpptest\cpptest.cpp(10) : see declaration of 'value_t'
1> c:\temp\cpptest\cpptest.cpp(13) : see reference to class template instantiation 'std::deque<_Ty>' being compiled
1> with
1> [
1> _Ty=value_t
1> ]
1>c:\program files\microsoft visual studio 9.0\vc\include\deque(518) : error C2027: use of undefined type 'value_t'
1> c:\temp\cpptest\cpptest.cpp(10) : see declaration of 'value_t'
Однако, когда я пытаюсь это сделать с помощью std :: vector, он прекрасно компилируется:
class value_t
{
public:
typedef std::vector<value_t> sequence_t;
typedef sequence_t::iterator iterator;
};
Что не так? Я пытался добавить «typename» везде, где только мог придумать, но на данный момент я думаю, что это просто ошибка в Dinkumware STL. Может кто-нибудь объяснить, что происходит, и / или предложить решение? Благодаря.