2013-03-31 54 views
0

所以我想创建同一枚举的多个实例,然后将每个枚举存储在Visual C++中的列表中。我计划使用一个通用列表,但可以采用任何其他方式来执行此操作。无论如何,当我创建一个List实例时,我得到的错误是Name is not a valid generic argument。预先感谢任何帮助!符合可视化C++中枚举的列表

enum Name 
{ 
    one, two, three, 
}; 

void GetInput(List<Name> names); 
+0

什么是'List'?它是*不*在C + + 03或C + + 11标准...... –

回答

3

如果你的目标c++/cli,这个代码编译好(注意,现在枚举是托管枚举,而不是一个非托管一个像你定义一个):

using namespace System::Collections::Generic; 

public enum class Name 
{ 
    one, two, three, 
}; 

void GetInput(List<Name> names); 
0

也许你应该切换到一个更好,更C++11(或C++ 03),编译器和/或使用std::list代替List

Basic代码。以下代码

#include <list> 
enum Name { 
    one, two, three 
}; 
void GetInput(std::list<Name> names); 

在Linux上被接受时没有警告,g++-4.8 -Wall -std=c++11 -c us.cc。我正在使用刚刚发布的GCC 4.8版本。但同样的例子也适用于旧的g++-4.6 -Wall -c us.cc使用一些以前的C++标准。

请注意,我用的std::list(因为List在C++ 2011标准不 - 也没有在以前的标准,如C++ 03)。也许你的编译器可能更喜欢std::list [而不是List](或可能是std::vector,或其他一些标准的C++ 11 container),这是标准吗?

+0

感谢这个答案,这两种方法似乎工作正常 – user2201609

+0

'std :: list'不工作像'List' ,它像'LinkedList'一样工作。 'List'是'std :: vector'的模拟。 – Pavel