C++ 虐我千百遍
109 subscribers
31 photos
7 links
Download Telegram
Channel created
为啥 initializer_list 不把 size 放到模板参数里面呢,明明是编译期能确定的呀
放到模板参数没法表达 {{1}, {1,2}} 这样的
Channel photo updated
招管理员
投稿请在讨论群 #投稿
从 C++17 起,如何从地址获得一个指定类型的对象?用 std::launder
alignas(T) char c[sizeof T];
T* p = new(&c) T { /*args*/ };
p->do_something(); // certainly ok
reinterpret_cast<T*>(&c)->do_something(); // ub 因为 cast 结果没有指向一个 T 类型的对象
std::launder(reinterpret_cast<T*>(&c))->do_something(); // ok