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++ विशिष्ट सुविधा है? यदि नहीं, तो टाइपकास्टिंग की आवश्यकता क्यों है और यह भी सी-स्टाइल कास्ट की अनुमति है?प्रारंभकर्ता सूची में पीओडी डेटा शुरू करते समय सी-स्टाइल टाइपकास्टिंग अनिवार्य क्यों है?
मेरा अनुमान है '{1,2}' नहीं एक पॉड प्रकार है और एक 'reinterpret_cast' हो रहा है। –