template<typename T, typename SerializerT, typename _enabled = void>
checkpoint::ReconstructAsVirtualIfNeeded struct

Do a static trait test on type to check for virtual serializability. If virtually serializable, we need to perform some extra work to register the type, allocate, and construct the proper type. Otherwise, we go through the normal path for allocating memory for T and serializing what the pointer points to.