Почему приведение типов в стиле C -является обязательным при инициализации данных POD в списке инициализаторов?

struct POD { int i, j; };    
class A {
  POD m_pod;
public:
  A() : m_pod({1,2}) {} // error
  A() : m_pod(static_cast({1,2})) {} // error
  A() : m_pod((POD) {1,2}) {} // ok!
};

Я вижу это в старом производственном коде, скомпилированном с помощью g++34, до тех пор я не знал об этой функции.
Это особенность g++ ? Если нет, то зачем нужно приведение типов, и это тоже разрешено только приведением стиля C -?

5
задан iammilind 6 June 2012 в 04:18
поделиться