在尝试找出为什么会出现某个编译错误时,我想出了以下最小示例:
\n\nconstexpr void Test(bool test)\n{\n if (test)\n return;\n\n assert(false);\n}\nRun Code Online (Sandbox Code Playgroud)\n\n我尝试过的每个版本的 clang (3.7+) 都可以毫无问题地进行编译,但使用 gcc 会失败(测试了 5-8),
\n\n\n\n\n错误:调用非\xe2\x80\x98constexpr\xe2\x80\x99函数\xe2\x80\x98void __assert_fail(const\n char*, const char*, unsigned int, const char*)\xe2\x80\x99
\n
根据我的理解,该函数应该能够constexpr,因为可以在编译时评估该函数的一组参数值。
是我的理解错误,还是gcc编译失败而错误?
\n