那就是constexpr修饰的函数,返回值不一定是编译期常量。#It is not a bug, it is a feature.# ...
C++ if constexpr using a constexpr bool equivalent to plain if? No, the two ifs are not equivalent. The 1st one is evaluated at runtime, and code in both of its branches must be well-formed at compile-time. The 2nd one is evaluated at compile-time, and code in its ... Remy Le...
All statements and expressions within the constexpr function must be evaluatable at compile-time. When a constexpr (or consteval) function is being evaluated at compile-time, any other functions it calls are required to be evaluated at compile-time (otherwise the initial function would not be ...
null statements(plain semicolons) static_assertdeclarations typedefdeclarations andaliasdeclarations that do not define classes or enumerations using declarations using directives if the function is not a constructor, exactly onereturnstatement (until C++14) ...
+ if (TREE_CODE (string) == VIEW_CONVERT_EXPR) + string = TREE_OPERAND (string, 0); + cexpr_str cstr (string); + if (!cstr.type_check (tok->location)) + return error_mark_node; + const char *msg; + int len; + if (!cstr.extract (tok->location, msg, len)) ...
The use of constexpr on a function imposes some limitations on what that function can do. First, the function must have a non-void return type. Second, the function body cannot declare variables or define new types. Third, the body may contain only declarations, null statements and a single...