2013-03-31 77 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