मैं एक constexpr समारोह है कि कुछ इस तरह दिखता है:static_assert को कैसे बताना है कि constexpr फ़ंक्शन तर्क हैं?
constexpr int foo(int bar)
{
static_assert(bar>arbitrary_number, "Use a lower number please");
return something_const;
}
हालांकि, जीसीसी 4.6.3 के साथ इस संकलन मुझे बता रहता
त्रुटि: 'बार' एक निरंतर अभिव्यक्ति में प्रकट नहीं कर सकते हैं
मैं
constexpr int foo(constexpr const int bar)
{
static_assert(bar>arbitrary_number, "Use a lower number please");
return something_const;
}
की तरह कुछ कोशिश की, लेकिन constexpr समारोह तर्क के लिए इस्तेमाल नहीं किया जा सकता है।
क्या कंपाइलर को बताने का कोई आसान तरीका है कि बार हमेशा एक संकलित समय स्थिर रहता है?
ओह, पूरी तरह से उस भाग को कोडित करना भूल गए। धन्यवाद @ हेनरिक – TravisG
एक कॉन्स्टेक्स फ़ंक्शन को गैर-कॉन्स्ट तर्कों के साथ बुलाया जा सकता है, यह केवल इसके कॉन्स्टेक्सनेस को जब्त करता है। –
धन्यवाद, मुझे यह नहीं पता था। – TravisG