2010-06-22 3 views
0

, проходя через некоторые из mili исходного кода я наткнулся на структуру объявил так:незнаком с структурой/объявлением класса с шаблоном

template <class T, class Pre, class Pos> 
struct PrePosCaller<T*, Pre, Pos> 

(от here)

Части, я не знаком с является <T*, Pre, Pos>. Я понимаю, что делает код и его назначение в этом контексте, но я хотел бы знать , где он задокументирован, поэтому я могу узнать/понять его немного больше.

ответ

2

Это шаблон специализации. В частности, частичная специализация.

Где-то в коде есть шаблон объявлен как:

template <class T, class Pre, class Pos> 
struct PrePosCaller { //... 
}; 

или что-то подобное. Затем они предоставляют специализацию этого шаблона для случаев, когда первым аргументом является тип указателя. То есть это определение шаблона для PrePosCaller, когда первым аргументом шаблона является указатель.

+0

+ 1- теперь я знаю, как это называется. –

3

Я хотел бы знать, где это документально

Если вы ищете введение, а в качестве фона к предмету, получить себе копию C++ Templates: The Complete Guide.
В то время как окончательная документация - это сам стандарт C++, безразлично подходить к ней без хорошо написанного обзора.

1

Thinking in C++ Vol. 2 обеспечивает педагогический взгляд на шаблоны и некоторые связанные с ними методы. Это также отличный обзор о C++ в целом. И это бесплатно.

+0

ссылка не работает. –

+0

извините, исправлено. –

Смежные вопросы