//// 2.2.constexpr.cpp// chapter 2 language usability// modern cpp tutorial//// created by changkun at changkun.de// https://github.com/changkun/modern-cpp-tutorial//#include <iostream>#define LEN 10int len_foo() {int i = 2;return i;}constexpr int len_foo_constexpr() {return 5;}// error in c++11// constexpr int fibonacci(const int n) {// if(n == 1) return 1;// if(n == 2) return 1;// return fibonacci(n-1) + fibonacci(n-2);// }// okconstexpr int fibonacci(const int n) {return n == 1 || n == 2 ? 1 : fibonacci(n-1) + fibonacci(n-2);}int main() {char arr_1[10]; // legalchar arr_2[LEN]; // legalint len = 10;// char arr_3[len]; // illegalconst int len_2 = len + 1;constexpr int len_2_constexpr = 1 + 2 + 3;// char arr_4[len_2]; // illegal, but ok for most of the compilerschar arr_4[len_2_constexpr]; // legal// char arr_5[len_foo()+5]; // illegalchar arr_6[len_foo_constexpr() + 1]; // legal// 1, 1, 2, 3, 5, 8, 13, 21, 34, 55std::cout << fibonacci(10) << std::endl;return 0;}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。