#if !defined(CODEQL_TYPE_TRAITS_H) #define CODEQL_TYPE_TRAITS_H typedef unsigned long size_t; namespace std { template struct remove_const { typedef T type; }; template struct remove_const { typedef T type; }; // `remove_const_t` removes any `const` specifier from `T` template using remove_const_t = typename remove_const::type; template struct remove_reference { typedef T type; }; template struct remove_reference { typedef T type; }; template struct remove_reference { typedef T type; }; // `remove_reference_t` removes any `&` from `T` template using remove_reference_t = typename remove_reference::type; template struct decay_impl { typedef T type; }; template struct decay_impl { typedef T* type; }; template using decay_t = typename decay_impl>::type; } #endif