泛型定义解决思路
泛型定义C/C++ codetemplatetypename T1,typename T2templateclass T1,class T2上面tyepname 和 class
泛型定义
C/C++ codetemplate<typename T1,typename T2>template<class T1,class T2>
上面tyepname 和 class有什么区别?
[解决办法]原则上 无差异
[解决办法]完全一样.
[解决办法]typename
C++ Specific —>
typename identifier;
Use this keyword only in template definitions. This keyword tells the compiler that an unknown identifier is a type. For example:
template<class T> class X {
typename T::Y; // treat Y as a type
Y m_y;
};
This keyword can also be used in place of class in template parameter lists. For example, the following statements are identical:
template<class T1, class T2>...
template<typename T1, typename T2>...
[解决办法]LZ的例子里没有差异。
有差异的地方:
template<template<class>
class TemplateTemplateParameter1, template<typename>
class TemplateTemplateParameter2>
typename nested::type_name
语法规则决定以上粗体部分不能被替换。
[解决办法]楼上所说极是.