diff --git a/include/nameof.hpp b/include/nameof.hpp index 2991602..e6db437 100644 --- a/include/nameof.hpp +++ b/include/nameof.hpp @@ -986,16 +986,7 @@ template From get_base_type(Type From::*); template -union union_type { - constexpr ~union_type() {} - char c = {}; - T f; -}; - -template -struct union_type_holder { - constexpr static union_type value; -}; +extern T nonexist_object; template constexpr auto get_member_name() noexcept { @@ -1005,7 +996,7 @@ constexpr auto get_member_name() noexcept { constexpr bool is_defined = sizeof(decltype(get_base_type(V))) != 0; static_assert(is_defined, "nameof::nameof_member member name can use only if the struct is already fully defined. Please use NAMEOF macro, or separate definition and declaration."); if constexpr (is_defined) { - return n::value.f.*V)>(); + return n(); } else { return ""; }