27 个回答
对于修饰Object来说,
const并未区分出编译期常量和运行期常量
constexpr限定在了编译期常量
然后我想对修饰函数多说两句,那就是constexpr修饰的函数,返回值不一定是编译期常量。#It is not a bug, it is a feature.#
#include <iostream>
#include <array>
using namespace std;
constexpr int foo(int i)
return i + 5;
int main()
int i = 10;
std::array<int, foo(5)> arr; // OK
foo(i); // Call is Ok