diff --git a/Include/auROXTL/auTemplateMeta.hpp b/Include/auROXTL/auTemplateMeta.hpp index eb0a8707..35a2c20f 100644 --- a/Include/auROXTL/auTemplateMeta.hpp +++ b/Include/auROXTL/auTemplateMeta.hpp @@ -48,7 +48,7 @@ inline constexpr bool AuIsSame_v = AuIsSame::value; namespace _audetail { template - AuBoolType::value> IsClass(int T:: *); + AuBoolType IsClass(int T:: *); template AuFalseType IsClass(...); @@ -232,13 +232,16 @@ struct AuAddRReference template using AuAddRReference_t = typename AuAddRReference::type; +template +inline AuAddRReference_t AuDeclVal(); + template using AuEnableIf_t = typename AuEnableIf::type; template struct AuIsConstructible { - template static constexpr AuTrueType Test(decltype(T(std::declval()...))); + template static constexpr AuTrueType Test(decltype(T(AuDeclVal()...))); template static constexpr AuFalseType Test(...); using type = decltype(Test(0)); }; @@ -270,7 +273,7 @@ struct AuIsBaseOfTemplateImpl template static constexpr AuTrueType Test(const Base *); static constexpr AuFalseType Test(...); - using type = decltype(Test(std::declval *>())); + using type = decltype(Test(AuDeclVal *>())); }; template