Итак, я пытаюсь понять, что происходит с реализацией Boost ptree
.
В ptree.hpp фактически определяется basic_ptree
:
template<class Key, class Data, class KeyCompare>
class basic_ptree
В ptree_fwd.hpp есть то, что выглядит как предварительное объявление basic_ptree
, но с новым аргументом шаблона по умолчанию:
template < class Key, class Data, class KeyCompare = std::less<Key> >
class basic_ptree;
И, наконец, в ptree_fwd.hpp ptree
равно typedef
:
typedef basic_ptree<std::string, std::string> ptree;
Это предварительное объявление в ptree_fwd.hpp, верно? Итак, мне разрешено использовать аргумент шаблона по умолчанию в предварительном объявлении?
basic_ptree
ptree.hpp, когда я нажимаю «Перейти к определению» моих локальныхptree
, но я думаю, это объясняет, почему вместо этого он должен перейти к моему прямому определению. - person Jonathan Mee   schedule 16.01.2018