незнаком с объявлением структуры / класса с шаблоном - PullRequest
0 голосов
/ 22 июня 2010

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

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

(из здесь )

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

Ответы [ 3 ]

3 голосов
/ 22 июня 2010

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

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

2 голосов
/ 22 июня 2010

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

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

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

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

1 голос
/ 22 июня 2010

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...