- एक enum केवल एक रैवल्यू है, न कि एक लालसा। इसका कोई पता नहीं है।
- एक enum केवल एक संकलन समय स्थिर हो सकता है, रनटाइम स्थिर नहीं।
- Enums ऑब्जेक्ट फ़ाइल में कोई भी ब्लोट नहीं जोड़ता है।
- Enums तेजी से संकलित करें और संकलन समय पर कम स्मृति का उपयोग करें। आम तौर पर यह नगण्य है, लेकिन यदि आप पर्याप्त जटिल मेटाप्रोग्रामिंग कर रहे हैं तो इससे कोई फर्क नहीं पड़ता।
सामान्य में, चीजें हैं जो संकलन समय स्थिरांक के रूप में स्थिरांक क्रम के लिए विरोध कर रहे हैं के लिए, वहाँ एक enum का उपयोग कर के लिए कोई नुकसान है, और यह अपने इरादों बिल्कुल स्पष्ट कर रहे हैं और मामूली रूप से और अधिक कुशल होने के फायदे हैं।
संपादित करें: enums के लिए एक अन्य उपयोग केस कंपाइलर को असंबद्ध कर सकता है चाहे किसी फ़ंक्शन को रनटाइम या संकलन समय पर मूल्यांकन किया जाना चाहिए। यदि किसी फ़ंक्शन का परिणाम immutable
स्टैक वैरिएबल को असाइन किया गया है, तो फ़ंक्शन का रनटाइम पर मूल्यांकन किया जाएगा। यदि आप एक ही दायरे में enum
का उपयोग करते हैं, तो परिणाम का संकलन समय पर मूल्यांकन किया जाएगा।