enum class E
{};
int main()
{
E e1{ 0 }; // ok
E e2 = 0; // not ok
// error : cannot initialize a variable of
// type 'E' with an rvalue of type 'int'
}
मेरा संकलक विकल्प -std=c++1z
के साथ है।स्टैटिक_कास्ट के बिना एक पूर्णांक टाइप किए गए enum को पूर्णांक के साथ क्यों प्रारंभ किया जा सकता है?
यह अपेक्षा की जाती है कि E e2 = 0;
ठीक नहीं है, क्योंकि E
दृढ़ता से टाइप किया गया है। हालांकि, मुझे आश्चर्य हुआ कि E e1{ 0 };
ठीक होना चाहिए।
static_cast
के बिना एक दृढ़ता से टाइप किए गए enum को पूर्णांक के साथ क्यों प्रारंभ किया जा सकता है?
[दस्तावेज] (http://en.cppreference.com/w/cpp/language/enum) के अनुसार सी ++ 17 के बाद से अनुमति है – UnholySheep