@@ -470,7 +470,36 @@ static_assert(!std::is_same_v<std::tuple_element<0, decayed_test_tuple>::type, i
470470static_assert (!std::is_same_v<std::tuple_element<1 , decayed_test_tuple>::type, bool &&>);
471471static_assert (!std::is_same_v<std::tuple_element<2 , decayed_test_tuple>::type, std::string&&>);
472472
473- // is_uintx
473+ static_assert ( is_same_tuple<std::tuple<char * const &, double &&>, std::tuple<char *, double >>);
474+ static_assert (!is_same_tuple<std::tuple<int , double >, std::tuple<int , float >>);
475+ static_assert (!is_same_tuple<std::tuple<const char *>, std::tuple<int >>);
476+ static_assert (!is_same_tuple<std::tuple<int , double >, std::tuple<int >>);
477+ static_assert (!is_same_tuple<std::tuple<>, std::tuple<int >>);
478+ static_assert ( is_same_tuple<std::tuple<>, std::tuple<>>);
479+ static_assert ( is_same_tuple<std::tuple<int , double >, std::tuple<int , double >>);
480+ static_assert ( is_same_tuple<std::tuple<int [5 ], void (*)(int )>, std::tuple<int *, void (*)(int )>>);
481+ static_assert (!is_same_tuple<std::tuple<char *, const char * const &>, std::tuple<char *, char *>>);
482+
483+ static_assert ( is_empty_tuple<std::tuple<>>);
484+ static_assert (!is_empty_tuple<std::tuple<bool >>);
485+
486+ // std::shared_ptr<>
487+ // ----------------------------------------------------------------------------
488+
489+ static_assert ( is_shared_ptr<std::shared_ptr<int >>);
490+ static_assert (!is_shared_ptr<std::unique_ptr<int >>);
491+ static_assert (!is_shared_ptr<std::weak_ptr<int >>);
492+ static_assert (!is_shared_ptr<int *>);
493+ static_assert (!is_shared_ptr<int >);
494+ static_assert ( is_shared_ptr<const std::shared_ptr<double >>);
495+ static_assert ( is_shared_ptr<const std::shared_ptr<double >&>);
496+ static_assert ( is_shared_ptr<std::shared_ptr<double > const &>);
497+ static_assert ( is_shared_ptr<std::shared_ptr<std::string>>);
498+ static_assert ( is_shared_ptr<std::shared_ptr<const std::string>>);
499+ static_assert ( is_shared_ptr<std::shared_ptr<const std::string&>>);
500+ static_assert (!is_shared_ptr<std::vector<int >>);
501+
502+ // uintx_t
474503// ----------------------------------------------------------------------------
475504
476505static_assert (is_uintx<uint5_t >);
0 commit comments