如何确定(在<type_traits>
spirit)一种类型是否可以显式转换为另一种类型?例如,我想检查是否存在F::explicit operator double const & () const;
对于一些class
/struct
F
,但是,同时,F
不应显式转换为float
or long double
(就像是pred< double const & >::value && !pred< float >::value && !pred< long double >::value
).
注意std::is_convertible< From, To >::value
检查“如果From可以转换为To using 隐式转换”。但我想确定是否存在显式转换操作员。
并且,如果可能的话,“如何确定,键入From可以转换成namely对类型的引用To?"?
您需要定义自己的:
template <class U, class T>
struct is_explicitly_convertible
{
enum {value = std::is_constructible<T, U>::value && !std::is_convertible<U, T>::value};
};
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)