#include #include #include #include #include "example.hpp" HIDE( /// [map1] using m = metal::list<>; // an empty map /// [map1] IS_SAME(metal::is_map, metal::true_); ) HIDE( /// [map2] using m = metal::list< metal::list, metal::list >; /// [map2] IS_SAME(metal::is_map, metal::true_); ) HIDE( /// [not_a_map1] using not_a_map = metal::list< // repeated keys metal::list, metal::list >; /// [not_a_map1] IS_SAME(metal::is_map, metal::false_); ) HIDE( /// [not_a_map2] using not_a_map = metal::list< // not a list of pairs metal::list, metal::list >; /// [not_a_map2] IS_SAME(metal::is_map, metal::false_); ) HIDE( /// [is_map] using m = metal::map< metal::pair>, metal::pair>, metal::pair> >; IS_SAME(metal::is_map, metal::true_); IS_SAME(metal::is_map>, metal::true_); IS_SAME(metal::is_map>, metal::false_); IS_SAME(metal::is_map>, metal::false_); IS_SAME(metal::is_map, metal::false_); /// [is_map] ) HIDE( /// [as_map] template struct a {}; template struct b {}; template struct c {}; IS_SAME( metal::as_map, c>>, metal::map, metal::pair> ); IS_SAME( metal::as_map, std::pair>>, metal::map, metal::pair> ); /// [as_map] ) HIDE( /// [order] using m = metal::map< metal::pair>, metal::pair>, metal::pair> >; IS_SAME(metal::order, metal::number<0>); IS_SAME(metal::order, metal::number<1>); IS_SAME(metal::order, metal::number<2>); /// [order] ) HIDE( /// [has_key] using m = metal::map< metal::pair>, metal::pair>, metal::pair> >; IS_SAME(metal::has_key, metal::true_); IS_SAME(metal::has_key, metal::true_); IS_SAME(metal::has_key, metal::true_); IS_SAME(metal::has_key, metal::false_); /// [has_key] ) HIDE( /// [at_key] using m = metal::map< metal::pair>, metal::pair>, metal::pair> >; IS_SAME(metal::at_key, metal::number); IS_SAME(metal::at_key, metal::number); IS_SAME(metal::at_key, metal::number); /// [at_key] ) HIDE( /// [insert_key] using m = metal::map< metal::pair>, metal::pair>, metal::pair> >; IS_SAME( metal::insert_key>, metal::map< metal::pair>, metal::pair>, metal::pair>, metal::pair> > ); /// [insert_key] ) HIDE( /// [erase_key] using m = metal::map< metal::pair>, metal::pair>, metal::pair> >; IS_SAME( metal::erase_key, metal::map< metal::pair>, metal::pair> > ); IS_SAME( metal::erase_key, metal::map< metal::pair>, metal::pair> > ); IS_SAME( metal::erase_key, metal::map< metal::pair>, metal::pair> > ); /// [erase_key] ) HIDE( /// [keys] using m = metal::map< metal::pair>, metal::pair>, metal::pair> >; IS_SAME(metal::keys, metal::list); /// [keys] ) HIDE( /// [values] using m = metal::map< metal::pair>, metal::pair>, metal::pair> >; IS_SAME( metal::values, metal::numbers ); /// [values] )