diff options
author | Stanislaw Halik <sthalik@misaki.pl> | 2022-11-15 14:26:59 +0100 |
---|---|---|
committer | Stanislaw Halik <sthalik@misaki.pl> | 2022-11-15 20:01:58 +0100 |
commit | 187d7a693f85c0c90d32e38250dfea14039a1b1d (patch) | |
tree | 88b7e9c8842bd332e50bc1b6fdb63b63277e2d14 /test | |
parent | d3d33b946fa72bb8be9949e1ad24fa97ed3d436a (diff) |
entity: add some metaprogramming crap
Diffstat (limited to 'test')
-rw-r--r-- | test/entity.cpp | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/test/entity.cpp b/test/entity.cpp index 8266ec47..01d8a28c 100644 --- a/test/entity.cpp +++ b/test/entity.cpp @@ -70,4 +70,18 @@ void test_app::test_entity() static_assert(test_visitor()); } +namespace type_tests { + +using namespace floormat::entities::detail; + +template<typename T, typename U> using common_type2 = std::common_type_t<T, U>; +static_assert(std::is_same_v<long long, detail::reduce<common_type2, parameter_pack<char, unsigned short, short, long long>>>); +static_assert(std::is_same_v<detail::parameter_pack<unsigned char, unsigned short, unsigned int>, + detail::map<std::make_unsigned_t, detail::parameter_pack<char, short, int>>>); + +static_assert(std::is_same_v<detail::parameter_pack<unsigned char, unsigned short, unsigned, unsigned long>, + detail::map<std::make_unsigned_t, detail::parameter_pack<char, short, int, long>>>); +static_assert(std::is_same_v<std::tuple<int, short, char>, detail::lift<detail::parameter_pack<short, char>, std::tuple, int>>); +} // namespace type_tests + } // namespace floormat |