Предпочитать многоточие или один аргумент шаблона для разрешения перегрузки

Если у вас есть функция с «предпочтительной» реализацией и другой «резервной» реализацией, что-то вроде следующего

namespace detail {
template <typename T, typename std::enable_if_t<...>* = nullptr>
void do_something_impl(T, some_tag) {}

// fallback technique 1
template <typename T>
void do_something_impl(T, ...) {}

// fallback technique 2
template <typename T, typename Tag>
void do_something_impl(T, Tag) {}
}

Является ли предпочтительным способом справиться с таким запасным вариантом 2 или 1? Я обычно придерживаюсь 1, потому что это самая последняя рассматриваемая перегрузка, поскольку компилятор C ++ пытается избежать ... насколько это возможно, но есть ли какая-либо другая объективная причина, чтобы избежать 1?

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]