所以我想创建同一个枚举的多个实例,然后将每个枚举存储在 Visual C++ 中的列表中。我计划使用通用列表,但愿意接受任何其他方式来做到这一点。无论如何,当我创建一个List
实例时,我得到的错误是Name is not a valid generic argument
. 提前感谢您的帮助!
基本代码:
enum Name
{
one, two, three,
};
void GetInput(List<Name> names);
所以我想创建同一个枚举的多个实例,然后将每个枚举存储在 Visual C++ 中的列表中。我计划使用通用列表,但愿意接受任何其他方式来做到这一点。无论如何,当我创建一个List
实例时,我得到的错误是Name is not a valid generic argument
. 提前感谢您的帮助!
基本代码:
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
. 以下代码
#include <list>
enum Name {
one, two, three
};
void GetInput(std::list<Name> names);
g++-4.8 -Wall -std=c++11 -c us.cc
在 Linux 上被接受而没有警告。我正在使用刚刚发布的GCC 4.8版本。但是同样的例子也被旧的g++-4.6 -Wall -c us.cc
使用一些以前的 C++ 标准所接受。
请注意,我正在使用(std::list
因为不在C++2011 标准中 - 也不在 C++03 等以前的标准中)。也许您的编译器可能对标准的[ 而不是] (或者,或者其他一些标准的 C++11容器)更满意?List
std::list
List
std::vector