diff --git a/Meta/overload.h b/Meta/overload.h new file mode 100644 index 0000000..a9421ea --- /dev/null +++ b/Meta/overload.h @@ -0,0 +1,32 @@ +static_assert( __cplusplus > 201700, "C++17 Required" ); + +#pragma once + +#include + +namespace Alepha::Hydrogen::Meta +{ + inline namespace exports { inline namespace template_overload {} } + + namespace detail::template_overload + { + inline namespace exports {} + + template< std::size_t > + struct holder + { + struct overload_t; + }; + + namespace exports + { + template< std::size_t i > + using overload= typename holder< i >::overload_t *; + } + } + + namespace exports::template_overload + { + using namespace detail::template_overload::exports; + } +}