gpt4 book ai didi

c++ - 条件运算符 ( ? : ) in C++ be compile time?

转载 作者:行者123 更新时间:2023-12-04 23:11:41 27 4
gpt4 key购买 nike

三元(条件)运算符可以用作 constexpr if() 的类似物吗? ,在 C++17 中引入?
我想为模板中的成员变量初始化添加一些条件。以下表达式会在编译时或运行时解析吗?如果是这样,是否有任何其他运算符可以在编译时解析,从而可以避免模板特化?

template<int a>
struct hello {
constexpr static int n = (a != 0) ? 10 : 20;
}

最佳答案

这取决于您所说的“类似于 constexpr if()”是什么意思。 if constexpr要求条件是一个常量表达式。它还在模板代码中具有一定的特权,可以丢弃未采用的分支。
?:没有那个功能。

然而?:可以出现在常量表达式中就好了,而且总是可以。它不会使表达式成为非常量。

关于c++ - 条件运算符 ( ? : ) in C++ be compile time?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59972457/

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