|
|
1
5
是的,你可以使用范围保护技术
然后编写一个函数来创建自动锁定器
然后你可以这样写:
一旦常量引用超出范围,就调用析构函数。它不需要是虚拟的。至少海湾合作委员会 optimizes this quite well . 遗憾的是,这意味着您必须使您的locker对象可复制,因为您需要从maker函数返回它。但是旧对象不会尝试解锁两次,因为复制时它的指针设置为0,所以它是安全的。 |
|
|
2
2
很明显你不能逃避
但是类型擦除可以用来做你想要的。将类模板转换为类,将其构造函数转换为成员模板。但是您必须动态地分配一个内部实现对象。
实际上我没有尝试过,而且语法可能是错误的(我不确定如何获取特定函数模板实例的地址),但我认为原则上这应该是可行的。也许有人来修理我的错误。 我更喜欢这个,而不是范围保护,出于某种原因,我从来没有真正喜欢过它。 |
|
|
3
1
|
|
|
4
1
我认为JWSWMAR是正确的,你想要的是C++不可能的。然而, 类似的 (不是直接模拟)可以用C++ 0x构造,使用一些新的特征(rVals/移动和自动变量类型):
|
|
|
sungjun cho · 函数模板重叠多个匹配项 1 年前 |
|
|
Amaterastis · 基类接受子类和内部子类的模板参数 1 年前 |
|
|
111111 · 确定作为模板参数传递的函数的参数类型 1 年前 |
|
|
Sam · 在LaTeX中将图像添加到预制的投影仪中 1 年前 |
|
|
user416983 · 模板函数成员作为模板参数 1 年前 |
|
|
PyOPTProblem · c++如何模板化模板参数的部分实例化? 1 年前 |