У меня есть шаблон класса, который я использую для получения размера переменной:
template <class T>
class Size
{
unsigned int operator() (T) {return sizeof(T);}
};
Это отлично работает, но для строк я хочу использовать strlen вместо sizeof:
template <>
class Size<char *>
{
unsigned int operator() (char *str) {return strlen(str);}
};
Проблема в том, что когда я создаю экземпляр размера с const char *, он переходит к неспециализированной версии. Мне было интересно, есть ли способ захватить как константную, так и неконстантную версии char * в специализации шаблона? Спасибо.