SFINAE на параметре шаблона + внешнее определение вложенного класса
Всем привет,
У меня есть класс A, шаблонный с типом T и предложением enable_if, который содержит вложенный класс I (который должен быть определяемым пользователем итератором для A), например:
template <typename T, std::enable_if_t<std::is_arithmetic<T>::value>> class A { public: class I; };
Я не могу найти правильный способ определить I вне A, я понимаю сообщения об ошибках (см. "Что вы пробовали?" сессия) я получаю, но чего мне не хватает, так это правильного способа делать то, что я хочу..
Что я уже пробовал:
Я попробовал это сделать:
template <typename T, std::enable_if_t<std::is_arithmetic<T>::value>> class A<T>::I { };
но это дает ошибку
Цитата:невозможно добавить аргумент шаблона по умолчанию в определение члена шаблона класса
при этом:
template <typename T> class A<T>::I { };
выдает эту ошибку:
Цитата:слишком мало параметров шаблона в повторном объявлении шаблона
CPallini
Я думаю I
должно быть в списке аргументов шаблона.