gpt4 book ai didi

c++ - 检查类型是否可以显式转换

转载 作者:IT老高 更新时间:2023-10-28 21:42:40 25 4
gpt4 key购买 nike

如何确定(本着<type_traits> 精神)一种类型是否可显式转换为另一种类型?例如,我想检查 F::explicit operator double const & () const; 的存在。对于一些 class/struct F ,但同时,F不应显式转换为 floatlong double (类似于 pred< double const & >::value && !pred< float >::value && !pred< long double >::value )。

请注意,std::is_convertible< From, To >::value检查“如果 From 可以使用 隐式转换 转换为 To”。但我想确定是否有显式转换运算符。

而且,如果可能的话,“如何确定类型 From 是否可转换为 对类型 To 的引用?”?

最佳答案

你需要自己定义:

template <class U, class T>
struct is_explicitly_convertible
{
enum {value = std::is_constructible<T, U>::value && !std::is_convertible<U, T>::value};
};

关于c++ - 检查类型是否可以显式转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16893992/

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