diff --git a/misc/traits.h b/misc/traits.h index b9ea35a..7a37af7 100644 --- a/misc/traits.h +++ b/misc/traits.h @@ -48,6 +48,11 @@ struct IsCString template struct IsString : Bool::value || IsSpecializationOf::value> { }; +template struct IsComplete : Bool { +}; +template struct IsComplete : Bool { +}; + /*! * \def CPP_UTILITIES_PP_COMMA * \brief The CPP_UTILITIES_PP_COMMA macro helps passing "," as a macro argument. diff --git a/tests/traitstests.cpp b/tests/traitstests.cpp index 0b2f15a..fee4550 100644 --- a/tests/traitstests.cpp +++ b/tests/traitstests.cpp @@ -19,6 +19,8 @@ struct CountableStruct { size_t size() const; }; +struct TestIncomplete; + static_assert(!Bool::value, "Bool"); static_assert(Bool::value, "Bool"); static_assert(!Not>::value, "Not"); @@ -56,3 +58,6 @@ static_assert(!IsString::value, "IsString: negative case"); static_assert(IsString::value, "IsString: positive case"); static_assert(IsString::value, "IsCString: positive case"); static_assert(IsString::value, "IsCString: positive case"); + +static_assert(!IsComplete::value, "IsComplete: negative case"); +static_assert(IsComplete::value, "IsComplete: positive case");