考虑以下内联函数:
// 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 标准能保证吗?