Я пытаюсь скомпилировать код, приведенный ниже, но я получаю сообщение об ошибке:Частичный класс специализация шаблона C++ 11
wrong number of template arguments
template<int start, int end, int step>
struct range{};
template<int start, int end>
struct range<start, end, 1>{};
template<int end>
struct range<0, end, 1>{};
int main() {
auto r1 = range<0, 5, 2>{};
auto r2 = range<5, 15>{}; //error: wrong number of template arguments
auto r3 = range<10>{}; //error: wrong number of template arguments
}
Как я могу создать частичный объект класса шаблона?
вы пытаетесь сделать '0' и' 1' быть аргументы по умолчанию? – TartanLlama
Специализация шаблона рассказывает, как он должен _behave_ с определенными параметрами, но не меняет, как он _инстантирован. Для этого всегда используется первое объявление шаблона. – StenSoft