__restrict__ shared_ptr和一般的任何类
__restrict__ shared_ptr and for any class in general
是否可以__restrict__
限定符用于std::shared_ptr
?
假设我有一个包装指针的类。是否有任何机制允许最终用户向类添加限制限定符?这应该等效于将限制限定符提供给包装的指针。
IIRC,非标准__restrict
关键字(及其变体(适用于原始指针(或某些实现中的引用(。从编译器的角度来看,智能指针是普通类,因此您无法"限制"它们。
但是,如果您需要告诉编译器,在代码的某些部分中,智能指针指向的内存是通过单个指针对象专门访问的,则可以从智能指针中提取受限制的原始指针并改用它:
void f(std::shared_ptr<T>& ptr) {
__restrict T* temp = ptr.get();
// use temp here:
...
}
相关文章:
- 在任何类类型上使用模板方法中的 new
- 我如何通过函数(不在任何类中)在类中使用私人变量
- __restrict__ shared_ptr和一般的任何类
- 调用不访问已删除对象中的任何类成员的类方法是否安全
- 来自任何类的功能指针参数
- 如何在任何类中使用对象窗体main?C++
- 打印GDB中任何类的vtbl函数
- 在c++中,当我们创建一个类而不扩展到任何类时
- 错误:"任何类"未在此范围内声明
- GMOCK 模拟类不继承任何类
- 泛型函数,可以接受参数 C++ 中的任何类成员
- 如何使用 windbg 在不属于任何类的函数声明上设置断点
- 如何修改我的提升::任何类似的类
- 如何通过指向函数的指针从任何类调用函数
- 错误:类的原型与任何类 - 继承都不匹配
- 如何从任何类全局访问 QT 对话框
- c++中是否有任何类是所有类中的超类
- 点击按钮 -> 执行我在参数中给出的任何类函数 (C++)
- 为什么即使没有任何类声明也需要原型
- 我是否可以使用任何类 T 作为分配器类型,只要 std::allocator_traits<T> 是专用的?