小编Dan*_*uer的帖子

C++实例化模板模板类

我正在尝试实现我自己的容器(在我的演示中称为 Manager),它存储另一个模板化容器(例如Node<T>)。因此我试图实例化一个像Mgr<Node<T>>. 阅读完此处的所有模板模板文章后,我看到了以下演示代码。

#include <iostream>

template<typename T>
struct Node {
    T data;
    int id;
};

template<template<typename> class Container, typename T>
struct Mgr {
    Container<T> nodes;
    int id;
    void print()
    {
        std::cout << this->id;
    }
};

int main() {
    Mgr<Node<char>, char> mgr;
    mgr.print();
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

编译它仍然给我错误消息:type/value mismatch at argument 1 in template parameter list for 'template<template<class> class Container, class T> struct Mgr...Expected a class template, got Node<char> 是我的函数定义错误,还是我的实例化参数不正确?

c++ templates

2
推荐指数
1
解决办法
65
查看次数

标签 统计

c++ ×1

templates ×1