我有一个类A,我重载它的operator =.但是,我需要做这样的事情:
volatile A x; A y; x = y;
这在编译时引起错误
error: no operator "=" matches these operands operand types are: volatile A = A
如果我删除了volatile,它是可编译的.有没有这个编译没有删除“volatile”(并仍然保持行为volatile)?
基本上这是一个CUDA程序,其中’x’是一个共享内存(所有线程都可以访问和修改其值).我希望它是“易失性”,以避免编译器优化并重新使用该值而不是访问内存地址.
更多的问题:在开头A只是一个原始类型,如整数,易失性工作如预期,不会造成任何问题,现在我希望它成为一个自定义类(例如128位整数).我不知道为什么C在这种情况下抱怨,但不是基本的数据类型.
提前致谢.
解决方法
原文地址:https://www.jb51.cc/c/113292.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。