Название: Специализация шаблонного метода нешаблонного класса [решено] Отправлено: Alp от Сентябрь 02, 2009, 14:57 Забыл про эти шаблоны вообще последнее что помнил. Как бы решить подобную задачку попроще?
Код
Разумеется, при сборке gcc 3.4.5 получаю: P:\projects>gcc 2.cpp 2.cpp:12: error: explicit specialization in non-namespace scope `struct A' 2.cpp:13: error: template-id `Blend<double>' for `double Blend(double*, int)' does not match any template declaration 2.cpp:13: error: invalid function declaration Можно ли вообще по стандарту реализовывать подобную специализацию, и если да - то в чем я ошибаюсь, а если нет - как попроще можно сделать подоный трюк? Название: Re: Специализация шаблонного метода нешабл Отправлено: Rcus от Сентябрь 02, 2009, 15:29 /* shrugs */ В данном случае самый простой вариант это вынести метод из класса. Специализация возможна только для свободных функций или целых классов. Точнее можно оставить шаблонный метод в классе который будет вызывать шаблонную свободную функцию.
Название: Re: Специализация шаблонного метода нешаблонного класса Отправлено: Alp от Сентябрь 02, 2009, 15:37 Кажется нашел ответ. При поиске наиболее подходящего шаблона (вроде бы это называется "поиск Кёнига") наиболее подходящей оказывается вообще нешаблонизированная функция/метод
Код
|