29 #ifndef AURORA_TYPEID_HPP
30 #define AURORA_TYPEID_HPP
35 #include <type_traits>
47 static_assert(std::is_polymorphic<T>::value,
"T must be a polymorphic type.");
48 #ifndef AURORA_TYPEID_ALLOW_NONVIRTUAL_DTOR
49 static_assert(std::has_virtual_destructor<T>::value,
"Polymorphic types should have a virtual destructor. "
50 "Define AURORA_TYPEID_ALLOW_NONVIRTUAL_DTOR to let this code compile.");
78 detail::verifyRttiType<T>();
79 return typeid(reference);
92 detail::verifyRttiType<T>();
101 #endif // AURORA_TYPEID_HPP
Utilities for template metaprogramming.
Definition: DispatchTraits.hpp:39