3
template <template <typename> class container_type>
class MyClass
{
    class Internal{
    };
};

我想以如下方式使用这个类(或它的正确外观)......

MyClass(std::list);

...因此在 MyClasscontainer_type中声明/ typedef'd 为:

std::list<Internal*>

这样的事情有可能吗?

4

1 回答 1

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;
}

这是您可以使用的可编译示例。请注意,typename这里需要额外和分配器的定义。

于 2013-09-09T05:29:16.263 回答