我正在使用“VS2017社区”,平台Windows 7.我在下次尝试时遇到错误C2100:
foo
谁能告诉我这里有什么问题?感谢。
答案 0 :(得分:3)
此结构没有构造函数。您需要的代码如下:
struct Conf {
unsigned int id;
int test1;
int test2;
int test3;
int test4;
int test5;
int test6;
};
Conf cf = {
0,
0,
0,
0,
0,
0,
0
}; // Array initializer for struct type.
答案 1 :(得分:3)
取下圆括号。编译器正在尝试使用构造函数。
#include <iostream>
struct Conf {
unsigned int id;
int test1;
int test2;
int test3;
int test4;
int test5;
int test6;
};
Conf cf { // Curlies only
1u,
0,
0,
0,
0,
0,
7
};
int main() {
std::cout << cf.id << " " << cf.test6 << '\n';
return 0;
}
答案 2 :(得分:1)
我认为问题是Most vexing parse其中
section {
width: 300vw;
display: flex;
flex-wrap: wrap;
> div {
display: flex;
}
}
div {
width: 100vw;
height: 100vh;
&:nth-child(1) {
background: purple;
}
&:nth-child(2) {
background: red;
}
&:nth-child(3) {
background: yellow;
}
&:nth-child(4) {
background: green;
}
&:nth-child(5) {
background: papayawhip;
}
&:nth-child(6) {
background: orange;
}
}
被理解为具有临时Conf cf({..});
对象作为参数的函数。
临时Conf
对象按列表初始化,如下所示。
如果初始化程序是(非括号)braced-init-list或= braced-init-list,对象或引用是 list-initialized 。
Conf
所以直接列出初始化struct S2 {
int m1;
double m2, m3;
};
S2 s21 = { 1, 2, 3.0 }; // OK
S2 s22 { 1.0, 2, 3 }; // error: narrowing
:
cf