什么是成员模板?
What is Member templates?
可以调用模板成员,模板成员函数吗?或者我怎么知道叫它成员模板,它有什么意义?
例如:对于案例A:我有一个类,如果我把它的成员函数设为模板成员函数,我会称它为成员模板吗?
对于案例B:我有一个模板类,如果我把它的模板成员函数设为模板,我是叫它成员模板还是叫它模板模板成员函数?
对于这两种情况,都称其为成员模板。
template<typename T>
struct A {
// this is not a template
void f();
// but this is a member template
template<typename T> void g();
};
它是一个成员模板,因为它是一个模板的成员。成员函数f
不是模板,而是类模板的成员函数。不幸的是,在c++中没有一个明确的术语来描述这样的事情,所以在标准中制定的某些规则适用于模板,但也适用于类模板的成员函数。许多规则需要包括所有快乐的组合,比如
function template
member function of class template
member function of nested class of a class template
member function template
...
同样适用于类模板的成员类。有人建议调用类模板的成员函数/类temploid或类似的东西。不过,解决这个问题的工作正在进行中。
相关文章:
- int数据类型的指针指向的是什么,如果是一个类的私有数据成员,我们创建了该类的两个对象?
- 重载运算符的范围是什么?它是否会影响作为类成员的集合的插入函数?
- 常量公共成员有什么问题?
- 空指针常量 (nullptr)、空指针值和空成员指针值之间有什么区别?
- Visual C++: MSVC vs. GCC+CLANG: 处理 lambda 捕获类成员变量,正确的方法是什么?
- 什么是更好的做法?通过指针或标识符传递类成员?
- 什么可以防止类中相邻成员重叠
- 指针类型类成员的动态强制转换的恒定性是什么?
- 删除类成员的动态分配内存的最佳方法是什么
- 使用 const char* 初始化 const ref 字符串成员时幕后会发生什么
- 初始化类成员的更好做法是什么?
- 键入擦除成员函数指针的"right"方法是什么?
- 构造函数中没有参数的对象类成员按什么顺序初始化?
- 使用只有一个成员的工会的目的是什么?
- 什么是指向成员模板参数的指针
- 常量成员和没有setter的私有成员之间有什么区别
- C++:允许临时对象调用非常量成员函数的设计理念是什么?
- 为什么我应该在scanf()-家族成员中包含一个长度修饰符作为参数?有什么好处?使用长度修改器进行扫描的作用
- 命名空间 Win 没有成员"simpleControl"是什么意思
- constexpr静态成员什么时候停止成为constexpr