1
7
标准上说
您可以(ab)-通过声明转换函数的const版本来使用没有重载解析的情况。在一个一致的编译器上,这足以使它不再工作
结果如下
但是,这有一个缺点,即您的smartpointer现在可以转换为 任何 指针类型。虽然实际的转换仍然是typechecked,但这并不排除前面的转换,而是在以后给出一个编译时错误。遗憾的是,SfimaE似乎不可能用C++ 03中的转换函数:一种不同的方式是从其他函数返回私有嵌套类型指针。
现在唯一的问题是转换成
不过,请注意,这些变通方法仅适用于不一致的编译器。 |
2
4
|
3
1
您可以使用
Boost
你真的应该实现一个
是的,打字要花更多的时间
如果你有这样的功能:
函数将在何处存储指针?这将破坏智能指针,因为现在它不知道其他东西拥有原始指针。
不管怎样,你都有工作要做。智能指针类似于原始指针,但它们并不相同,因此您不能仅查找和替换的所有实例
|
4
0
我没想太多但是。。。你能为操作符delete提供一个重载吗?这个重载对于模板类的实例是强类型的,这样当包含代码时编译就失败了?如果这是在您的头文件,那么隐式转换调用删除应防止赞成调用您的重载。 {
|
5
0
我知道你不想在哪里大量应用.get()。你有没有考虑过用更小的替代delete?
|
ciyo · 将唯一指针初始化为类成员 6 年前 |
Pierre P. · 来自this和this的shared_用例 6 年前 |
drewpol · 具有共享指针的列表的共享指针 6 年前 |
Ali Sepehri-Amin · 全局范围内的智能指针 7 年前 |
dtell · std::由此构造的shared\u ptr 7 年前 |
OneRaynyDay · 在这种情况下,我应该使用智能指针吗? 7 年前 |