[*] STDs
This commit is contained in:
parent
47f7078a24
commit
dd2bba92e5
@ -48,7 +48,7 @@ inline constexpr bool AuIsSame_v = AuIsSame<T, U>::value;
|
||||
namespace _audetail
|
||||
{
|
||||
template <class T>
|
||||
AuBoolType<!std::is_union<T>::value> IsClass(int T:: *);
|
||||
AuBoolType<!__is_union(T)> IsClass(int T:: *);
|
||||
|
||||
template <class>
|
||||
AuFalseType IsClass(...);
|
||||
@ -232,13 +232,16 @@ struct AuAddRReference
|
||||
template <class T>
|
||||
using AuAddRReference_t = typename AuAddRReference<T>::type;
|
||||
|
||||
template <class T>
|
||||
inline AuAddRReference_t<T> AuDeclVal();
|
||||
|
||||
template <bool Test, class T = void>
|
||||
using AuEnableIf_t = typename AuEnableIf<Test, T>::type;
|
||||
|
||||
template <class T, class ... Args>
|
||||
struct AuIsConstructible
|
||||
{
|
||||
template <class T, class ... Args> static constexpr AuTrueType Test(decltype(T(std::declval<Args>()...)));
|
||||
template <class T, class ... Args> static constexpr AuTrueType Test(decltype(T(AuDeclVal<Args>()...)));
|
||||
template <class T, class ... Args> static constexpr AuFalseType Test(...);
|
||||
using type = decltype(Test<T, Args...>(0));
|
||||
};
|
||||
@ -270,7 +273,7 @@ struct AuIsBaseOfTemplateImpl
|
||||
template <class... Ts>
|
||||
static constexpr AuTrueType Test(const Base<Ts...> *);
|
||||
static constexpr AuFalseType Test(...);
|
||||
using type = decltype(Test(std::declval<AuRemoveReference_t<Derived> *>()));
|
||||
using type = decltype(Test(AuDeclVal<AuRemoveReference_t<Derived> *>()));
|
||||
};
|
||||
|
||||
template <template <class...> class Base, typename Derived>
|
||||
|
Loading…
Reference in New Issue
Block a user