sandbox
Loading...
Searching...
No Matches
meta.hpp
1// SPDX-License-Identifier: MIT
2#ifndef LIBSBX_ECS_META_HPP_
3#define LIBSBX_ECS_META_HPP_
4
5#include <type_traits>
6
7#include <libsbx/utility/hashed_string.hpp>
8
9namespace sbx::ecs {
10
11template<typename Type>
12struct meta;
13
14template<typename Type, typename = void>
15struct has_meta : std::false_type { };
16
17template<typename Type>
18struct has_meta<Type, std::void_t<decltype(std::declval<meta<Type>>()(std::declval<const utility::hashed_string&>(), std::declval<Type&>()))>> : std::true_type { };
19
20template<typename Type>
21constexpr bool has_meta_v = has_meta<Type>::value;
22
23} // namespace sbx::ecs
24
25#endif // LIBSBX_ECS_META_HPP_
Definition: meta.hpp:15
Definition: meta.hpp:12