struct POD { int i, j; };
class A {
POD m_pod;
public:
A() : m_pod({1,2}) {} // error
A() : m_pod(static_cast<POD>({1,2})) {} // error
A() : m_pod((POD) {1,2}) {} // ok!
};
我在用 编译的旧生产代码中看到了这一点g++34
,直到那时我才知道这个功能。
它是g++的特定功能吗?如果不是那么,为什么需要进行类型转换,而且也只允许 C 风格的转换?