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