Ответ 1
Единственными численными типами, действительными для параметра шаблона nontype, являются целые числа и перечисления. Таким образом, у вас не может быть параметра типа nontype типа double
.
template<typename T, T Min>
class LowerBoundedType {};
template<typename T> class vectorelement {};
template<> class vectorelement<Categorical> { typedef LowerBoundedType<double, 0.0> type; };
с ошибкой:
error: 'double' is not a valid type for a template constant parameter
Единственными численными типами, действительными для параметра шаблона nontype, являются целые числа и перечисления. Таким образом, у вас не может быть параметра типа nontype типа double
.