以下代码未构建。
struct some_struct {
some_struct() {
... do something here to specify size of v; how ??
}
enum {
ZERO,
ONE,
TWO
};
static std::vector<std::string> v(TWO);
};
欣赏任何想法.. 似乎没有任何迹象表明这是非法使用。
错字:修正了向量语法和更正:我只在 2005/2008 年测试过,而不是 2010 年。对于那些询问的人的错误信息:
error C2061: syntax error : identifier 'TWO'
进一步编辑:
看起来编译器认为v
是一个返回 type 的函数std::vector<std::string>
;所有这些都在里面struct
(我现在进一步更正了我的帖子以进一步澄清这一点)。也许我需要省略它与类型混淆的大小参数并在构造函数中的某处声明大小?我的意思是让这个向量成为结构的静态数据成员。如何让编译器理解这一点?
注意:在 Linux 上,我在一个类似于我最初拥有的代码(没有结构)的独立代码上对其进行了测试......所以也许它不会在 Linux 上通过这个更正进行编译。所以我删除了它在 Linux 上构建 OK 的评论。道歉。