How is std::is_empty<T> implemented in VS2015 (or any compiler)?
问题 My current question has been inspired by attempting to understand how std::unique_ptr<T, D> utilizes template mechanics to instantiate a template class the size of a T* when D (the deleter type) is a lambda function type, but a larger size when D is a function pointer type (since space needs to be allocated in the unique_ptr instance to store the function pointer). Looking through the VS2015 source code, I find that std::unique_ptr derives from std::_Unique_ptr_base , which in turn declares a