所以我想创建同一枚举的多个实例,然后将每个枚举存储在Visual C++中的列表中。我计划使用一个通用列表,但可以采用任何其他方式来执行此操作。无论如何,当我创建一个List
实例时,我得到的错误是Name is not a valid generic argument
。预先感谢任何帮助!符合可视化C++中枚举的列表
enum Name
{
one, two, three,
};
void GetInput(List<Name> names);
所以我想创建同一枚举的多个实例,然后将每个枚举存储在Visual C++中的列表中。我计划使用一个通用列表,但可以采用任何其他方式来执行此操作。无论如何,当我创建一个List
实例时,我得到的错误是Name is not a valid generic argument
。预先感谢任何帮助!符合可视化C++中枚举的列表
enum Name
{
one, two, three,
};
void GetInput(List<Name> names);
如果你的目标c++/cli,这个代码编译好(注意,现在枚举是托管枚举,而不是一个非托管一个像你定义一个):
using namespace System::Collections::Generic;
public enum class Name
{
one, two, three,
};
void GetInput(List<Name> names);
也许你应该切换到一个更好,更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),这是标准吗?
感谢这个答案,这两种方法似乎工作正常 – user2201609
'std :: list'不工作像'List' ,它像'LinkedList'一样工作。 'List'是'std :: vector'的模拟。 – Pavel
什么是'List'?它是*不*在C + + 03或C + + 11标准...... –