请看下面的内联函数:
// 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相当于版本:
// 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个标准保证?