Кажется, вы говорите о this repository кода C++.
Похоже, авторы этого кода решили следовать шаблонам стандартной библиотеки C++. В стандартном C++ заголовки библиотек не должны иметь расширение .h
. Таким образом, следующее является правильным:
#include <iostream>
В большинстве реализаций пишущих <iostream.h>
также будет работать, но версия без расширения на самом деле правильно. Стандартная библиотека C++ смогла отбросить расширения в C++ 98 из-за внедрения пространств имен и введения пространства имен std
для стандартной библиотеки.
Стандарт C++ не требует и не запрещает расширение для других заголовков, поэтому авторам какого-либо программного обеспечения зависит любое расширение файла, если оно есть. Наиболее распространенные варианты - использовать .h
или .hpp
, причем последний предназначен для того, чтобы отличать заголовки C++ от заголовков C.
Быстрый взгляд на код OpenSceneGraph показывает, что они следовали стандартным библиотечным шаблонам C++ в их включении. Нет расширений, и все находится в пространстве имен osg
, аналогичном пространству имен std
стандартной библиотеки. Поэтому использование библиотек OpenSceneGraph очень похоже на использование стандартной библиотеки C++.
#include <osg/Camera> // Provides osg::Camera
Это та же картина, как:
#include <string> //Provides std::string
Так что я думаю, что можно с уверенностью сказать, что авторы OSG хотел следовать той же схеме, как и в стандартной библиотеке C++. Мое личное мнение состоит в том, что лучше иметь расширение файла, даже если бы можно было искать файлы заголовков.
Возможный дубликат [Разница между iostream и iostream.h] (http: // stackoverflow.com/вопросы/2976477/разница между-iostream-and-iostream-h) –