相关疑难解决方法(0)

使用placement new 时,std::construct_at 通过指向volatile 的指针转换的目的是什么?

根据cppreferencestd::construct_at(T*p, Args&&... args)相当于

return ::new (const_cast<void*>(static_cast<const volatile void*>(p)))
    T(std::forward<Args>(args)...);
Run Code Online (Sandbox Code Playgroud)

演员“通过”的需要/目的是什么const volatile void*?换句话说,为什么construct_at不简单地等同于

return ::new (static_cast<void*>(p))
    T(std::forward<Args>(args)...);
Run Code Online (Sandbox Code Playgroud)

在哪种情况下,后一种代码会导致不良行为?

c++ casting volatile object-construction

8
推荐指数
1
解决办法
95
查看次数

标签 统计

c++ ×1

casting ×1

object-construction ×1

volatile ×1