* std::nullptr_t as a unit type
* how to use SFINAE to conditionally enable certain method:
template<std::nullptr_t N = nullptr, std::enable_if<N == nullptr && CONDITION, std::nullptr_t> = nullptr>
* std::nullptr_t as a unit type
* how to use SFINAE to conditionally enable certain method:
template<std::nullptr_t N = nullptr, std::enable_if<N == nullptr && CONDITION, std::nullptr_t> = nullptr>
* Empty struct has nonzero size
* FAM or zero-length arrays are not recognized in C++ standard
* In some compilers struct { uint8_t phantom[0]; } gives zero size, despite being a result of UB
* member fields with different accessibility might be rearranged
* Empty struct has nonzero size
* FAM or zero-length arrays are not recognized in C++ standard
* In some compilers struct { uint8_t phantom[0]; } gives zero size, despite being a result of UB
* member fields with different accessibility might be rearranged
* deleter in std::unique_ptr
can have deleter type as second template argument. Useful when wrapping e.g. a legacy C function interface that returns/allocates a pointer that must be cleared/freed manually.
* deleter in std::unique_ptr
can have deleter type as second template argument. Useful when wrapping e.g. a legacy C function interface that returns/allocates a pointer that must be cleared/freed manually.