Как определить (в духе <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?"?