मैं इस तरह एक enum है:typedef और enum या enum वर्ग
enum class truth_enum {
my_true = 1,
my_false = 0
};
मैं ग्लोबल नेम स्पेस को my_true बेनकाब करने के लिए सक्षम होने के लिए चाहते हैं (वास्तव में, यह एक enum वर्ग है), तो यह है कि मैं क्या कर सकते हैं इस:
char a_flag = my_true;
या कम से कम:
char a_flag = (char)my_true;
इसके बजाय इस बात का
:
char a_flag = truth_enum::my_true;
क्या यह संभव है?
मैं कुछ इस तरह की कोशिश की है:
typedef truth_enum::my_true _true_;
मैं त्रुटि प्राप्त: enum वर्ग truth_enum में my_true एक प्रकार
मेरा अनुमान नहीं एक मूल्य के एक प्रकार है कि my_true है नाम नहीं बताती। क्या कोई विकल्प है जो मैं अपने कार्यक्रमों में इस कार्यक्षमता को सक्षम करने के लिए कर सकता हूं?
आदर्श नहीं है, लेकिन मैं कुछ ऐसा कर सकता है:
enum class : const char { ... };
const char const_flag_false = truth_enum::my_false;
हम्म ...
यदि आप एनम कक्षा का उपयोग करते हैं, तो आप उपसर्ग लिखने से नहीं बच सकते हैं। verbosity एक समस्या नहीं है जब तक कि यह पठनीयता में बाधा डालता है। – yngccc
'एनम क्लास' का एक गणक पूर्ण रूप से एक पूर्णांक में परिवर्तित नहीं होता है, इसलिए 'char a_flag = my_true;' वैसे भी गलत है। –
मैंने – user3728501