/
githubmirror
/
CPlusPlusThings
Обзор
Документация
Войти
/
githubmirror
/
CPlusPlusThings
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
cpp2.0/cpp11/constexpr.cpp
34 строки
1022 B
zhangxing
support bazel complie this project and format code.
30 мар 2024, 17:00
30 мар 2024, 17:00
3c8a3f2
Код
Авторство
О чём код?
// // Created by light on 19-11-4. // #include <iostream> #include <array> using namespace std; // 对于修饰Object来说: // const并未区分出编译期常量和运行期常量 // constexpr限定在了编译期常量 // constexpr作用:优化!效率! // constexpr修饰的函数,返回值不一定是编译期常量。It is not a bug, it is a feature. // const修饰的是类型,constexpr修饰的是用来算出值的那段代码。 /** * constexpr修饰的函数,简单的来说,如果其传入的参数可以在编译时期计算出来,那么这个函数就会产生编译时期的值。 * 但是,传入的参数如果不能在编译时期计算出来,那么constexpr修饰的函数就和普通函数一样了。不 * @param i * @return */ constexpr int foo(int i) { return i + 10; } int main() { int i = 10; std::array<int, foo(2)> arr; // OK foo(i); // Call is Ok std::array<int, foo(i)> arr1; // error: the value of ‘i’ is not usable in a constant expression }