आधुनिक C++ (C++17/C++20) में enum को स्ट्रिंग में कैसे बदलें
नमस्ते साथियों! मैं C++17 में एक प्रोग्राम लिख रहा हूँ और एक समस्या का सामना कर रहा हूँ: मुझे enum के मानों को पढ़ने योग्य रूप में आउटपुट करना है, लेकिन C++ के मानक साधन enum को स्ट्रिंग में बदलने का सीधा तरीका प्रदान नहीं करते हैं।
यहाँ मेरे कोड का उदाहरण है:
```cpp
enum class Color {
Red,
Green,
Blue,
Yellow
};
int main() {
Color c = Color::Green;
// मैं "Green" आउटपुट करना चाहता हूँ, लेकिन केवल एक संख्या मिलती है
std::cout << static_cast(c); // 1 आउटपुट करता है
return 0;
}
```
मेरी वास्तविक समस्या में enumeration में लगभग 20 मान हैं, और मैं इसे लॉगिंग और यूज़र इंटरफ़ेस के लिए उपयोग करना चाहता हूँ। अब तक मैंने एक बड़ा switch-case लिखा है, लेकिन यह भयानक है — हर बार नया मान जोड़ने पर कोड को 5 जगहों पर ठीक करना पड़ता है।
मुझे पता है कि C++ में कोई reflection नहीं है।