0
我有一個COMMON.H文件:C++二維矢量語法錯誤
typedef enum {
num_letters = 26,
num_directions = 2
} constants;
和另一個h文件的一類:
#include "Common.h"
using namespace common;
... some code ...
vector< vector<uint> > data(constants::num_directions, vector<uint>(constants::num_letters, 0));
我檢查向量的語法,它應該是正確;我也使用C++ 11 std;然而,它給我以下錯誤:
error: 'constants::num_directions' is not a type
vector< vector<uint> > data(constants::num_directions, vector<uint>(constants::num_letters, 0));
error: expected unqualified-id before ',' token
vector< vector<uint> > data(constants::num_directions, vector<uint>(constants::num_letters, 0));
^
error: expected ')' before ',' token
error: expected ')' before ',' token
error: expected unqualified-id before numeric constant
vector< vector<uint> > data(constants::num_directions, vector<uint>(constants::num_letters, 0));
我不知道爲什麼它發生,非常感謝你提前!
另一個錯誤是你使用'constants :: num_directions'。 'enum'只是'num_directions'。另外你使用的typedef在C++中沒有效果(在C中它)。如果你想擁有'constants :: num_directions'(你應該這樣做),你需要寫'enum class constants {...}'或者把常規的'enum'放到一個名字空間中。 – nwp
這適用於我。你可以構造一個[最小示例](http://stackoverflow.com/help/mcve)的問題? – Taus