निम्नलिखित कोडक्या आभासी कार्य constexpr हो सकता है?
struct X
{
constexpr virtual int f() const
{
return 0;
}
};
में X::f()
की तरह कर सकते हैं आभासी कार्यों constexpr
हो सकता है?
निम्नलिखित कोडक्या आभासी कार्य constexpr हो सकता है?
struct X
{
constexpr virtual int f() const
{
return 0;
}
};
में X::f()
की तरह कर सकते हैं आभासी कार्यों constexpr
हो सकता है?
[dcl.constexpr]/3 (7.1.5, "constexpr
विनिर्देशक") के बाद संख्या:
एक
constexpr
समारोह निम्न आवश्यकताओं को संतुष्ट करेगा की परिभाषा:- यह वर्चुअल
यह अजीब है, 'जीसीसी संस्करण 4.9.2 20141101 (रेड हैट 4.9.2-1) (जीसीसी)' [यह काम करता है] (http://pastebin.com/gBRT31VG) – zaratustra
सिर्फ इसलिए कि एक कंपाइलर कुछ स्वीकार करता है ' टी मतलब यह अनुमति है। –
क्लैंग ++ लिंक में कोड स्वीकार नहीं करता है। –
इसके बारे में एक मिनट के बारे में सोचें नहीं। यह 'constexpr' उद्देश्य को पूरी तरह से पराजित करेगा। –
इस तरह के एक काल्पनिक कार्य को निरंतर अभिव्यक्ति के रूप में उपयोग किया जा सकता है अगर कॉलिंग इंस्टेंस का पूरा प्रकार 'एक्स'' के रूप में जाना जाता है। यह अनिवार्य रूप से "devirtualization नियम" निर्दिष्ट करने के लिए भाषा की आवश्यकता होगी। –
@ πάνταῥεῖ डी में आप वर्चुअल फ़ंक्शंस के साथ संकलन समय फ़ंक्शन मूल्यांकन कर सकते हैं। तो यह असंभव नहीं है। –