#ifndef LLVM_LIBC_SRC___SUPPORT_CPP_TYPE_TRAITS_IS_CLASS_H
#define LLVM_LIBC_SRC___SUPPORT_CPP_TYPE_TRAITS_IS_CLASS_H
#include "src/__support/CPP/type_traits/bool_constant.h"
#include "src/__support/CPP/type_traits/false_type.h"
#include "src/__support/CPP/type_traits/is_union.h"
#include "src/__support/macros/attributes.h"
#include "src/__support/macros/config.h"
namespace LIBC_NAMESPACE_DECL {
namespace cpp {
namespace detail {
template <class T> cpp::bool_constant<!cpp::is_union_v<T>> test(int T::*);
template <class> cpp::false_type test(...);
}
template <class T> struct is_class : decltype(detail::test<T>(nullptr)) { … };
is_class_v;
}
}
#endif