में जा सकते हैं? यदि प्रकारों को जाति योग्य (स्पष्ट रूप से या स्पष्ट रूप से) चेक करना संभव है (सी ++ में)? क्या std
में कुछ है या क्या यह संभव है कि C# (C# same Question) में कोई फ़ंक्शन लिखें?जांचें कि क्या (आदिम) प्रकार C++
मैं इस चेक को प्रकार पर इस प्रकार के उदाहरण नहीं करना चाहता हूं।
मुझे सी ++ में टाइप सिस्टम के बारे में निश्चित नहीं है। क्या सी # या जावा में Type
कक्षा की तरह कुछ है? typeid(int)
मुझे मिला सबसे नजदीक था। क्या मैं एक प्रकार को एक चर में स्टोर कर सकता हूं? करीब पढ़ने की युक्तियों की सराहना की जाएगी।
उदाहरण में:
bool isCastable(false);
bool withoutLoss(true);
isCastable = isCastableFromTo(typeid(int), typeid(__int64), withoutLoss); //true
isCastable = isCastableFromTo(typeid(int), typeid(short), withoutLoss); //false
isCastable = isCastableFromTo(typeid(int), typeid(double), withoutLoss); //true
isCastable = isCastableFromTo(typeid(double), typeid(int), withoutLoss); //false
isCastable = isCastableFromTo(typeid(string), typeid(int), withoutLoss); //false
withoutLoss = false;
isCastable = isCastableFromTo(typeid(int), typeid(__int64), withoutLoss); //true
isCastable = isCastableFromTo(typeid(int), typeid(short), withoutLoss); //true
isCastable = isCastableFromTo(typeid(int), typeid(double), withoutLoss); //true
isCastable = isCastableFromTo(typeid(double), typeid(int), withoutLoss); //true
isCastable = isCastableFromTo(typeid(string), typeid(int), withoutLoss); //false
static_cast, या संकेत के लिए dynamic_cast आप मदद कर सकता है, लेकिन यह सब आपके उपयोग के मामले –
सी में पर निर्भर करता है ++ शीर्षक पर नज़र (http://www.cplusplus.com/reference/type_traits/)। आपको शायद std :: is_convertible टाइप विशेषता उपयोगी मिलती है। –
lego
भी http://en.cppreference.com/w/cpp/types/bad_cast – user2485710