2012-12-10 24 views
17

में कोई `static_if` क्यों नहीं है, मुझे आश्चर्य है कि static_if जैसी प्राकृतिक चीज़ क्यों सी ++ 11 में नहीं पहुंच पाई? कुछ लोग ऑब्जेक्ट करते हैं कि विरासत या टेम्पलेट विशेषज्ञता का उपयोग करके हम मांग किए गए परिणाम प्राप्त कर सकते हैं लेकिन:सी ++ 11

हमारे पास सरल परिस्थितियों के लिए एक सरल static_if क्यों नहीं है जब कोई स्रोत कोड को उन सभी के साथ ब्लूटेट नहीं करना चाहता?

+2

क्या संकलक आप उपयोग कर रहे है कि में 'अगर (गलत) {...} else {...}' मृत कोड को दूर नहीं करता? या क्या आपका मतलब है कि मृत कोड वैध C++ मान्य नहीं है? – hvd

+0

'enable_if' है: http://en.cppreference.com/w/cpp/types/enable_if – SomeWittyUsername

+0

@hvd परिवर्तनीय घोषणा के बारे में क्या? – Cartesius00

उत्तर

18

मुझे लगता है कि कमेटी इस सुविधा पर चर्चा करने के लिए समय कम थी, इसलिए वे सी ++ 11 के बाद इसे देरी करने का फैसला करते हैं। वैसे भी प्रस्ताव यहाँ है: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2012/n3329.pdf

+0

अंत में एक जवाब है, धन्यवाद :) – Cartesius00

+0

@Martin आपने देखा है [स्टेटिक अगर मैं एक हथौड़ा था] (http://channel9.msdn.com/Events/GoingNative/GoingNative-2012/Static-If-I-Had-a- हथौड़ा)? या [Alexandrescu, Meyers, सूटर: स्टेटिक हैं पर, सी ++ 2012 में 11, आधुनिक पुस्तकालय, और Metaprogramming] (http://channel9.msdn.com/Shows/Going+Deep/Alexandrescu-Meyers-Sutter-On- स्टेटिक-तो-C11-इन-2012 आधुनिक पुस्तकालय और Metaprogramming)? अगर मुझे अच्छी तरह याद है, तो आपके प्रश्न का उत्तर बाद में दिया गया है और यह शायद भविष्य के सी ++ मानक का हिस्सा होगा (स्थिर "अवधारणाओं के लाइट" के रूप में स्थिर)। – Ali

+5

@ मार्टिन आप उत्तेजित ध्वनि अभी तक 6 मिनट के भीतर एक जवाब मिला है। –