Есть шаблон
template< class T, class C >
struct SimpleTraits
{
//code
};
теперь напишем:
template<class T, class C>
struct SimpleTraits<T, String<C> >
{
//code
}
вопрос: соответствует ли последний шаблон стандарту( не является ли переопределением первого ), если да, то какая это специализация, и какое поведение компилятора, кода он встречает такой шаблон?
Исправлена подсветка синтаксиса. -- ПК.
При условии, что у тебя есть такой класс-шаблон String, все нормально. Теперь, когда ты будешь параметризовать свой класс допустим так
YourTemplate<int,String<char> >a;
Будет использоваться не primary шаблон, а твоя специализация.