c – 为什么此类声明不适用于Visual Studio
发布时间:2020-12-16 05:52:03 所属栏目:百科 来源:网络整理
导读:所以我试图获得一些为 gcc编写的代码,以便在Visual Studio 2008上编译.我有一个问题,我已经缩小到这个: class value_t{public: typedef std::dequevalue_t sequence_t; typedef sequence_t::iterator iterator;}; 此代码失败: 1cpptest.cpp1c:program fil
所以我试图获得一些为
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 filesmicrosoft visual studio 9.0vcincludedeque(518) : error C2027: use of undefined type 'value_t' 1> c:tempcpptestcpptest.cpp(10) : see declaration of 'value_t' 1> c:tempcpptestcpptest.cpp(13) : see reference to class template instantiation 'std::deque<_Ty>' being compiled 1> with 1> [ 1> _Ty=value_t 1> ] 1>c:program filesmicrosoft visual studio 9.0vcincludedeque(518) : error C2027: use of undefined type 'value_t' 1> c:tempcpptestcpptest.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中的一个错误.谁能解释发生了什么,和/或提供解决方案?谢谢. 解决方法
它未定义的行为.请参阅c.l.c .moderated上的
this链接
来自Daniel K的回答: –
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |