32 lines
709 B
C++
32 lines
709 B
C++
/***
|
|
Copyright (C) 2024 Jamie Reece Wilson (a/k/a "Reece"). All rights reserved.
|
|
|
|
File: auIsObject.hpp
|
|
File: auTemplateMeta.hpp
|
|
Date: 2024-11-30
|
|
Date: 2024-03-01
|
|
Author: Reece
|
|
***/
|
|
#pragma once
|
|
|
|
namespace __audetail
|
|
{
|
|
template <class T>
|
|
struct AuIsObject2
|
|
{
|
|
typedef AuConditional_mt(AuIsVoid_mv(T), AuFalseType, AuConditional_mt(AuIsConst_mv(const T), AuTrueType, AuFalseType)) Type;
|
|
};
|
|
}
|
|
|
|
template <class T>
|
|
struct AuIsObject : AuBoolType<__audetail::AuIsObject2<T>::Type::kValue>
|
|
{ };
|
|
|
|
#if defined(AU_LANG_CPP_14_)
|
|
|
|
template <class T>
|
|
AUROXTL_CONSTEXPR bool AuIsObject_v = AuIsObject<T>::kValue;
|
|
|
|
#endif
|
|
|
|
#define AuIsObject_mv(T) AuIsObject<T>::kValue |