我试图了解是什么std::launder
,我希望通过查找示例实现可以清楚地知道。
我在哪里可以找到一个示例实现std::launder
?
当我查看 lbic++ 时,我看到了类似的代码
template<typename _Tp>
[[nodiscard]] constexpr _Tp*
launder(_Tp* __p) noexcept
{ return __builtin_launder(__p); }
这让我觉得这是另一个编译器魔术函数。
这个函数__builtin_launder
可以做什么,它只是添加一个标签来抑制编译器关于别名的警告吗?
是否有可能理解std::launder
或__builtin_launder
只是更多的编译器魔法(钩子)?