निम्नलिखित इनलाइन फ़ंक्शन पर विचार करें:
// Inline specifier version
#include<iostream>
#include<cstdlib>
inline int f(const int x);
inline int f(const int x)
{
return 2*x;
}
int main(int argc, char* argv[])
{
return f(std::atoi(argv[1]));
}
और बाधा समतुल्य संस्करण:
// Constexpr specifier version
#include<iostream>
#include<cstdlib>
constexpr int f(const int x);
constexpr int f(const int x)
{
return 2*x;
}
int main(int argc, char* argv[])
{
return f(std::atoi(argv[1]));
}
मेरा प्रश्न यह है कि क्या constexpr
निर्दिष्टकर्ता इस अर्थ में inline
विनिर्देशक का अर्थ करता है कि यदि किसी constexpr
फ़ंक्शन को एक गैर-स्थिर तर्क दिया जाता है , तो कंपाइलर फ़ंक्शन की कोशिश करेगा inline
जैसे कि inline
विनिर्देशक को अपनी घोषणा में रखा गया था?
क्या C ++ 11 मानक इसकी गारंटी देता है?
inline
विनिर्देशक नहीं रह गया है के साथ कुछ भी नहीं है इनलाइनिंग
inline
सीधे इनलाइनिंग से संबंधित है। तो नहीं, constexpr
विनिर्देशक inline
उस अर्थ में निर्दिष्ट नहीं करता है, क्योंकि यह अर्थ मौजूद नहीं है।
inline
स्पेसियर करता है। (या हो सकता है कि मैंने आपकी बात को गलत समझा हो।)