请考虑以下代码:
aligned_storage<sizeof(T)> buffer;
T& ref(*reinterpret_cast<T*>(&buffer));
new (&buffer) T();
Use(ref);
Run Code Online (Sandbox Code Playgroud)
这样做的上下文是将一些全局对象重构为显式初始化的对象(而不是在静态初始化期间由编译器初始化),而不会影响现有用户(并且不使用宏).
我认为代码会导致编写未定义的行为,但有没有任何有效(便携)的方法来完成同样的事情?我能想到的最接近的是使用某种类型operator T&,但仍然可能会破坏用户.
| 归档时间: |
|
| 查看次数: |
102 次 |
| 最近记录: |