在C模板类中,我可以使用相同的名称对template参数进行typedef吗
发布时间:2020-12-16 05:17:54 所属栏目:百科 来源:网络整理
导读:如果我有一个模板类: templatetypename Layoutclass LayoutHandler : Handler {}; 并且我想将参数Layout公开给类的用户. 然后: templatetypename Layoutclass LayoutHandler : Handler {public: typedef Layout Layout; // using the same name}; VS2012可
如果我有一个模板类:
template<typename Layout> class LayoutHandler : Handler { }; 并且我想将参数Layout公开给类的用户. template<typename Layout> class LayoutHandler : Handler { public: typedef Layout Layout; // using the same name }; VS2012可以编译这段代码,并给出预期的结果. (我使用std :: is_same来检查它.) 解决方法
C 11中不允许.
typedef是一个声明. (见第7.1.3节) 模板参数不能在其范围内重新声明(包括嵌套作用域). (见第14.6.1.6节) C++11 draft standard n3242 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |