使用g ++的标准模板库

时间:2009-06-04 18:46:42

标签: visual-c++ stl g++

从linux中的Windows迁移程序时,我遇到了使用c ++标准模板库的问题。我正在尝试键入一个模板,我在'<'之前收到错误'期望的初始化程序'此行上的令牌

typedef std :: list<的std ::对<整型,双> >成对列表;

为什么使用mvc ++而不使用g ++以及我如何修复它会有什么想法呢?

4 个答案:

答案 0 :(得分:2)

我认为这是关于#includes。

以下非常简单的代码片段与Linux上的g ++完美匹配

#include <utility>
#include <list>

typedef std::list< std::pair< int,double> > PairList;

PairList x;

答案 1 :(得分:1)

关于标准包含文件要记住的一件事是允许它们但不需要相互调用。 (这并不像他们可能会通过这种方式污染命名空间,因为它们都使用命名空间std,你不应该把它搞乱。)

在MSVC ++中,有可能包含,反之亦然,但g ++标题中并非如此。因此,程序可能在MSVC ++中编译而不是在g ++中编译,源中缺少必需的标题。

确保所有必需的标题都包含在内,您应该没问题。

答案 2 :(得分:0)

#include <utility>pair了吗?

答案 3 :(得分:0)

我对G ++中的代码没有任何问题,并且通常发现它的STL支持非常棒。你有那里的所有#include指令吗?有时这些因平台而异(即使它们不应该)。