वर्चुअल फ़ंक्शंस constexpr
नहीं हो सकता है, हालांकि, जब कोई फ़ंक्शन विरासत के माध्यम से आभासी रूप से आभासी होता है, तो मैंने जिन संकलकों की कोशिश की है, वे इसके बारे में शिकायत नहीं करते हैं।लागू रूप से आभासी constexpr फ़ंक्शन
class A
{
virtual void doSomething() {}
};
class B : public A
{
constexpr void doSomething() override {} // implicitly virtual constexpr
// but no compilation error
};
class C : public A
{
virtual constexpr void doSomething() override {} // explicitly virtual constexpr
// compilation error
};
मैं gcc 7.2.0
और साथ इसे करने की कोशिश:clang 5.0.0
यहाँ एक नमूना कोड है।
क्या वे संकलक इस संबंध में मानक के अनुरूप नहीं हैं, या निहित वर्चुअल constexpr
फ़ंक्शंस की अनुमति है?
[बजना के इस संस्करण में शिकायत करने के लिए लगता है] (http://coliru.stacked-crooked.com/a/a3d1b1ef2348d2c2) – Borgleader
कृपया दोहरी जांच बजना –
यह सही है, मैं बजना – MaxV37