template <template <typename> class container_type>
class MyClass
{
class Internal{
};
};
我希望以下面的方式使用这个类(或它看起来如何正确)...
MyClass(std::list);
...以便在MyClass中container_type
声明/ typedef
'为:
std::list<Internal*>
这样的事情有可能吗?
答案 0 :(得分:0)
您可能需要以下内容:
#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;
}
Here's您可以使用的可编辑示例。请注意,此处需要额外的typename
和分配器的定义。