MyTinySTL
MyTinySTL copied to clipboard
Fix `address_of` for overloaded `operator&`
Fixes #133.
策略:
- 如果编译器支持
__builtin_addressof
则使用; - 否则,使用 SFINAE
- 对函数使用内建
operator&
; - 对对象使用
reinterpret_cast
到字节类型再取地址的策略(与constexpr
不兼容)。
- 对函数使用内建
为了避免 addressof<const int>(42)
之类取临时对象的代码通过编译,对右值提供被删除的重载(实现 LWG2598)。