1

我正在使用许多模板在 C++ 中开发一个程序。

我想在实例化后阅读一些模板类的定义。

例如 main.cc:

    #include <ext/pb_ds/assoc_container.hpp>

    using namespace __gnu_pb;
    typedef trie<int, null_type> trie_t;

ext/pb_ds/detail/container_base_dispatch.hpp:

    /// Specialization for PATRICIA trie map.
    template<typename Key, typename Mapped, typename _Alloc, typename Policy_Tl>
    struct container_base_dispatch<Key, Mapped, _Alloc, pat_trie_tag, Policy_Tl>

分机/pb_ds/assoc_container.hpp:

    #define PB_DS_BRANCH_BASE \
      detail::container_base_dispatch<Key, Mapped, _Alloc, Tag, Policy_Tl>::type

    template<typename Key, typename Mapped, typename Tag,
      typename Node_Update, typename Policy_Tl, typename _Alloc>
    class basic_branch : public PB_DS_BRANCH_BASE   
    ...
    #define PB_DS_TRIE_BASE \
      basic_branch<Key,Mapped,Tag, \
         typename PB_DS_TRIE_NODE_AND_IT_TRAITS::node_update, \
         typename __gnu_cxx::typelist::create2<_ATraits, \
         PB_DS_TRIE_NODE_AND_IT_TRAITS >::type, _Alloc>

    template<typename Key,
       typename Mapped,
       typename _ATraits = \
          typename detail::default_trie_access_traits<Key>::type,
       typename Tag = pat_trie_tag,
       template<typename Node_CItr,
          typename Node_Itr,
          typename _ATraits_,
          typename _Alloc_>
       class Node_Update = null_node_update,
       typename _Alloc = std::allocator<char> >
    class trie : public PB_DS_TRIE_BASE

在完成所有继承和模板元编程逻辑之后如何阅读类 trie_t 的规范?

4

0 回答 0