gpt4 book ai didi

c++ - 我的代码如何在编译时做一件事,而在运行时做另一件事?

转载 作者:行者123 更新时间:2023-12-03 07:03:48 25 4
gpt4 key购买 nike

我正在实现constexpr int foo();函数。在foo()的主体中,我想在编译时做一些不同的事情(并可能返回不同的东西),在运行时做一些不同的事情。
在C++ 20中,我可以使用 std::is_constant_evaluated :

constexpr int foo() { return std::is_constant_evaluated() ? 123 : 456 };
但是,如果我使用的是C++ 17(或更早版本),该怎么办?
注意:特定于编译器的解决方案是可以接受的(尽管不太理想)。

最佳答案

Note: Compiler-specific solutions are acceptable (though less desirable).


让我们提到最明显的那些:
9.2.0起, gcc至少已记录 __builtin_is_constant_evaluated()clangclang-9具有相同的内置函数。

关于c++ - 我的代码如何在编译时做一件事,而在运行时做另一件事?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60663326/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com