[C++] Синтаксически верно описать шаблон
никогда не понимал нафига делать специализации шаблона функции
Есть еще функция set(unsigned char count, ...)
Если предыдущее объявление делать без template<>, то тогда вызов set(0) становится неопределенным - то ли 0 это unsigned char, то ли это T*.
Если делать как специализацию шаблона, то каким-то чудесным образом при вызове set(0) вызывается именно set(unsigned char count, ... что мне и нужно, собственно.
но вот только не писал бы ты лучше таких ужасных вещей как set(0)
0 в качестве параметра вызовет конфликт при любой перегрузке функции (без шаблонов) с одинаковым числом аргументов, а следовательно имхо - это отстойная практика в любом случае.
не только для компилятора должно быть очевидно какую функцию использовать, но и для читателя
почему не написать было например unsigned(0) вместо 0?
Мдя, ты прав. Сам потом не разберу, что имел ввиду...
Оставить комментарий
erotic
Есть шаблонный класс, у него внутри шаблонная функция и специализация:Первая функция set нормально компилируется
на вторую ругается разными вариантами
Не ругается, если описать вот так:
но тогда он эту специализацию не использует и вообще никогда не компилирует.
Нормально он ее компилит и юзает, если описать тело функции в момент ее объявления в теле класса.
Как все-таки можно определить ее тело внешним образом?