मेरे पास एक थर्ड-पार्टी अनकॉप्ड एनम है (जिसे मैं संशोधित नहीं कर सकता) कि मैं वास्तव में अपने स्वयं के स्कोप्ड एनम पर डालना चाहता हूं। मैं रूपांतरण ऑपरेटर की तरह कुछ कैसे प्रदान कर सकता हूं?कैसे enums कास्ट करने के लिए?
मैं क्या करना चाहते हैं क्या कुछ इस तरह है:
#include <iostream>
enum ThirdPartyLetter {
A=4,
B=5
};
enum class MyNumber {
ONE=1,
TWO=2
// This doesn't compile, of course
/*Number(const ThirdPartyLetter& rhs) {
if(rhs == ThirdPartyLetter::A) {
return ONE;
}
else {
return TWO;
}
}*/
};
int main() {
ThirdPartyLetter letter = ThirdPartyLetter::A;
MyNumber number = static_cast<MyNumber>(letter);
// Without the cast, this prints 4 (an invalid enum value!)
std::cout << int(number) << std::endl;
}
वहाँ ThirdPartyNumber
से MyNumber
लिए कास्टिंग के कुछ प्रकार प्रदान करने के लिए एक तरीका है?
उत्पादन आप अपने कलाकारों के साथ उम्मीद कर रहे थे क्या था:
वैसे भी, आप अभी भी अपने रूपांतरण तर्क को केंद्रीकृत और इस तरह कुछ करने के लिए उपयोग कर सकते हैं लक्षण? – user
खैर, मैं चाहता हूं कि कलाकार को थर्डपार्टी लिटर :: ए टू मायनंबर :: वन, और थर्डपार्टी लिटर :: बी टू मायनंबर :: TWO में कनवर्ट करना पड़े। तो मेरा अनुमानित आउटपुट 1. –