У меня есть класс шаблонов, который в основном реализует шаблон оформления реестра. значения регистрируются с ключами и хранятся в каком-то контейнере:Как переключиться на typedef из шаблона aliasing?
template <typename Key, typename Value,
template <typename...> class Container >
class registry
{
public:
typedef Key key_type;
typedef Value value_type;
typedef std::pair<key_type, value_type> element_type;
typedef Container<element_type> container_type;
Тогда я могу использовать его с контейнерами последовательности, как это:
registry<const char*,void*, std::list> r1;
registry<const char*,void*, std::vector> r2;
Я могу даже использовать его с псевдонимом:
template <typename T>
using alias_container = std::array<T, 10>;
registry<const char*,void*, alias_container > r4;
Но я не могу понять, как использовать его с ЬурейиМи так:
template <typename T>
class my_container2
{
typedef std::array<T,3> type;
};
Я в принципе хочу что-то вроде этого:
registry<const char*,void*, my_container2::type > r5;
Большое спасибо за вашу помощь.
Я не думаю, что вы можете это сделать. Типед не является шаблоном. – rici