在C ++中引用模板化类型的内部类型

时间:2017-05-11 21:03:55

标签: c++ c++11 templates

我尝试使用模板参数X创建模板化类,该模板参数引用X中定义的类或typedef。这段代码:

template <class X>
struct C {
    void Method(X::Child c);
};

没有编译,因为:

test.cc:3:20: error: ‘X::Child’ is not a type
     void Method(X::Child c);
                    ^~~~~

我对SFINAE的理解是允许的;当模板使用类型X实例化而没有内部类型名为Child的模板时,我希望会出现这种错误,但在这里我得到错误而根本没有实例化模板。

0 个答案:

没有答案