template <template <typename> class container_type>
class MyClass
{
class Internal{
};
};
我想以如下方式使用这个类(或它的正确外观)......
MyClass(std::list);
...因此在 MyClasscontainer_type
中声明/ typedef
'd 为:
std::list<Internal*>
这样的事情有可能吗?
template <template <typename> class container_type>
class MyClass
{
class Internal{
};
};
我想以如下方式使用这个类(或它的正确外观)......
MyClass(std::list);
...因此在 MyClasscontainer_type
中声明/ typedef
'd 为:
std::list<Internal*>
这样的事情有可能吗?
您可能需要以下内容:
#include <list>
#include <memory>
template <template <typename, typename>
class Container = std::list>
class MyClass
{
class Internal
{ };
Container<Internal*, std::allocator<Internal*>> my_list;
};
int main()
{
MyClass<> m;
}
这是您可以使用的可编译示例。请注意,typename
这里需要额外和分配器的定义。