Я разрабатываю программу на C ++, используя много шаблонов.
Я хотел бы прочитать определения некоторых шаблонных классов после их создания.
Например
main.cc:
#include <ext/pb_ds/assoc_container.hpp>
using namespace __gnu_pb;
typedef trie<int, null_type> trie_t;
внутр / pb_ds / подробно / 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 после того, как вся логика наследования и шаблонного метапрограммирования сделана?
Задача ещё не решена.
Других решений пока нет …