百科问答小站 logo
百科问答小站 font logo



在内存特定位置填数据后,placement new 是否完全等价与cast? 第1页

  

user avatar   haozhi-yang-41 网友的相关建议: 
      

如果你能在其它方面良好配合的话,也不是不行:

例如说你本来需要在构造函数里打开一个文件,记录文件fd。现在就先把fd初始化为-1,然后在每个需要用的地方判断一下是否已打开。其他的一系列外部操作(包括但不限于进程、线程、共享资源、信号、系统调用、日志等)都可以用类似的“标记->延迟操作”的方式进行改动——这改动并不严格等价(尤其考虑并发环境),但仔细设计和规划整个流程的话,最终效果一致的目的是能达到的。

无非就是,这么干有悖于现在主流的RAII思想。除非有什么特别原因,不然一般都不这么干。




  

相关话题

  网上有对于C++编程要避免使用cin、cout、fstream;而是使用scanf、printf、FILE *的说法, 请问是正确的吗? 
  win32程序如何获取设备上下文绘制的内容? 
  c++中超出char、int范围的整数怎么存储? 
  为什么 C++ 的开源库看起来那么头大? 
  要设计一段C++程序将这组数按要求重新排序时,有哪些好的算法? 
  如何理解 Golang 中“不要通过共享内存来通信,而应该通过通信来共享内存”? 
  假如有某种力量使得世界上所有编译器都被删除了, 人类是否需要从打孔卡开始写第一个编译器? 
  「C++ 早就过时了,大部分写工程不用 C++,学习这个语言只是为了竞赛」的观点是否正确? 
  内存为什么要分页? 
  为什么程序代码被编译成机器码就不能跨平台运行? 

前一个讨论
如何评价万科副总裁刘肖,因北方区域事业集团的违规违纪问题,被连降两级,并扣减1000万元奖金?
下一个讨论
如何看待成都防疫人员未检测核酸直接捕杀宠物?





© 2024-11-21 - tinynew.org. All Rights Reserved.
© 2024-11-21 - tinynew.org. 保留所有权利