1234567891011121314151617181920212223242526 |
- #include "simple/support/meta/reconstruct.hpp"
- #include "simple/support/meta/list.hpp"
- #include <type_traits>
- using namespace simple::support;
- template <typename T>
- struct double_float { using type = meta::list<T>; };
- template <> struct double_float<double> { using type = meta::list<float, float>; };
- int main()
- {
- static_assert(std::is_same_v<
- meta::reconstruct_t<meta::list<int, double, char>, double_float>,
- meta::list<int, float, float, char>
- >);
- static_assert(std::is_same_v<
- meta::reconstruct_t<meta::list<double, meta::list<int, double, char>, bool>,
- double_float>,
- meta::list<float, float, meta::list<int, double, char>, bool>
- >);
- return 0;
- }
|