c++ - 模板和结构的混合

标签 c++ templates struct

我有一个定义如下的模板类:

template <class T1, class T2>
class MyClass { };

在这个类中,我需要一个包含一个 T1 类型成员的结构。我该怎么做?

我尝试了以下方法,但没有用:

template <class T1, class T2>
class MyClass {
    typedef struct {
        T1 templateMember;
        // rest of members
    } myStruct;

    // rest of class definition
};

编辑:根据要求,我使用 VS2008 并收到以下错误:

'MyClass<T1,T2>::myStruct' uses undefined class 'T1' 

最佳答案

只需删除 typedef:

template <class T1, class T2>
class MyClass {
    struct myStruct{
        T1 templateMember;
        // rest of members
    } ;
};

关于c++ - 模板和结构的混合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1293951/

相关文章:

c - char str[1] 和 char *str 在这种情况下的区别?

c - 在 C 中通过引用传递结构

c++ - 删除数组中的尾随零

c++ - 具有不依赖于模板参数的原型(prototype)的虚函数是否在模板中有效?

c++ - 在模板中使用非虚拟分派(dispatch)

c - 链表和内存地址

c++0x 隐式转换为非标量类型

c++ - sizeof 和函数模板 : sizeof(&f) vs sizeof(&f<int>)

c++ - OpenGL ES 3.1 - 无法使用 glTexImage2D 创建不可变纹理

python - 模板中的 django forloop 计数器