का कार्यान्वयन मैं कोडप्रोजेक्ट में कुछ कोड के माध्यम से जा रहा था और सी ++ कास्टिंग के लिए निम्नलिखित कोड में आया था।सी ++ कास्ट
template <class OutputClass, class InputClass>
union horrible_union{
OutputClass out;
InputClass in;
};
template <class OutputClass, class InputClass>
inline OutputClass horrible_cast(const InputClass input){
horrible_union<OutputClass, InputClass> u;
u.in = input;
return u.out;
}
कलाकारों ने उपरोक्त तरीके को क्यों लागू किया है। हम सिर्फ मैनुअल कास्ट क्यों नहीं कर सकते हैं। क्या कोई उदाहरण दे सकता है जब एक सामान्य कलाकार काम नहीं करेगा?
एक अलग सदस्य स्थापित करने के बाद संघ के सदस्य तक पहुंच अपरिभाषित व्यवहार है, इसलिए इस 'horrible_union' दृष्टिकोण से कुछ भी बेहतर है। –
शायद यही कारण है कि इसे भयानक कास्ट नाम दिया गया है। यह मूल रूप से कुछ कंपाइलर विशिष्ट व्यवहार को लागू करने के लिए है। – KodeWarrior