我有一个common.h文件:
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));
我检查了vector的语法,它应该是正确的;我也在使用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));
我不确定为什么会这样,非常感谢你提前!
答案 0 :(得分:0)
您没有提供足够的代码来可靠地重现您的问题,因此我冒昧地猜测:
从编译器发出的错误消息中看起来好像它将整行解释为函数声明而不是变量定义。这可能是因为,正如评论中指出的那样,constants::num_directions
不是使用普通枚举的枚举器的有效方法。所以编译器像函数声明
ResultType f(ArgType1, Argtype2(argname2))
如果ResultTyoe为vector<vector<uint>>
,ArgType1
为constants::num_directions
且无法识别为ArgType2
,则vector<uint>
为 public EFDbContext()
:base("EFDbContext")
{
this.Configuration.ProxyCreationEnabled = true;
this.Configuration.LazyLoadingEnabled = false;
}
,然后因为它可以完全丢失不要做其余部分的头部或尾部。