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!
};
I see this in an old production code compiled with g++34
, until then I din't know this feature.
Is it a g++ specific feature ? If not then, why is typecasting needed and that's too only C-style cast is allowed ?