Can the return type inside templates in C++ be controlled? -
मेरे पास एक templated फ़ंक्शन है:
टेम्पलेट & lt; class T & gt; टी फू (स्ट्रिंग sReturnType) {// छद्म कोड यदि (sReturnType = "string") {स्ट्रिंग तालिका में लुकअप डेटा स्ट्रिंग लौटाता है} और {नंबर तालिका वापसी संख्या का उत्तर देखें}}
< P> उपयोग कुछ ऐसा होगा: फ़्यू ("स्ट्रिंग") फ़ंक्शन के अंदर, तर्क होना चाहिए कि या तो स्ट्रिंग तालिका से खींचती है या एक संख्या तालिका और वह मान देता है। मैं इस के आसपास खेला और काम करने में सक्षम नहीं था जैसा कि मैंने उम्मीद की थी ऐसा लगता है कि यह बहुत सीधे आगे और आसान करना चाहिए। क्या यह एक वैध दृष्टिकोण और टेम्पलेट्स का उपयोग है? मैंने टेम्प्लेट स्पेशलाइजेशन पर देखा, लेकिन फिर आप दो अलग-अलग कोड ठिकानों को वैसे भी लिखते ही हैं, क्यों एक अतिभारित फ़ंक्शन का उपयोग नहीं करें? क्या कोई बेहतर तरीका है?
नहीं - भिन्न रिटर्न प्रकार वाले फ़ंक्शन को घोषित करने का कोई तरीका नहीं है ( एक टेम्पलेट फ़ंक्शन में भिन्न रिटर्न प्रकार हो सकते हैं, लेकिन ये एक टेम्प्लेट पैरामीटर पर निर्भर करते हैं)।
आप इसके बजाय सभी संभावित रिटर्न प्रकारों (जैसे बढ़ावा :: किसी भी या बढ़ावा :: संस्करण) का एक प्रकार वापस कर सकते हैं।
Comments
Post a Comment