Поскольку существует ограничение на допустимые непарные вариативные шаблоны, я пытаюсь написать функцию, берущую произвольное количество удвоений, используя enable_if
. В сущности, я хочу сделать что-то вроде:
template<typename... T,
typename = typename std::enable_if<std::is_convertible<T, double>::value, T>::type>
foo(T... t){ /* code here */ }
Я предпочитаю поместить значение enable_if
в качестве значения по умолчанию для параметра без имени, поскольку моя функция на самом деле является конструктором и не будет иметь возвращаемого значения. Это будет работать для одного параметра, но так как вариативный шаблон T
является пакетом параметров, а приведенный выше код недействителен. Итак, как я могу проверить, что каждый параметр конвертируется в double?