में विफल रहता है मुझे constexpr
के साथ कुछ परेशानी हो रही है।परिभाषा से पहले constexpr फ़ंक्शन का उपयोग
constexpr int sz = size(); // only size() is a constexpr function
// this code is right
हालांकि किताब एक विशिष्ट उदाहरण नहीं देता: पुस्तक सी ++ प्राइमर कोड की एक पंक्ति को दर्शाता है। तो मैं अपने आप को द्वारा निम्न कोड का प्रयास करें:
#include <iostream>
constexpr int fun();
int main()
{
constexpr int f = fun();
std::cout << f << std::endl;
}
constexpr int fun()
{
return 3;
}
लेकिन मेरे संकलक कहा fun()
अनिर्धारित रहता है।
अगर मैं const
में constexpr
बदलने के लिए, यह अच्छी तरह से काम करता है, और अगर मैं उपयोग करने से पहले constexpr समारोह को परिभाषित करने के लिए अपने कोड बदलने के लिए:
#include <iostream>
constexpr int fun()
{
return 3;
}
int main()
{
constexpr int f = fun();
std::cout << f << std::endl;
}
यह भी अच्छी तरह से काम करता है। क्या कोई मुझे बताएगा क्यों?
आप किस कंपाइलर का उपयोग करते हैं? – kvorobiev
@kvorobiev clang, linux – icecity96
क्लैंग का कौन सा संस्करण? – kvorobiev