Подтвердить что ты не робот

В библиотеках С++ Boost, почему существует расширение ".ipp" для некоторых файлов заголовков

В библиотеках С++ Boost, почему в некоторых файлах заголовков существует расширение ".ipp"?

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

Является ли это соглашение общим за пределами Boost?

В чем обоснование наличия специального типа файла?

4b9b3361

Ответ 1

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

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

Ответ 2

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