Специализации по неоднозначным шаблонам с использованием same enable_if и is_convertibleC++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Специализации по неоднозначным шаблонам с использованием same enable_if и is_convertible

Сообщение Anonymous »

Используя C ++ 17, я хочу объявить, не определяя, шаблон функционирует так. Он преобразует r s в парни . Это должно быть специализированным. < /P>
template double AsNumber( R r);
< /code>
Затем для какого -то типа, для которого это имеет смысл, предоставьте специализацию: < /p>
struct Thing{};

template constexpr double AsNumber( Thing r)
{
//look at 'r' in some way
return 42.;
}
< /code>
Но для типов, которые автоматически конвертируются, я хочу предоставить реализацию по умолчанию: < /p>
template double AsNumber( R r)
{
return r;
}

Где «заклинание магии» будет включать в себя enable_if и is_convertible каким -то образом, я полагаю. Тогда я должен быть в состоянии вызвать asnumber как так:
double x = AsNumber(Thing());
double y = AsNumber(3);
double z = AsNumber(3.0);
< /code>
Но за каждое магическое заклинание, которое я пытаюсь, я получаю некоторую жалобу на неоднозначный звонок (для последних двух).
Я попробовал так много заклинаний, я не помню их всех. Вот один: < /p>
typename std::enable_if_t = false
< /code>
Я также попробовал заклинания вокруг типа возврата и в списке аргументов. Я побежден. Как я могу определить asnumber для всех типов r , которые автоматически конвертируются для двойного ?template
constexpr typename std::enable_if::type
AsNumber( R r)
{
return r;
}


Подробнее здесь: https://stackoverflow.com/questions/796 ... onvertible
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Специализации по неоднозначным шаблонам с использованием same enable_if и is_convertible
    Anonymous » » в форуме C++
    0 Ответы
    5 Просмотры
    Последнее сообщение Anonymous
  • Специализации по неоднозначным шаблонам с использованием same enable_if и is_convertible
    Anonymous » » в форуме C++
    0 Ответы
    3 Просмотры
    Последнее сообщение Anonymous
  • Невозможно предварительно просмотреть в этом файле - Active Same
    Anonymous » » в форуме IOS
    0 Ответы
    7 Просмотры
    Последнее сообщение Anonymous
  • How would I change a JLabel's text from an ActionListener listening to a JButton under the same frame?
    Anonymous » » в форуме JAVA
    0 Ответы
    3 Просмотры
    Последнее сообщение Anonymous
  • Nested object construction of the same type
    Anonymous » » в форуме C++
    0 Ответы
    3 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C++»