gpt4 book ai didi

c++ - 在 std::common_type 的实现中发现这个条件有什么意义?

转载 作者:太空狗 更新时间:2023-10-29 19:46:18 26 4
gpt4 key购买 nike

以下是 std::common_type 的专业之一.

template <class T, class U>
struct common_type<T, U> {
typedef decltype(true ? declval<T>() : declval<U>()) type;
};

我的想法是条件语句是不必要的。如果它正在检查 true , 表达式不会总是解析为 declval<T>() ?如果是这样,返回的 typedef 如何证明定义...

"Determines the common type among all types T..., that is the type all T... can be implicitly converted to."

有人可以解释一下条件语句吗?检查是否准确 true是多余的,并且条件将总是解析为第一个操作数?如果是,返回的类型如何满足定义?

最佳答案

三元条件表达式的类型两种参数类型的公共(public)类型。因此,三元表达式可以用作普通类型的定义

请注意,decltype 不会评估其参数,条件是真还是假并不重要。

关于c++ - 在 std::common_type 的实现中发现这个条件有什么意义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14328034/

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