Почему в библиотеках C ++ Boost есть расширение ".ipp" для некоторых заголовочных файлов? - PullRequest
43 голосов
/ 13 февраля 2009

Почему в некоторых библиотеках C ++ Boost есть расширение ".ipp"?

Кажется, что они являются заголовочными файлами, включенными в файл ".hpp" с тем же именем.

Распространено ли это соглашение вне Boost?

Чем обоснован специальный тип файла?

Ответы [ 2 ]

48 голосов
/ 13 февраля 2009

Объяснение от одного из шаблонных гуру:

Если вы хотите разделить источники шаблонов на интерфейс и реализация (есть много веских причин для этого, в том числе управление экземпляром), вы не можете очень хорошо использовать одно и то же имя (foo.hpp) дважды, и foo.cpp не подойдет ни для одного из них. foo.ipp четко разграничивает файл как файл реализации, предназначенный для быть включенным в foo.hpp.

15 голосов
/ 13 февраля 2009

Я полагаю, что "ipp" стоит из файла "реализации". то есть они содержат фактически код (для встроенных функций и шаблонов), а не просто объявление (которое находится в заголовке -. H или .HPP - файлах)

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