Как определить (в духе <type_traits>
), есть ли один тип, явно конвертируемый в другой тип? Например, я хочу проверить наличие F::explicit operator double const &() const;
для некоторого class
/struct
F
, но в то же время F
не должно быть явно конвертировано в float
или long double
(что-то вроде pred< double const & >::value && !pred< float >::value && !pred< long double >::value
).
Обратите внимание, что std::is_convertible< From, To >::value
проверяет ", если From может быть преобразован в To с использованием неявного преобразования ". Но я хочу определить, есть ли явный оператор преобразования.
И, если это возможно, "как определить, тип From конвертируется в конкретную ссылку на тип To?"?