所以我想創建同一枚舉的多個實例,然後將每個枚舉存儲在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標準...... –