मैं सिर्फ उत्सुक हूं कि एक enum वर्ग अंतिम हो सकता है या नहीं ... क्योंकि संकलक मुझे विरोधाभासी परिणाम दे रहे हैं।सी ++ में अंतिम enum कक्षाएं 11
कोड पर विचार करें:
source_file.cpp:3:30: error: expected ';' after top level declarator
enum class some_enums final : char
मैं:
#include <iostream>
enum class some_enums final : char
{
a = 'a',
b = 'b',
c = 'c'
};
int main()
{
some_enums aa = some_enums::a;
std::cout << "aa=" << static_cast<char>(aa) << std::endl;
}
दृश्य स्टूडियो के साथ इस संकलन 2015 संकलक (http://rextester.com/l/cpp_online_compiler_visual) काम करता है ... लेकिन बजना के साथ यह संकलन (http://rextester.com/l/cpp_online_compiler_clang) मुझे एक त्रुटि देता है मानक में कहीं भी अंतिम एनम कक्षाओं का कोई निशान नहीं देखा है, इसलिए मैं क्लैंग को श्रेय देता हूं ... हालांकि विजुअल स्टूडियो इस मामले में क्यों स्वीकार करता है हालांकि इसका उल्लेख एमएसडीएन (https://msdn.microsoft.com/en-us/library/2dzy4k6e.aspx) में नहीं किया गया है?
और एनम पर 'अंतिम' का क्या प्रभाव होगा? – bolov
[enum class] (https://msdn.microsoft.com/en-us/library/a6cskb49.aspx) दस्तावेज़ीकरण इसका उल्लेख नहीं करता है। मुझे संदेह है कि यह एक कंपाइलर बग है। – user2079303
यह भी ध्यान दें कि सी ++ में कक्षा को 'char' जैसे अंतर्निहित प्रकारों से विरासत में नहीं मिलाया जा सकता है। – Sergey