gpt4 book ai didi

c++ - 是否有类型特征显示一种类型是否可能包含其他类型的值

转载 作者:可可西里 更新时间:2023-11-01 18:26:10 25 4
gpt4 key购买 nike

是否有一些类型特征可以检查一个整数类型是否可以在不丢失数据的情况下保存其他整数类型的值?

例如 int32_t 可能包含 uint16_tuint8_tint32_tint16_tint8_t

但是 int32_t 不能容纳 uint32_tuint64_tint64_t

更新

我提出了天真的解决方案,并将其作为答案发布。我知道可以使用 std::is_same 但我认为这种方式更具表现力。

最佳答案

我们可以在这里利用现有的语言规则。

对于列表初始化,缩小转换是错误格式的。我们正在尝试检测缩小转换。因此,void_t!

template <class X, class Y, class = void>
struct can_hold : std::false_type { };

template <class X, class Y>
struct can_hold<X, Y,
void_t<decltype(X{std::declval<Y>()})>>
: std::true_type { };

关于c++ - 是否有类型特征显示一种类型是否可能包含其他类型的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47052271/

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