detail/value_to.hpp

100.0% Lines (158/158) 97.3% List of functions (367/377)
value_to.hpp
f(x) Functions (377)
Function Calls Lines Blocks
boost::json::error boost::json::detail::try_reserve<std::array<int, 2ul> >(std::array<int, 2ul>&, unsigned long, std::integral_constant<int, 2>) :42 1x 80.0% 75.0% boost::json::error boost::json::detail::try_reserve<std::array<int, 4ul> >(std::array<int, 4ul>&, unsigned long, std::integral_constant<int, 2>) :42 22x 100.0% 75.0% boost::json::error boost::json::detail::try_reserve<std::array<int, 500ul> >(std::array<int, 500ul>&, unsigned long, std::integral_constant<int, 2>) :42 6x 80.0% 75.0% boost::json::error boost::json::detail::try_reserve<value_to_test_ns::T4>(value_to_test_ns::T4&, unsigned long, std::integral_constant<int, 2>) :42 12x 80.0% 75.0% boost::json::error boost::json::detail::try_reserve<std::unordered_map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, int> > > >(std::unordered_map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, int> > >&, unsigned long, std::integral_constant<int, 1>) :55 6x 100.0% 100.0% boost::json::error boost::json::detail::try_reserve<std::vector<bool, std::allocator<bool> > >(std::vector<bool, std::allocator<bool> >&, unsigned long, std::integral_constant<int, 1>) :55 8x 100.0% 100.0% boost::json::error boost::json::detail::try_reserve<std::vector<boost::json::my_app::customer, std::allocator<boost::json::my_app::customer> > >(std::vector<boost::json::my_app::customer, std::allocator<boost::json::my_app::customer> >&, unsigned long, std::integral_constant<int, 1>) :55 0 0.0% 0.0% boost::json::error boost::json::detail::try_reserve<std::vector<boost::variant2::variant<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<boost::variant2::variant<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > >(std::vector<boost::variant2::variant<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<boost::variant2::variant<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >&, unsigned long, std::integral_constant<int, 1>) :55 1x 100.0% 100.0% boost::json::error boost::json::detail::try_reserve<std::vector<decltype(nullptr), std::allocator<decltype(nullptr)> > >(std::vector<decltype(nullptr), std::allocator<decltype(nullptr)> >&, unsigned long, std::integral_constant<int, 1>) :55 1x 100.0% 100.0% boost::json::error boost::json::detail::try_reserve<std::vector<float, std::allocator<float> > >(std::vector<float, std::allocator<float> >&, unsigned long, std::integral_constant<int, 1>) :55 2x 100.0% 100.0% boost::json::error boost::json::detail::try_reserve<std::vector<int, std::allocator<int> > >(std::vector<int, std::allocator<int> >&, unsigned long, std::integral_constant<int, 1>) :55 27x 100.0% 100.0% boost::json::error boost::json::detail::try_reserve<std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >(std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >&, unsigned long, std::integral_constant<int, 1>) :55 2x 100.0% 100.0% boost::json::error boost::json::detail::try_reserve<std::vector<std::array<int, 4ul>, std::allocator<std::array<int, 4ul> > > >(std::vector<std::array<int, 4ul>, std::allocator<std::array<int, 4ul> > >&, unsigned long, std::integral_constant<int, 1>) :55 1x 100.0% 100.0% boost::json::error boost::json::detail::try_reserve<std::vector<std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, int> > >, std::allocator<std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, int> > > > > >(std::vector<std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, int> > >, std::allocator<std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, int> > > > >&, unsigned long, std::integral_constant<int, 1>) :55 1x 100.0% 100.0% boost::json::error boost::json::detail::try_reserve<std::vector<std::pair<int, int>, std::allocator<std::pair<int, int> > > >(std::vector<std::pair<int, int>, std::allocator<std::pair<int, int> > >&, unsigned long, std::integral_constant<int, 1>) :55 7x 100.0% 100.0% boost::json::error boost::json::detail::try_reserve<std::vector<std::vector<int, std::allocator<int> >, std::allocator<std::vector<int, std::allocator<int> > > > >(std::vector<std::vector<int, std::allocator<int> >, std::allocator<std::vector<int, std::allocator<int> > > >&, unsigned long, std::integral_constant<int, 1>) :55 2x 100.0% 100.0% boost::json::error boost::json::detail::try_reserve<std::vector<std::vector<std::pair<int, int>, std::allocator<std::pair<int, int> > >, std::allocator<std::vector<std::pair<int, int>, std::allocator<std::pair<int, int> > > > > >(std::vector<std::vector<std::pair<int, int>, std::allocator<std::pair<int, int> > >, std::allocator<std::vector<std::pair<int, int>, std::allocator<std::pair<int, int> > > > >&, unsigned long, std::integral_constant<int, 1>) :55 3x 100.0% 100.0% boost::json::error boost::json::detail::try_reserve<std::vector<unsigned long, std::allocator<unsigned long> > >(std::vector<unsigned long, std::allocator<unsigned long> >&, unsigned long, std::integral_constant<int, 1>) :55 1x 100.0% 100.0% boost::json::error boost::json::detail::try_reserve<std::vector<value_to_test_ns::T2, std::allocator<value_to_test_ns::T2> > >(std::vector<value_to_test_ns::T2, std::allocator<value_to_test_ns::T2> >&, unsigned long, std::integral_constant<int, 1>) :55 12x 100.0% 100.0% boost::json::error boost::json::detail::try_reserve<int>(int&, unsigned long, std::integral_constant<int, 0>) :66 1x 100.0% 100.0% boost::json::error boost::json::detail::try_reserve<std::map<int, int, std::less<int>, std::allocator<std::pair<int const, int> > > >(std::map<int, int, std::less<int>, std::allocator<std::pair<int const, int> > >&, unsigned long, std::integral_constant<int, 0>) :66 6x 100.0% 100.0% boost::json::error boost::json::detail::try_reserve<std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, double, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, double> > > >(std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, double, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, double> > >&, unsigned long, std::integral_constant<int, 0>) :66 1x 100.0% 100.0% boost::json::error boost::json::detail::try_reserve<std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, int> > > >(std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, int> > >&, unsigned long, std::integral_constant<int, 0>) :66 22x 100.0% 100.0% boost::json::error boost::json::detail::try_reserve<std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, int> > >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, int> > > > > > >(std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, int> > >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, int> > > > > >&, unsigned long, std::integral_constant<int, 0>) :66 2x 100.0% 100.0% boost::json::error boost::json::detail::try_reserve<std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<int, bool>, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::pair<int, bool> > > > >(std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<int, bool>, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::pair<int, bool> > > >&, unsigned long, std::integral_constant<int, 0>) :66 2x 100.0% 100.0% boost::json::error boost::json::detail::try_reserve<std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::vector<int, std::allocator<int> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::vector<int, std::allocator<int> > > > > >(std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::vector<int, std::allocator<int> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::vector<int, std::allocator<int> > > > >&, unsigned long, std::integral_constant<int, 0>) :66 2x 100.0% 100.0% boost::json::error boost::json::detail::try_reserve<std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::vector<std::pair<int, int>, std::allocator<std::pair<int, int> > >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::vector<std::pair<int, int>, std::allocator<std::pair<int, int> > > > > > >(std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::vector<std::pair<int, int>, std::allocator<std::pair<int, int> > >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::vector<std::pair<int, int>, std::allocator<std::pair<int, int> > > > > >&, unsigned long, std::integral_constant<int, 0>) :66 3x 100.0% 100.0% boost::json::error boost::json::detail::try_reserve<std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, value_to_test_ns::T2, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, value_to_test_ns::T2> > > >(std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, value_to_test_ns::T2, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, value_to_test_ns::T2> > >&, unsigned long, std::integral_constant<int, 0>) :66 12x 100.0% 100.0% boost::json::error boost::json::detail::try_reserve<std::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, int> > > >(std::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, int> > >&, unsigned long, std::integral_constant<int, 0>) :66 6x 100.0% 100.0% boost::system::result<boost::json::object, boost::system::error_code> boost::json::detail::value_to_impl<boost::json::detail::no_context>(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)15>, boost::json::try_value_to_tag<boost::json::object>, boost::json::value const&, boost::json::detail::no_context const&) :98 4x 100.0% 100.0% boost::system::result<boost::json::object, boost::system::error_code> boost::json::detail::value_to_impl<std::tuple<boost::json::detail::no_context, value_to_test_ns::custom_context> >(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)15>, boost::json::try_value_to_tag<boost::json::object>, boost::json::value const&, std::tuple<boost::json::detail::no_context, value_to_test_ns::custom_context> const&) :98 2x 100.0% 100.0% boost::system::result<boost::json::object, boost::system::error_code> boost::json::detail::value_to_impl<std::tuple<std::tuple<value_to_test_ns::custom_context> > >(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)15>, boost::json::try_value_to_tag<boost::json::object>, boost::json::value const&, std::tuple<std::tuple<value_to_test_ns::custom_context> > const&) :98 2x 100.0% 100.0% boost::system::result<boost::json::object, boost::system::error_code> boost::json::detail::value_to_impl<std::tuple<value_to_test_ns::custom_context> >(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)15>, boost::json::try_value_to_tag<boost::json::object>, boost::json::value const&, std::tuple<value_to_test_ns::custom_context> const&) :98 2x 100.0% 100.0% boost::system::result<boost::json::object, boost::system::error_code> boost::json::detail::value_to_impl<value_to_test_ns::custom_context>(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)15>, boost::json::try_value_to_tag<boost::json::object>, boost::json::value const&, value_to_test_ns::custom_context const&) :98 2x 100.0% 100.0% boost::system::result<boost::json::array, boost::system::error_code> boost::json::detail::value_to_impl<boost::json::detail::no_context>(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)16>, boost::json::try_value_to_tag<boost::json::array>, boost::json::value const&, boost::json::detail::no_context const&) :115 4x 100.0% 100.0% boost::system::result<boost::json::array, boost::system::error_code> boost::json::detail::value_to_impl<std::tuple<boost::json::detail::no_context, value_to_test_ns::custom_context> >(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)16>, boost::json::try_value_to_tag<boost::json::array>, boost::json::value const&, std::tuple<boost::json::detail::no_context, value_to_test_ns::custom_context> const&) :115 2x 100.0% 100.0% boost::system::result<boost::json::array, boost::system::error_code> boost::json::detail::value_to_impl<std::tuple<std::tuple<value_to_test_ns::custom_context> > >(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)16>, boost::json::try_value_to_tag<boost::json::array>, boost::json::value const&, std::tuple<std::tuple<value_to_test_ns::custom_context> > const&) :115 2x 100.0% 100.0% boost::system::result<boost::json::array, boost::system::error_code> boost::json::detail::value_to_impl<std::tuple<value_to_test_ns::custom_context> >(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)16>, boost::json::try_value_to_tag<boost::json::array>, boost::json::value const&, std::tuple<value_to_test_ns::custom_context> const&) :115 2x 100.0% 100.0% boost::system::result<boost::json::array, boost::system::error_code> boost::json::detail::value_to_impl<value_to_test_ns::custom_context>(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)16>, boost::json::try_value_to_tag<boost::json::array>, boost::json::value const&, value_to_test_ns::custom_context const&) :115 2x 100.0% 100.0% boost::system::result<boost::json::string, boost::system::error_code> boost::json::detail::value_to_impl<boost::json::detail::no_context>(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)17>, boost::json::try_value_to_tag<boost::json::string>, boost::json::value const&, boost::json::detail::no_context const&) :132 4x 100.0% 100.0% boost::system::result<boost::json::string, boost::system::error_code> boost::json::detail::value_to_impl<std::tuple<boost::json::detail::no_context, value_to_test_ns::custom_context> >(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)17>, boost::json::try_value_to_tag<boost::json::string>, boost::json::value const&, std::tuple<boost::json::detail::no_context, value_to_test_ns::custom_context> const&) :132 2x 100.0% 100.0% boost::system::result<boost::json::string, boost::system::error_code> boost::json::detail::value_to_impl<std::tuple<std::tuple<value_to_test_ns::custom_context> > >(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)17>, boost::json::try_value_to_tag<boost::json::string>, boost::json::value const&, std::tuple<std::tuple<value_to_test_ns::custom_context> > const&) :132 2x 100.0% 100.0% boost::system::result<boost::json::string, boost::system::error_code> boost::json::detail::value_to_impl<std::tuple<value_to_test_ns::custom_context> >(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)17>, boost::json::try_value_to_tag<boost::json::string>, boost::json::value const&, std::tuple<value_to_test_ns::custom_context> const&) :132 2x 100.0% 100.0% boost::system::result<boost::json::string, boost::system::error_code> boost::json::detail::value_to_impl<value_to_test_ns::custom_context>(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)17>, boost::json::try_value_to_tag<boost::json::string>, boost::json::value const&, value_to_test_ns::custom_context const&) :132 2x 100.0% 100.0% boost::system::result<bool, boost::system::error_code> boost::json::detail::value_to_impl<boost::json::detail::no_context>(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)1>, boost::json::try_value_to_tag<bool>, boost::json::value const&, boost::json::detail::no_context const&) :149 21x 100.0% 100.0% boost::system::result<bool, boost::system::error_code> boost::json::detail::value_to_impl<std::tuple<boost::json::detail::no_context, value_to_test_ns::custom_context> >(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)1>, boost::json::try_value_to_tag<bool>, boost::json::value const&, std::tuple<boost::json::detail::no_context, value_to_test_ns::custom_context> const&) :149 7x 100.0% 100.0% boost::system::result<bool, boost::system::error_code> boost::json::detail::value_to_impl<std::tuple<std::tuple<value_to_test_ns::custom_context> > >(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)1>, boost::json::try_value_to_tag<bool>, boost::json::value const&, std::tuple<std::tuple<value_to_test_ns::custom_context> > const&) :149 7x 100.0% 100.0% boost::system::result<bool, boost::system::error_code> boost::json::detail::value_to_impl<std::tuple<value_to_test_ns::custom_context> >(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)1>, boost::json::try_value_to_tag<bool>, boost::json::value const&, std::tuple<value_to_test_ns::custom_context> const&) :149 7x 100.0% 100.0% boost::system::result<bool, boost::system::error_code> boost::json::detail::value_to_impl<value_to_test_ns::custom_context>(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)1>, boost::json::try_value_to_tag<bool>, boost::json::value const&, value_to_test_ns::custom_context const&) :149 7x 100.0% 100.0% boost::system::result<char, boost::system::error_code> boost::json::detail::value_to_impl<std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)2>, char, boost::json::detail::no_context>(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)2>, boost::json::try_value_to_tag<char>, boost::json::value const&, boost::json::detail::no_context const&, std::enable_if<(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)2>::value==((boost::json::conversion_category)2))||(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)2>::value==((boost::json::conversion_category)3)), void>::type*) :162 1x 83.3% 86.0% boost::system::result<double, boost::system::error_code> boost::json::detail::value_to_impl<std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)3>, double, boost::json::detail::no_context>(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)3>, boost::json::try_value_to_tag<double>, boost::json::value const&, boost::json::detail::no_context const&, std::enable_if<(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)3>::value==((boost::json::conversion_category)2))||(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)3>::value==((boost::json::conversion_category)3)), void>::type*) :162 7x 100.0% 100.0% boost::system::result<double, boost::system::error_code> boost::json::detail::value_to_impl<std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)3>, double, std::tuple<boost::json::detail::no_context, value_to_test_ns::custom_context> >(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)3>, boost::json::try_value_to_tag<double>, boost::json::value const&, std::tuple<boost::json::detail::no_context, value_to_test_ns::custom_context> const&, std::enable_if<(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)3>::value==((boost::json::conversion_category)2))||(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)3>::value==((boost::json::conversion_category)3)), void>::type*) :162 2x 100.0% 100.0% boost::system::result<double, boost::system::error_code> boost::json::detail::value_to_impl<std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)3>, double, std::tuple<std::tuple<value_to_test_ns::custom_context> > >(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)3>, boost::json::try_value_to_tag<double>, boost::json::value const&, std::tuple<std::tuple<value_to_test_ns::custom_context> > const&, std::enable_if<(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)3>::value==((boost::json::conversion_category)2))||(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)3>::value==((boost::json::conversion_category)3)), void>::type*) :162 2x 100.0% 100.0% boost::system::result<double, boost::system::error_code> boost::json::detail::value_to_impl<std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)3>, double, std::tuple<value_to_test_ns::custom_context> >(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)3>, boost::json::try_value_to_tag<double>, boost::json::value const&, std::tuple<value_to_test_ns::custom_context> const&, std::enable_if<(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)3>::value==((boost::json::conversion_category)2))||(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)3>::value==((boost::json::conversion_category)3)), void>::type*) :162 2x 100.0% 100.0% boost::system::result<double, boost::system::error_code> boost::json::detail::value_to_impl<std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)3>, double, value_to_test_ns::custom_context>(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)3>, boost::json::try_value_to_tag<double>, boost::json::value const&, value_to_test_ns::custom_context const&, std::enable_if<(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)3>::value==((boost::json::conversion_category)2))||(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)3>::value==((boost::json::conversion_category)3)), void>::type*) :162 2x 100.0% 100.0% boost::system::result<float, boost::system::error_code> boost::json::detail::value_to_impl<std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)3>, float, boost::json::detail::no_context>(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)3>, boost::json::try_value_to_tag<float>, boost::json::value const&, boost::json::detail::no_context const&, std::enable_if<(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)3>::value==((boost::json::conversion_category)2))||(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)3>::value==((boost::json::conversion_category)3)), void>::type*) :162 8x 83.3% 86.0% boost::system::result<float, boost::system::error_code> boost::json::detail::value_to_impl<std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)3>, float, std::tuple<boost::json::detail::no_context, value_to_test_ns::custom_context> >(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)3>, boost::json::try_value_to_tag<float>, boost::json::value const&, std::tuple<boost::json::detail::no_context, value_to_test_ns::custom_context> const&, std::enable_if<(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)3>::value==((boost::json::conversion_category)2))||(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)3>::value==((boost::json::conversion_category)3)), void>::type*) :162 1x 83.3% 86.0% boost::system::result<float, boost::system::error_code> boost::json::detail::value_to_impl<std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)3>, float, std::tuple<std::tuple<value_to_test_ns::custom_context> > >(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)3>, boost::json::try_value_to_tag<float>, boost::json::value const&, std::tuple<std::tuple<value_to_test_ns::custom_context> > const&, std::enable_if<(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)3>::value==((boost::json::conversion_category)2))||(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)3>::value==((boost::json::conversion_category)3)), void>::type*) :162 1x 83.3% 86.0% boost::system::result<float, boost::system::error_code> boost::json::detail::value_to_impl<std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)3>, float, std::tuple<value_to_test_ns::custom_context> >(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)3>, boost::json::try_value_to_tag<float>, boost::json::value const&, std::tuple<value_to_test_ns::custom_context> const&, std::enable_if<(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)3>::value==((boost::json::conversion_category)2))||(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)3>::value==((boost::json::conversion_category)3)), void>::type*) :162 1x 83.3% 86.0% boost::system::result<float, boost::system::error_code> boost::json::detail::value_to_impl<std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)3>, float, value_to_test_ns::custom_context>(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)3>, boost::json::try_value_to_tag<float>, boost::json::value const&, value_to_test_ns::custom_context const&, std::enable_if<(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)3>::value==((boost::json::conversion_category)2))||(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)3>::value==((boost::json::conversion_category)3)), void>::type*) :162 1x 83.3% 86.0% boost::system::result<int, boost::system::error_code> boost::json::detail::value_to_impl<std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)2>, int, boost::json::detail::no_context>(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)2>, boost::json::try_value_to_tag<int>, boost::json::value const&, boost::json::detail::no_context const&, std::enable_if<(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)2>::value==((boost::json::conversion_category)2))||(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)2>::value==((boost::json::conversion_category)3)), void>::type*) :162 1180x 100.0% 100.0% boost::system::result<int, boost::system::error_code> boost::json::detail::value_to_impl<std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)2>, int, std::tuple<boost::json::detail::no_context, value_to_test_ns::custom_context> >(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)2>, boost::json::try_value_to_tag<int>, boost::json::value const&, std::tuple<boost::json::detail::no_context, value_to_test_ns::custom_context> const&, std::enable_if<(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)2>::value==((boost::json::conversion_category)2))||(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)2>::value==((boost::json::conversion_category)3)), void>::type*) :162 530x 100.0% 100.0% boost::system::result<int, boost::system::error_code> boost::json::detail::value_to_impl<std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)2>, int, std::tuple<std::tuple<value_to_test_ns::custom_context> > >(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)2>, boost::json::try_value_to_tag<int>, boost::json::value const&, std::tuple<std::tuple<value_to_test_ns::custom_context> > const&, std::enable_if<(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)2>::value==((boost::json::conversion_category)2))||(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)2>::value==((boost::json::conversion_category)3)), void>::type*) :162 530x 100.0% 100.0% boost::system::result<int, boost::system::error_code> boost::json::detail::value_to_impl<std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)2>, int, std::tuple<value_to_test_ns::custom_context> >(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)2>, boost::json::try_value_to_tag<int>, boost::json::value const&, std::tuple<value_to_test_ns::custom_context> const&, std::enable_if<(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)2>::value==((boost::json::conversion_category)2))||(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)2>::value==((boost::json::conversion_category)3)), void>::type*) :162 530x 100.0% 100.0% boost::system::result<int, boost::system::error_code> boost::json::detail::value_to_impl<std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)2>, int, value_to_test_ns::custom_context>(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)2>, boost::json::try_value_to_tag<int>, boost::json::value const&, value_to_test_ns::custom_context const&, std::enable_if<(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)2>::value==((boost::json::conversion_category)2))||(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)2>::value==((boost::json::conversion_category)3)), void>::type*) :162 530x 100.0% 100.0% boost::system::result<long long, boost::system::error_code> boost::json::detail::value_to_impl<std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)2>, long long, boost::json::detail::no_context>(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)2>, boost::json::try_value_to_tag<long long>, boost::json::value const&, boost::json::detail::no_context const&, std::enable_if<(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)2>::value==((boost::json::conversion_category)2))||(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)2>::value==((boost::json::conversion_category)3)), void>::type*) :162 3x 83.3% 86.0% boost::system::result<long long, boost::system::error_code> boost::json::detail::value_to_impl<std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)2>, long long, std::tuple<boost::json::detail::no_context, value_to_test_ns::custom_context> >(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)2>, boost::json::try_value_to_tag<long long>, boost::json::value const&, std::tuple<boost::json::detail::no_context, value_to_test_ns::custom_context> const&, std::enable_if<(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)2>::value==((boost::json::conversion_category)2))||(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)2>::value==((boost::json::conversion_category)3)), void>::type*) :162 1x 83.3% 86.0% boost::system::result<long long, boost::system::error_code> boost::json::detail::value_to_impl<std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)2>, long long, std::tuple<std::tuple<value_to_test_ns::custom_context> > >(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)2>, boost::json::try_value_to_tag<long long>, boost::json::value const&, std::tuple<std::tuple<value_to_test_ns::custom_context> > const&, std::enable_if<(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)2>::value==((boost::json::conversion_category)2))||(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)2>::value==((boost::json::conversion_category)3)), void>::type*) :162 1x 83.3% 86.0% boost::system::result<long long, boost::system::error_code> boost::json::detail::value_to_impl<std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)2>, long long, std::tuple<value_to_test_ns::custom_context> >(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)2>, boost::json::try_value_to_tag<long long>, boost::json::value const&, std::tuple<value_to_test_ns::custom_context> const&, std::enable_if<(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)2>::value==((boost::json::conversion_category)2))||(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)2>::value==((boost::json::conversion_category)3)), void>::type*) :162 1x 83.3% 86.0% boost::system::result<long long, boost::system::error_code> boost::json::detail::value_to_impl<std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)2>, long long, value_to_test_ns::custom_context>(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)2>, boost::json::try_value_to_tag<long long>, boost::json::value const&, value_to_test_ns::custom_context const&, std::enable_if<(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)2>::value==((boost::json::conversion_category)2))||(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)2>::value==((boost::json::conversion_category)3)), void>::type*) :162 1x 83.3% 86.0% boost::system::result<long, boost::system::error_code> boost::json::detail::value_to_impl<std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)2>, long, boost::json::detail::no_context>(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)2>, boost::json::try_value_to_tag<long>, boost::json::value const&, boost::json::detail::no_context const&, std::enable_if<(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)2>::value==((boost::json::conversion_category)2))||(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)2>::value==((boost::json::conversion_category)3)), void>::type*) :162 3x 83.3% 86.0% boost::system::result<long, boost::system::error_code> boost::json::detail::value_to_impl<std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)2>, long, std::tuple<boost::json::detail::no_context, value_to_test_ns::custom_context> >(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)2>, boost::json::try_value_to_tag<long>, boost::json::value const&, std::tuple<boost::json::detail::no_context, value_to_test_ns::custom_context> const&, std::enable_if<(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)2>::value==((boost::json::conversion_category)2))||(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)2>::value==((boost::json::conversion_category)3)), void>::type*) :162 1x 83.3% 86.0% boost::system::result<long, boost::system::error_code> boost::json::detail::value_to_impl<std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)2>, long, std::tuple<std::tuple<value_to_test_ns::custom_context> > >(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)2>, boost::json::try_value_to_tag<long>, boost::json::value const&, std::tuple<std::tuple<value_to_test_ns::custom_context> > const&, std::enable_if<(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)2>::value==((boost::json::conversion_category)2))||(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)2>::value==((boost::json::conversion_category)3)), void>::type*) :162 1x 83.3% 86.0% boost::system::result<long, boost::system::error_code> boost::json::detail::value_to_impl<std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)2>, long, std::tuple<value_to_test_ns::custom_context> >(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)2>, boost::json::try_value_to_tag<long>, boost::json::value const&, std::tuple<value_to_test_ns::custom_context> const&, std::enable_if<(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)2>::value==((boost::json::conversion_category)2))||(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)2>::value==((boost::json::conversion_category)3)), void>::type*) :162 1x 83.3% 86.0% boost::system::result<long, boost::system::error_code> boost::json::detail::value_to_impl<std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)2>, long, value_to_test_ns::custom_context>(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)2>, boost::json::try_value_to_tag<long>, boost::json::value const&, value_to_test_ns::custom_context const&, std::enable_if<(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)2>::value==((boost::json::conversion_category)2))||(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)2>::value==((boost::json::conversion_category)3)), void>::type*) :162 1x 83.3% 86.0% boost::system::result<short, boost::system::error_code> boost::json::detail::value_to_impl<std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)2>, short, boost::json::detail::no_context>(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)2>, boost::json::try_value_to_tag<short>, boost::json::value const&, boost::json::detail::no_context const&, std::enable_if<(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)2>::value==((boost::json::conversion_category)2))||(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)2>::value==((boost::json::conversion_category)3)), void>::type*) :162 3x 83.3% 86.0% boost::system::result<short, boost::system::error_code> boost::json::detail::value_to_impl<std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)2>, short, std::tuple<boost::json::detail::no_context, value_to_test_ns::custom_context> >(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)2>, boost::json::try_value_to_tag<short>, boost::json::value const&, std::tuple<boost::json::detail::no_context, value_to_test_ns::custom_context> const&, std::enable_if<(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)2>::value==((boost::json::conversion_category)2))||(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)2>::value==((boost::json::conversion_category)3)), void>::type*) :162 1x 83.3% 86.0% boost::system::result<short, boost::system::error_code> boost::json::detail::value_to_impl<std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)2>, short, std::tuple<std::tuple<value_to_test_ns::custom_context> > >(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)2>, boost::json::try_value_to_tag<short>, boost::json::value const&, std::tuple<std::tuple<value_to_test_ns::custom_context> > const&, std::enable_if<(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)2>::value==((boost::json::conversion_category)2))||(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)2>::value==((boost::json::conversion_category)3)), void>::type*) :162 1x 83.3% 86.0% boost::system::result<short, boost::system::error_code> boost::json::detail::value_to_impl<std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)2>, short, std::tuple<value_to_test_ns::custom_context> >(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)2>, boost::json::try_value_to_tag<short>, boost::json::value const&, std::tuple<value_to_test_ns::custom_context> const&, std::enable_if<(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)2>::value==((boost::json::conversion_category)2))||(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)2>::value==((boost::json::conversion_category)3)), void>::type*) :162 1x 83.3% 86.0% boost::system::result<short, boost::system::error_code> boost::json::detail::value_to_impl<std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)2>, short, value_to_test_ns::custom_context>(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)2>, boost::json::try_value_to_tag<short>, boost::json::value const&, value_to_test_ns::custom_context const&, std::enable_if<(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)2>::value==((boost::json::conversion_category)2))||(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)2>::value==((boost::json::conversion_category)3)), void>::type*) :162 1x 83.3% 86.0% boost::system::result<signed char, boost::system::error_code> boost::json::detail::value_to_impl<std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)2>, signed char, boost::json::detail::no_context>(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)2>, boost::json::try_value_to_tag<signed char>, boost::json::value const&, boost::json::detail::no_context const&, std::enable_if<(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)2>::value==((boost::json::conversion_category)2))||(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)2>::value==((boost::json::conversion_category)3)), void>::type*) :162 1x 83.3% 86.0% boost::system::result<unsigned char, boost::system::error_code> boost::json::detail::value_to_impl<std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)2>, unsigned char, boost::json::detail::no_context>(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)2>, boost::json::try_value_to_tag<unsigned char>, boost::json::value const&, boost::json::detail::no_context const&, std::enable_if<(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)2>::value==((boost::json::conversion_category)2))||(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)2>::value==((boost::json::conversion_category)3)), void>::type*) :162 13x 83.3% 86.0% boost::system::result<unsigned int, boost::system::error_code> boost::json::detail::value_to_impl<std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)2>, unsigned int, boost::json::detail::no_context>(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)2>, boost::json::try_value_to_tag<unsigned int>, boost::json::value const&, boost::json::detail::no_context const&, std::enable_if<(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)2>::value==((boost::json::conversion_category)2))||(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)2>::value==((boost::json::conversion_category)3)), void>::type*) :162 3x 83.3% 86.0% boost::system::result<unsigned int, boost::system::error_code> boost::json::detail::value_to_impl<std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)2>, unsigned int, std::tuple<boost::json::detail::no_context, value_to_test_ns::custom_context> >(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)2>, boost::json::try_value_to_tag<unsigned int>, boost::json::value const&, std::tuple<boost::json::detail::no_context, value_to_test_ns::custom_context> const&, std::enable_if<(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)2>::value==((boost::json::conversion_category)2))||(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)2>::value==((boost::json::conversion_category)3)), void>::type*) :162 1x 83.3% 86.0% boost::system::result<unsigned int, boost::system::error_code> boost::json::detail::value_to_impl<std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)2>, unsigned int, std::tuple<std::tuple<value_to_test_ns::custom_context> > >(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)2>, boost::json::try_value_to_tag<unsigned int>, boost::json::value const&, std::tuple<std::tuple<value_to_test_ns::custom_context> > const&, std::enable_if<(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)2>::value==((boost::json::conversion_category)2))||(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)2>::value==((boost::json::conversion_category)3)), void>::type*) :162 1x 83.3% 86.0% boost::system::result<unsigned int, boost::system::error_code> boost::json::detail::value_to_impl<std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)2>, unsigned int, std::tuple<value_to_test_ns::custom_context> >(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)2>, boost::json::try_value_to_tag<unsigned int>, boost::json::value const&, std::tuple<value_to_test_ns::custom_context> const&, std::enable_if<(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)2>::value==((boost::json::conversion_category)2))||(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)2>::value==((boost::json::conversion_category)3)), void>::type*) :162 1x 83.3% 86.0% boost::system::result<unsigned int, boost::system::error_code> boost::json::detail::value_to_impl<std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)2>, unsigned int, value_to_test_ns::custom_context>(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)2>, boost::json::try_value_to_tag<unsigned int>, boost::json::value const&, value_to_test_ns::custom_context const&, std::enable_if<(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)2>::value==((boost::json::conversion_category)2))||(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)2>::value==((boost::json::conversion_category)3)), void>::type*) :162 1x 83.3% 86.0% boost::system::result<unsigned long long, boost::system::error_code> boost::json::detail::value_to_impl<std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)2>, unsigned long long, boost::json::detail::no_context>(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)2>, boost::json::try_value_to_tag<unsigned long long>, boost::json::value const&, boost::json::detail::no_context const&, std::enable_if<(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)2>::value==((boost::json::conversion_category)2))||(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)2>::value==((boost::json::conversion_category)3)), void>::type*) :162 3x 83.3% 86.0% boost::system::result<unsigned long long, boost::system::error_code> boost::json::detail::value_to_impl<std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)2>, unsigned long long, std::tuple<boost::json::detail::no_context, value_to_test_ns::custom_context> >(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)2>, boost::json::try_value_to_tag<unsigned long long>, boost::json::value const&, std::tuple<boost::json::detail::no_context, value_to_test_ns::custom_context> const&, std::enable_if<(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)2>::value==((boost::json::conversion_category)2))||(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)2>::value==((boost::json::conversion_category)3)), void>::type*) :162 1x 83.3% 86.0% boost::system::result<unsigned long long, boost::system::error_code> boost::json::detail::value_to_impl<std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)2>, unsigned long long, std::tuple<std::tuple<value_to_test_ns::custom_context> > >(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)2>, boost::json::try_value_to_tag<unsigned long long>, boost::json::value const&, std::tuple<std::tuple<value_to_test_ns::custom_context> > const&, std::enable_if<(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)2>::value==((boost::json::conversion_category)2))||(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)2>::value==((boost::json::conversion_category)3)), void>::type*) :162 1x 83.3% 86.0% boost::system::result<unsigned long long, boost::system::error_code> boost::json::detail::value_to_impl<std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)2>, unsigned long long, std::tuple<value_to_test_ns::custom_context> >(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)2>, boost::json::try_value_to_tag<unsigned long long>, boost::json::value const&, std::tuple<value_to_test_ns::custom_context> const&, std::enable_if<(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)2>::value==((boost::json::conversion_category)2))||(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)2>::value==((boost::json::conversion_category)3)), void>::type*) :162 1x 83.3% 86.0% boost::system::result<unsigned long long, boost::system::error_code> boost::json::detail::value_to_impl<std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)2>, unsigned long long, value_to_test_ns::custom_context>(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)2>, boost::json::try_value_to_tag<unsigned long long>, boost::json::value const&, value_to_test_ns::custom_context const&, std::enable_if<(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)2>::value==((boost::json::conversion_category)2))||(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)2>::value==((boost::json::conversion_category)3)), void>::type*) :162 1x 83.3% 86.0% boost::system::result<unsigned long, boost::system::error_code> boost::json::detail::value_to_impl<std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)2>, unsigned long, boost::json::detail::no_context>(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)2>, boost::json::try_value_to_tag<unsigned long>, boost::json::value const&, boost::json::detail::no_context const&, std::enable_if<(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)2>::value==((boost::json::conversion_category)2))||(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)2>::value==((boost::json::conversion_category)3)), void>::type*) :162 8x 83.3% 86.0% boost::system::result<unsigned long, boost::system::error_code> boost::json::detail::value_to_impl<std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)2>, unsigned long, std::tuple<boost::json::detail::no_context, value_to_test_ns::custom_context> >(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)2>, boost::json::try_value_to_tag<unsigned long>, boost::json::value const&, std::tuple<boost::json::detail::no_context, value_to_test_ns::custom_context> const&, std::enable_if<(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)2>::value==((boost::json::conversion_category)2))||(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)2>::value==((boost::json::conversion_category)3)), void>::type*) :162 1x 83.3% 86.0% boost::system::result<unsigned long, boost::system::error_code> boost::json::detail::value_to_impl<std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)2>, unsigned long, std::tuple<std::tuple<value_to_test_ns::custom_context> > >(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)2>, boost::json::try_value_to_tag<unsigned long>, boost::json::value const&, std::tuple<std::tuple<value_to_test_ns::custom_context> > const&, std::enable_if<(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)2>::value==((boost::json::conversion_category)2))||(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)2>::value==((boost::json::conversion_category)3)), void>::type*) :162 1x 83.3% 86.0% boost::system::result<unsigned long, boost::system::error_code> boost::json::detail::value_to_impl<std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)2>, unsigned long, std::tuple<value_to_test_ns::custom_context> >(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)2>, boost::json::try_value_to_tag<unsigned long>, boost::json::value const&, std::tuple<value_to_test_ns::custom_context> const&, std::enable_if<(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)2>::value==((boost::json::conversion_category)2))||(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)2>::value==((boost::json::conversion_category)3)), void>::type*) :162 1x 83.3% 86.0% boost::system::result<unsigned long, boost::system::error_code> boost::json::detail::value_to_impl<std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)2>, unsigned long, value_to_test_ns::custom_context>(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)2>, boost::json::try_value_to_tag<unsigned long>, boost::json::value const&, value_to_test_ns::custom_context const&, std::enable_if<(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)2>::value==((boost::json::conversion_category)2))||(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)2>::value==((boost::json::conversion_category)3)), void>::type*) :162 1x 83.3% 86.0% boost::system::result<unsigned short, boost::system::error_code> boost::json::detail::value_to_impl<std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)2>, unsigned short, boost::json::detail::no_context>(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)2>, boost::json::try_value_to_tag<unsigned short>, boost::json::value const&, boost::json::detail::no_context const&, std::enable_if<(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)2>::value==((boost::json::conversion_category)2))||(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)2>::value==((boost::json::conversion_category)3)), void>::type*) :162 3x 83.3% 86.0% boost::system::result<unsigned short, boost::system::error_code> boost::json::detail::value_to_impl<std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)2>, unsigned short, std::tuple<boost::json::detail::no_context, value_to_test_ns::custom_context> >(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)2>, boost::json::try_value_to_tag<unsigned short>, boost::json::value const&, std::tuple<boost::json::detail::no_context, value_to_test_ns::custom_context> const&, std::enable_if<(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)2>::value==((boost::json::conversion_category)2))||(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)2>::value==((boost::json::conversion_category)3)), void>::type*) :162 1x 83.3% 86.0% boost::system::result<unsigned short, boost::system::error_code> boost::json::detail::value_to_impl<std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)2>, unsigned short, std::tuple<std::tuple<value_to_test_ns::custom_context> > >(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)2>, boost::json::try_value_to_tag<unsigned short>, boost::json::value const&, std::tuple<std::tuple<value_to_test_ns::custom_context> > const&, std::enable_if<(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)2>::value==((boost::json::conversion_category)2))||(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)2>::value==((boost::json::conversion_category)3)), void>::type*) :162 1x 83.3% 86.0% boost::system::result<unsigned short, boost::system::error_code> boost::json::detail::value_to_impl<std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)2>, unsigned short, std::tuple<value_to_test_ns::custom_context> >(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)2>, boost::json::try_value_to_tag<unsigned short>, boost::json::value const&, std::tuple<value_to_test_ns::custom_context> const&, std::enable_if<(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)2>::value==((boost::json::conversion_category)2))||(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)2>::value==((boost::json::conversion_category)3)), void>::type*) :162 1x 83.3% 86.0% boost::system::result<unsigned short, boost::system::error_code> boost::json::detail::value_to_impl<std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)2>, unsigned short, value_to_test_ns::custom_context>(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)2>, boost::json::try_value_to_tag<unsigned short>, boost::json::value const&, value_to_test_ns::custom_context const&, std::enable_if<(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)2>::value==((boost::json::conversion_category)2))||(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)2>::value==((boost::json::conversion_category)3)), void>::type*) :162 1x 83.3% 86.0% boost::system::result<boost::variant2::monostate, boost::system::error_code> boost::json::detail::value_to_impl<boost::variant2::monostate, boost::json::detail::no_context>(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)4>, boost::json::try_value_to_tag<boost::variant2::monostate>, boost::json::value const&, boost::json::detail::no_context const&) :182 8x 100.0% 100.0% boost::system::result<boost::variant2::monostate, boost::system::error_code> boost::json::detail::value_to_impl<boost::variant2::monostate, std::tuple<boost::json::detail::no_context, value_to_test_ns::custom_context> >(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)4>, boost::json::try_value_to_tag<boost::variant2::monostate>, boost::json::value const&, std::tuple<boost::json::detail::no_context, value_to_test_ns::custom_context> const&) :182 2x 100.0% 100.0% boost::system::result<boost::variant2::monostate, boost::system::error_code> boost::json::detail::value_to_impl<boost::variant2::monostate, std::tuple<std::tuple<value_to_test_ns::custom_context> > >(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)4>, boost::json::try_value_to_tag<boost::variant2::monostate>, boost::json::value const&, std::tuple<std::tuple<value_to_test_ns::custom_context> > const&) :182 2x 100.0% 100.0% boost::system::result<boost::variant2::monostate, boost::system::error_code> boost::json::detail::value_to_impl<boost::variant2::monostate, std::tuple<value_to_test_ns::custom_context> >(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)4>, boost::json::try_value_to_tag<boost::variant2::monostate>, boost::json::value const&, std::tuple<value_to_test_ns::custom_context> const&) :182 2x 100.0% 100.0% boost::system::result<boost::variant2::monostate, boost::system::error_code> boost::json::detail::value_to_impl<boost::variant2::monostate, value_to_test_ns::custom_context>(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)4>, boost::json::try_value_to_tag<boost::variant2::monostate>, boost::json::value const&, value_to_test_ns::custom_context const&) :182 2x 100.0% 100.0% boost::system::result<decltype(nullptr), boost::system::error_code> boost::json::detail::value_to_impl<decltype(nullptr), boost::json::detail::no_context>(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)4>, boost::json::try_value_to_tag<decltype(nullptr)>, boost::json::value const&, boost::json::detail::no_context const&) :182 10x 100.0% 100.0% boost::system::result<decltype(nullptr), boost::system::error_code> boost::json::detail::value_to_impl<decltype(nullptr), std::tuple<boost::json::detail::no_context, value_to_test_ns::custom_context> >(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)4>, boost::json::try_value_to_tag<decltype(nullptr)>, boost::json::value const&, std::tuple<boost::json::detail::no_context, value_to_test_ns::custom_context> const&) :182 3x 100.0% 100.0% boost::system::result<decltype(nullptr), boost::system::error_code> boost::json::detail::value_to_impl<decltype(nullptr), std::tuple<std::tuple<value_to_test_ns::custom_context> > >(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)4>, boost::json::try_value_to_tag<decltype(nullptr)>, boost::json::value const&, std::tuple<std::tuple<value_to_test_ns::custom_context> > const&) :182 3x 100.0% 100.0% boost::system::result<decltype(nullptr), boost::system::error_code> boost::json::detail::value_to_impl<decltype(nullptr), std::tuple<value_to_test_ns::custom_context> >(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)4>, boost::json::try_value_to_tag<decltype(nullptr)>, boost::json::value const&, std::tuple<value_to_test_ns::custom_context> const&) :182 3x 100.0% 100.0% boost::system::result<decltype(nullptr), boost::system::error_code> boost::json::detail::value_to_impl<decltype(nullptr), value_to_test_ns::custom_context>(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)4>, boost::json::try_value_to_tag<decltype(nullptr)>, boost::json::value const&, value_to_test_ns::custom_context const&) :182 3x 100.0% 100.0% boost::system::result<value_to_test_ns::T1, boost::system::error_code> boost::json::detail::value_to_impl<value_to_test_ns::T1, boost::json::detail::no_context>(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)4>, boost::json::try_value_to_tag<value_to_test_ns::T1>, boost::json::value const&, boost::json::detail::no_context const&) :182 10x 100.0% 100.0% boost::system::result<value_to_test_ns::T1, boost::system::error_code> boost::json::detail::value_to_impl<value_to_test_ns::T1, std::tuple<boost::json::detail::no_context, value_to_test_ns::custom_context> >(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)4>, boost::json::try_value_to_tag<value_to_test_ns::T1>, boost::json::value const&, std::tuple<boost::json::detail::no_context, value_to_test_ns::custom_context> const&) :182 2x 100.0% 100.0% boost::system::result<value_to_test_ns::T1, boost::system::error_code> boost::json::detail::value_to_impl<value_to_test_ns::T1, std::tuple<std::tuple<value_to_test_ns::custom_context> > >(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)4>, boost::json::try_value_to_tag<value_to_test_ns::T1>, boost::json::value const&, std::tuple<std::tuple<value_to_test_ns::custom_context> > const&) :182 2x 100.0% 100.0% boost::system::result<value_to_test_ns::T1, boost::system::error_code> boost::json::detail::value_to_impl<value_to_test_ns::T1, std::tuple<value_to_test_ns::custom_context> >(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)4>, boost::json::try_value_to_tag<value_to_test_ns::T1>, boost::json::value const&, std::tuple<value_to_test_ns::custom_context> const&) :182 2x 100.0% 100.0% boost::system::result<value_to_test_ns::T1, boost::system::error_code> boost::json::detail::value_to_impl<value_to_test_ns::T1, value_to_test_ns::custom_context>(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)4>, boost::json::try_value_to_tag<value_to_test_ns::T1>, boost::json::value const&, value_to_test_ns::custom_context const&) :182 2x 100.0% 100.0% boost::system::result<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::system::error_code> boost::json::detail::value_to_impl<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::json::detail::no_context>(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)5>, boost::json::try_value_to_tag<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::json::value const&, boost::json::detail::no_context const&) :198 43x 100.0% 87.0% boost::system::result<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::system::error_code> boost::json::detail::value_to_impl<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::tuple<boost::json::detail::no_context, value_to_test_ns::custom_context> >(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)5>, boost::json::try_value_to_tag<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::json::value const&, std::tuple<boost::json::detail::no_context, value_to_test_ns::custom_context> const&) :198 9x 100.0% 87.0% boost::system::result<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::system::error_code> boost::json::detail::value_to_impl<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::tuple<std::tuple<value_to_test_ns::custom_context> > >(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)5>, boost::json::try_value_to_tag<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::json::value const&, std::tuple<std::tuple<value_to_test_ns::custom_context> > const&) :198 9x 100.0% 87.0% boost::system::result<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::system::error_code> boost::json::detail::value_to_impl<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::tuple<value_to_test_ns::custom_context> >(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)5>, boost::json::try_value_to_tag<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::json::value const&, std::tuple<value_to_test_ns::custom_context> const&) :198 9x 100.0% 87.0% boost::system::result<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::system::error_code> boost::json::detail::value_to_impl<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, value_to_test_ns::custom_context>(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)5>, boost::json::try_value_to_tag<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::json::value const&, value_to_test_ns::custom_context const&) :198 9x 100.0% 87.0% boost::system::result<std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, double, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, double> > >, boost::system::error_code> boost::json::detail::value_to_impl<std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, double, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, double> > >, boost::json::detail::no_context>(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)8>, boost::json::try_value_to_tag<std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, double, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, double> > > >, boost::json::value const&, boost::json::detail::no_context const&) :212 1x 68.2% 59.0% boost::system::result<std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, int> > >, boost::system::error_code> boost::json::detail::value_to_impl<std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, int> > >, boost::json::detail::no_context>(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)8>, boost::json::try_value_to_tag<std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, int> > > >, boost::json::value const&, boost::json::detail::no_context const&) :212 16x 86.4% 73.0% boost::system::result<std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, int> > >, boost::system::error_code> boost::json::detail::value_to_impl<std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, int> > >, std::tuple<boost::json::detail::no_context, value_to_test_ns::custom_context> >(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)8>, boost::json::try_value_to_tag<std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, int> > > >, boost::json::value const&, std::tuple<boost::json::detail::no_context, value_to_test_ns::custom_context> const&) :212 3x 86.4% 73.0% boost::system::result<std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, int> > >, boost::system::error_code> boost::json::detail::value_to_impl<std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, int> > >, std::tuple<std::tuple<value_to_test_ns::custom_context> > >(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)8>, boost::json::try_value_to_tag<std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, int> > > >, boost::json::value const&, std::tuple<std::tuple<value_to_test_ns::custom_context> > const&) :212 3x 86.4% 73.0% boost::system::result<std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, int> > >, boost::system::error_code> boost::json::detail::value_to_impl<std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, int> > >, std::tuple<value_to_test_ns::custom_context> >(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)8>, boost::json::try_value_to_tag<std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, int> > > >, boost::json::value const&, std::tuple<value_to_test_ns::custom_context> const&) :212 3x 86.4% 73.0% boost::system::result<std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, int> > >, boost::system::error_code> boost::json::detail::value_to_impl<std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, int> > >, value_to_test_ns::custom_context>(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)8>, boost::json::try_value_to_tag<std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, int> > > >, boost::json::value const&, value_to_test_ns::custom_context const&) :212 3x 86.4% 73.0% boost::system::result<std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, int> > >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, int> > > > > >, boost::system::error_code> boost::json::detail::value_to_impl<std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, int> > >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, int> > > > > >, boost::json::detail::no_context>(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)8>, boost::json::try_value_to_tag<std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, int> > >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, int> > > > > > >, boost::json::value const&, boost::json::detail::no_context const&) :212 2x 68.2% 59.0% boost::system::result<std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<int, bool>, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::pair<int, bool> > > >, boost::system::error_code> boost::json::detail::value_to_impl<std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<int, bool>, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::pair<int, bool> > > >, boost::json::detail::no_context>(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)8>, boost::json::try_value_to_tag<std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<int, bool>, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::pair<int, bool> > > > >, boost::json::value const&, boost::json::detail::no_context const&) :212 2x 68.2% 59.0% boost::system::result<std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::vector<int, std::allocator<int> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::vector<int, std::allocator<int> > > > >, boost::system::error_code> boost::json::detail::value_to_impl<std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::vector<int, std::allocator<int> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::vector<int, std::allocator<int> > > > >, boost::json::detail::no_context>(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)8>, boost::json::try_value_to_tag<std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::vector<int, std::allocator<int> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::vector<int, std::allocator<int> > > > > >, boost::json::value const&, boost::json::detail::no_context const&) :212 2x 68.2% 59.0% boost::system::result<std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::vector<std::pair<int, int>, std::allocator<std::pair<int, int> > >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::vector<std::pair<int, int>, std::allocator<std::pair<int, int> > > > > >, boost::system::error_code> boost::json::detail::value_to_impl<std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::vector<std::pair<int, int>, std::allocator<std::pair<int, int> > >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::vector<std::pair<int, int>, std::allocator<std::pair<int, int> > > > > >, boost::json::detail::no_context>(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)8>, boost::json::try_value_to_tag<std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::vector<std::pair<int, int>, std::allocator<std::pair<int, int> > >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::vector<std::pair<int, int>, std::allocator<std::pair<int, int> > > > > > >, boost::json::value const&, boost::json::detail::no_context const&) :212 3x 68.2% 59.0% boost::system::result<std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, value_to_test_ns::T2, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, value_to_test_ns::T2> > >, boost::system::error_code> boost::json::detail::value_to_impl<std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, value_to_test_ns::T2, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, value_to_test_ns::T2> > >, boost::json::detail::no_context>(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)8>, boost::json::try_value_to_tag<std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, value_to_test_ns::T2, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, value_to_test_ns::T2> > > >, boost::json::value const&, boost::json::detail::no_context const&) :212 6x 86.4% 73.0% boost::system::result<std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, value_to_test_ns::T2, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, value_to_test_ns::T2> > >, boost::system::error_code> boost::json::detail::value_to_impl<std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, value_to_test_ns::T2, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, value_to_test_ns::T2> > >, std::tuple<boost::json::detail::no_context, value_to_test_ns::custom_context> >(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)8>, boost::json::try_value_to_tag<std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, value_to_test_ns::T2, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, value_to_test_ns::T2> > > >, boost::json::value const&, std::tuple<boost::json::detail::no_context, value_to_test_ns::custom_context> const&) :212 3x 86.4% 73.0% boost::system::result<std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, value_to_test_ns::T2, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, value_to_test_ns::T2> > >, boost::system::error_code> boost::json::detail::value_to_impl<std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, value_to_test_ns::T2, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, value_to_test_ns::T2> > >, std::tuple<std::tuple<value_to_test_ns::custom_context> > >(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)8>, boost::json::try_value_to_tag<std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, value_to_test_ns::T2, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, value_to_test_ns::T2> > > >, boost::json::value const&, std::tuple<std::tuple<value_to_test_ns::custom_context> > const&) :212 3x 86.4% 73.0% boost::system::result<std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, value_to_test_ns::T2, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, value_to_test_ns::T2> > >, boost::system::error_code> boost::json::detail::value_to_impl<std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, value_to_test_ns::T2, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, value_to_test_ns::T2> > >, std::tuple<value_to_test_ns::custom_context> >(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)8>, boost::json::try_value_to_tag<std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, value_to_test_ns::T2, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, value_to_test_ns::T2> > > >, boost::json::value const&, std::tuple<value_to_test_ns::custom_context> const&) :212 3x 86.4% 73.0% boost::system::result<std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, value_to_test_ns::T2, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, value_to_test_ns::T2> > >, boost::system::error_code> boost::json::detail::value_to_impl<std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, value_to_test_ns::T2, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, value_to_test_ns::T2> > >, value_to_test_ns::custom_context>(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)8>, boost::json::try_value_to_tag<std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, value_to_test_ns::T2, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, value_to_test_ns::T2> > > >, boost::json::value const&, value_to_test_ns::custom_context const&) :212 3x 86.4% 73.0% boost::system::result<std::unordered_map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, int> > >, boost::system::error_code> boost::json::detail::value_to_impl<std::unordered_map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, int> > >, boost::json::detail::no_context>(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)8>, boost::json::try_value_to_tag<std::unordered_map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, int> > > >, boost::json::value const&, boost::json::detail::no_context const&) :212 2x 68.2% 59.0% boost::system::result<std::unordered_map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, int> > >, boost::system::error_code> boost::json::detail::value_to_impl<std::unordered_map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, int> > >, std::tuple<boost::json::detail::no_context, value_to_test_ns::custom_context> >(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)8>, boost::json::try_value_to_tag<std::unordered_map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, int> > > >, boost::json::value const&, std::tuple<boost::json::detail::no_context, value_to_test_ns::custom_context> const&) :212 1x 68.2% 59.0% boost::system::result<std::unordered_map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, int> > >, boost::system::error_code> boost::json::detail::value_to_impl<std::unordered_map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, int> > >, std::tuple<std::tuple<value_to_test_ns::custom_context> > >(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)8>, boost::json::try_value_to_tag<std::unordered_map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, int> > > >, boost::json::value const&, std::tuple<std::tuple<value_to_test_ns::custom_context> > const&) :212 1x 68.2% 59.0% boost::system::result<std::unordered_map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, int> > >, boost::system::error_code> boost::json::detail::value_to_impl<std::unordered_map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, int> > >, std::tuple<value_to_test_ns::custom_context> >(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)8>, boost::json::try_value_to_tag<std::unordered_map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, int> > > >, boost::json::value const&, std::tuple<value_to_test_ns::custom_context> const&) :212 1x 68.2% 59.0% boost::system::result<std::unordered_map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, int> > >, boost::system::error_code> boost::json::detail::value_to_impl<std::unordered_map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, int> > >, value_to_test_ns::custom_context>(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)8>, boost::json::try_value_to_tag<std::unordered_map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, int> > > >, boost::json::value const&, value_to_test_ns::custom_context const&) :212 1x 68.2% 59.0% boost::system::result<value_to_test_ns::T4, boost::system::error_code> boost::json::detail::value_to_impl<value_to_test_ns::T4, boost::json::detail::no_context>(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)8>, boost::json::try_value_to_tag<value_to_test_ns::T4>, boost::json::value const&, boost::json::detail::no_context const&) :212 4x 45.5% 30.0% boost::system::result<value_to_test_ns::T4, boost::system::error_code> boost::json::detail::value_to_impl<value_to_test_ns::T4, std::tuple<boost::json::detail::no_context, value_to_test_ns::custom_context> >(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)8>, boost::json::try_value_to_tag<value_to_test_ns::T4>, boost::json::value const&, std::tuple<boost::json::detail::no_context, value_to_test_ns::custom_context> const&) :212 2x 45.5% 30.0% boost::system::result<value_to_test_ns::T4, boost::system::error_code> boost::json::detail::value_to_impl<value_to_test_ns::T4, std::tuple<std::tuple<value_to_test_ns::custom_context> > >(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)8>, boost::json::try_value_to_tag<value_to_test_ns::T4>, boost::json::value const&, std::tuple<std::tuple<value_to_test_ns::custom_context> > const&) :212 2x 45.5% 30.0% boost::system::result<value_to_test_ns::T4, boost::system::error_code> boost::json::detail::value_to_impl<value_to_test_ns::T4, std::tuple<value_to_test_ns::custom_context> >(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)8>, boost::json::try_value_to_tag<value_to_test_ns::T4>, boost::json::value const&, std::tuple<value_to_test_ns::custom_context> const&) :212 2x 45.5% 30.0% boost::system::result<value_to_test_ns::T4, boost::system::error_code> boost::json::detail::value_to_impl<value_to_test_ns::T4, value_to_test_ns::custom_context>(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)8>, boost::json::try_value_to_tag<value_to_test_ns::T4>, boost::json::value const&, value_to_test_ns::custom_context const&) :212 2x 45.5% 30.0% boost::system::result<std::array<int, 4ul>, boost::system::error_code> boost::json::detail::value_to_impl<std::array<int, 4ul>, boost::json::detail::no_context>(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)9>, boost::json::try_value_to_tag<std::array<int, 4ul> >, boost::json::value const&, boost::json::detail::no_context const&) :252 10x 77.8% 61.0% boost::system::result<std::array<int, 4ul>, boost::system::error_code> boost::json::detail::value_to_impl<std::array<int, 4ul>, std::tuple<boost::json::detail::no_context, value_to_test_ns::custom_context> >(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)9>, boost::json::try_value_to_tag<std::array<int, 4ul> >, boost::json::value const&, std::tuple<boost::json::detail::no_context, value_to_test_ns::custom_context> const&) :252 3x 44.4% 39.0% boost::system::result<std::array<int, 4ul>, boost::system::error_code> boost::json::detail::value_to_impl<std::array<int, 4ul>, std::tuple<std::tuple<value_to_test_ns::custom_context> > >(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)9>, boost::json::try_value_to_tag<std::array<int, 4ul> >, boost::json::value const&, std::tuple<std::tuple<value_to_test_ns::custom_context> > const&) :252 3x 44.4% 39.0% boost::system::result<std::array<int, 4ul>, boost::system::error_code> boost::json::detail::value_to_impl<std::array<int, 4ul>, std::tuple<value_to_test_ns::custom_context> >(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)9>, boost::json::try_value_to_tag<std::array<int, 4ul> >, boost::json::value const&, std::tuple<value_to_test_ns::custom_context> const&) :252 3x 44.4% 39.0% boost::system::result<std::array<int, 4ul>, boost::system::error_code> boost::json::detail::value_to_impl<std::array<int, 4ul>, value_to_test_ns::custom_context>(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)9>, boost::json::try_value_to_tag<std::array<int, 4ul> >, boost::json::value const&, value_to_test_ns::custom_context const&) :252 3x 44.4% 39.0% boost::system::result<std::array<int, 500ul>, boost::system::error_code> boost::json::detail::value_to_impl<std::array<int, 500ul>, boost::json::detail::no_context>(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)9>, boost::json::try_value_to_tag<std::array<int, 500ul> >, boost::json::value const&, boost::json::detail::no_context const&) :252 2x 61.1% 61.0% boost::system::result<std::array<int, 500ul>, boost::system::error_code> boost::json::detail::value_to_impl<std::array<int, 500ul>, std::tuple<boost::json::detail::no_context, value_to_test_ns::custom_context> >(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)9>, boost::json::try_value_to_tag<std::array<int, 500ul> >, boost::json::value const&, std::tuple<boost::json::detail::no_context, value_to_test_ns::custom_context> const&) :252 1x 61.1% 61.0% boost::system::result<std::array<int, 500ul>, boost::system::error_code> boost::json::detail::value_to_impl<std::array<int, 500ul>, std::tuple<std::tuple<value_to_test_ns::custom_context> > >(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)9>, boost::json::try_value_to_tag<std::array<int, 500ul> >, boost::json::value const&, std::tuple<std::tuple<value_to_test_ns::custom_context> > const&) :252 1x 61.1% 61.0% boost::system::result<std::array<int, 500ul>, boost::system::error_code> boost::json::detail::value_to_impl<std::array<int, 500ul>, std::tuple<value_to_test_ns::custom_context> >(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)9>, boost::json::try_value_to_tag<std::array<int, 500ul> >, boost::json::value const&, std::tuple<value_to_test_ns::custom_context> const&) :252 1x 61.1% 61.0% boost::system::result<std::array<int, 500ul>, boost::system::error_code> boost::json::detail::value_to_impl<std::array<int, 500ul>, value_to_test_ns::custom_context>(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)9>, boost::json::try_value_to_tag<std::array<int, 500ul> >, boost::json::value const&, value_to_test_ns::custom_context const&) :252 1x 61.1% 61.0% boost::system::result<std::map<int, int, std::less<int>, std::allocator<std::pair<int const, int> > >, boost::system::error_code> boost::json::detail::value_to_impl<std::map<int, int, std::less<int>, std::allocator<std::pair<int const, int> > >, boost::json::detail::no_context>(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)9>, boost::json::try_value_to_tag<std::map<int, int, std::less<int>, std::allocator<std::pair<int const, int> > > >, boost::json::value const&, boost::json::detail::no_context const&) :252 2x 65.0% 63.0% boost::system::result<std::map<int, int, std::less<int>, std::allocator<std::pair<int const, int> > >, boost::system::error_code> boost::json::detail::value_to_impl<std::map<int, int, std::less<int>, std::allocator<std::pair<int const, int> > >, std::tuple<boost::json::detail::no_context, value_to_test_ns::custom_context> >(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)9>, boost::json::try_value_to_tag<std::map<int, int, std::less<int>, std::allocator<std::pair<int const, int> > > >, boost::json::value const&, std::tuple<boost::json::detail::no_context, value_to_test_ns::custom_context> const&) :252 1x 65.0% 63.0% boost::system::result<std::map<int, int, std::less<int>, std::allocator<std::pair<int const, int> > >, boost::system::error_code> boost::json::detail::value_to_impl<std::map<int, int, std::less<int>, std::allocator<std::pair<int const, int> > >, std::tuple<std::tuple<value_to_test_ns::custom_context> > >(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)9>, boost::json::try_value_to_tag<std::map<int, int, std::less<int>, std::allocator<std::pair<int const, int> > > >, boost::json::value const&, std::tuple<std::tuple<value_to_test_ns::custom_context> > const&) :252 1x 65.0% 63.0% boost::system::result<std::map<int, int, std::less<int>, std::allocator<std::pair<int const, int> > >, boost::system::error_code> boost::json::detail::value_to_impl<std::map<int, int, std::less<int>, std::allocator<std::pair<int const, int> > >, std::tuple<value_to_test_ns::custom_context> >(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)9>, boost::json::try_value_to_tag<std::map<int, int, std::less<int>, std::allocator<std::pair<int const, int> > > >, boost::json::value const&, std::tuple<value_to_test_ns::custom_context> const&) :252 1x 65.0% 63.0% boost::system::result<std::map<int, int, std::less<int>, std::allocator<std::pair<int const, int> > >, boost::system::error_code> boost::json::detail::value_to_impl<std::map<int, int, std::less<int>, std::allocator<std::pair<int const, int> > >, value_to_test_ns::custom_context>(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)9>, boost::json::try_value_to_tag<std::map<int, int, std::less<int>, std::allocator<std::pair<int const, int> > > >, boost::json::value const&, value_to_test_ns::custom_context const&) :252 1x 65.0% 63.0% boost::system::result<std::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, int> > >, boost::system::error_code> boost::json::detail::value_to_impl<std::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, int> > >, boost::json::detail::no_context>(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)9>, boost::json::try_value_to_tag<std::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, int> > > >, boost::json::value const&, boost::json::detail::no_context const&) :252 2x 65.0% 62.0% boost::system::result<std::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, int> > >, boost::system::error_code> boost::json::detail::value_to_impl<std::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, int> > >, std::tuple<boost::json::detail::no_context, value_to_test_ns::custom_context> >(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)9>, boost::json::try_value_to_tag<std::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, int> > > >, boost::json::value const&, std::tuple<boost::json::detail::no_context, value_to_test_ns::custom_context> const&) :252 1x 65.0% 62.0% boost::system::result<std::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, int> > >, boost::system::error_code> boost::json::detail::value_to_impl<std::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, int> > >, std::tuple<std::tuple<value_to_test_ns::custom_context> > >(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)9>, boost::json::try_value_to_tag<std::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, int> > > >, boost::json::value const&, std::tuple<std::tuple<value_to_test_ns::custom_context> > const&) :252 1x 65.0% 62.0% boost::system::result<std::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, int> > >, boost::system::error_code> boost::json::detail::value_to_impl<std::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, int> > >, std::tuple<value_to_test_ns::custom_context> >(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)9>, boost::json::try_value_to_tag<std::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, int> > > >, boost::json::value const&, std::tuple<value_to_test_ns::custom_context> const&) :252 1x 65.0% 62.0% boost::system::result<std::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, int> > >, boost::system::error_code> boost::json::detail::value_to_impl<std::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, int> > >, value_to_test_ns::custom_context>(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)9>, boost::json::try_value_to_tag<std::multimap<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, int> > > >, boost::json::value const&, value_to_test_ns::custom_context const&) :252 1x 65.0% 62.0% boost::system::result<std::vector<bool, std::allocator<bool> >, boost::system::error_code> boost::json::detail::value_to_impl<std::vector<bool, std::allocator<bool> >, boost::json::detail::no_context>(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)9>, boost::json::try_value_to_tag<std::vector<bool, std::allocator<bool> > >, boost::json::value const&, boost::json::detail::no_context const&) :252 4x 65.0% 62.0% boost::system::result<std::vector<bool, std::allocator<bool> >, boost::system::error_code> boost::json::detail::value_to_impl<std::vector<bool, std::allocator<bool> >, std::tuple<boost::json::detail::no_context, value_to_test_ns::custom_context> >(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)9>, boost::json::try_value_to_tag<std::vector<bool, std::allocator<bool> > >, boost::json::value const&, std::tuple<boost::json::detail::no_context, value_to_test_ns::custom_context> const&) :252 1x 65.0% 62.0% boost::system::result<std::vector<bool, std::allocator<bool> >, boost::system::error_code> boost::json::detail::value_to_impl<std::vector<bool, std::allocator<bool> >, std::tuple<std::tuple<value_to_test_ns::custom_context> > >(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)9>, boost::json::try_value_to_tag<std::vector<bool, std::allocator<bool> > >, boost::json::value const&, std::tuple<std::tuple<value_to_test_ns::custom_context> > const&) :252 1x 65.0% 62.0% boost::system::result<std::vector<bool, std::allocator<bool> >, boost::system::error_code> boost::json::detail::value_to_impl<std::vector<bool, std::allocator<bool> >, std::tuple<value_to_test_ns::custom_context> >(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)9>, boost::json::try_value_to_tag<std::vector<bool, std::allocator<bool> > >, boost::json::value const&, std::tuple<value_to_test_ns::custom_context> const&) :252 1x 65.0% 62.0% boost::system::result<std::vector<bool, std::allocator<bool> >, boost::system::error_code> boost::json::detail::value_to_impl<std::vector<bool, std::allocator<bool> >, value_to_test_ns::custom_context>(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)9>, boost::json::try_value_to_tag<std::vector<bool, std::allocator<bool> > >, boost::json::value const&, value_to_test_ns::custom_context const&) :252 1x 65.0% 62.0% boost::system::result<std::vector<boost::json::my_app::customer, std::allocator<boost::json::my_app::customer> >, boost::system::error_code> boost::json::detail::value_to_impl<std::vector<boost::json::my_app::customer, std::allocator<boost::json::my_app::customer> >, boost::json::detail::no_context>(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)9>, boost::json::try_value_to_tag<std::vector<boost::json::my_app::customer, std::allocator<boost::json::my_app::customer> > >, boost::json::value const&, boost::json::detail::no_context const&) :252 0 0.0% 0.0% boost::system::result<std::vector<boost::variant2::variant<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<boost::variant2::variant<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, boost::system::error_code> boost::json::detail::value_to_impl<std::vector<boost::variant2::variant<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<boost::variant2::variant<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, boost::json::detail::no_context>(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)9>, boost::json::try_value_to_tag<std::vector<boost::variant2::variant<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<boost::variant2::variant<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > >, boost::json::value const&, boost::json::detail::no_context const&) :252 1x 65.0% 61.0% boost::system::result<std::vector<decltype(nullptr), std::allocator<decltype(nullptr)> >, boost::system::error_code> boost::json::detail::value_to_impl<std::vector<decltype(nullptr), std::allocator<decltype(nullptr)> >, boost::json::detail::no_context>(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)9>, boost::json::try_value_to_tag<std::vector<decltype(nullptr), std::allocator<decltype(nullptr)> > >, boost::json::value const&, boost::json::detail::no_context const&) :252 1x 65.0% 62.0% boost::system::result<std::vector<float, std::allocator<float> >, boost::system::error_code> boost::json::detail::value_to_impl<std::vector<float, std::allocator<float> >, boost::json::detail::no_context>(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)9>, boost::json::try_value_to_tag<std::vector<float, std::allocator<float> > >, boost::json::value const&, boost::json::detail::no_context const&) :252 2x 65.0% 62.0% boost::system::result<std::vector<int, std::allocator<int> >, boost::system::error_code> boost::json::detail::value_to_impl<std::vector<int, std::allocator<int> >, boost::json::detail::no_context>(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)9>, boost::json::try_value_to_tag<std::vector<int, std::allocator<int> > >, boost::json::value const&, boost::json::detail::no_context const&) :252 20x 85.0% 79.0% boost::system::result<std::vector<int, std::allocator<int> >, boost::system::error_code> boost::json::detail::value_to_impl<std::vector<int, std::allocator<int> >, std::tuple<boost::json::detail::no_context, value_to_test_ns::custom_context> >(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)9>, boost::json::try_value_to_tag<std::vector<int, std::allocator<int> > >, boost::json::value const&, std::tuple<boost::json::detail::no_context, value_to_test_ns::custom_context> const&) :252 3x 85.0% 79.0% boost::system::result<std::vector<int, std::allocator<int> >, boost::system::error_code> boost::json::detail::value_to_impl<std::vector<int, std::allocator<int> >, std::tuple<std::tuple<value_to_test_ns::custom_context> > >(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)9>, boost::json::try_value_to_tag<std::vector<int, std::allocator<int> > >, boost::json::value const&, std::tuple<std::tuple<value_to_test_ns::custom_context> > const&) :252 3x 85.0% 79.0% boost::system::result<std::vector<int, std::allocator<int> >, boost::system::error_code> boost::json::detail::value_to_impl<std::vector<int, std::allocator<int> >, std::tuple<value_to_test_ns::custom_context> >(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)9>, boost::json::try_value_to_tag<std::vector<int, std::allocator<int> > >, boost::json::value const&, std::tuple<value_to_test_ns::custom_context> const&) :252 3x 85.0% 79.0% boost::system::result<std::vector<int, std::allocator<int> >, boost::system::error_code> boost::json::detail::value_to_impl<std::vector<int, std::allocator<int> >, value_to_test_ns::custom_context>(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)9>, boost::json::try_value_to_tag<std::vector<int, std::allocator<int> > >, boost::json::value const&, value_to_test_ns::custom_context const&) :252 3x 85.0% 79.0% boost::system::result<std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, boost::system::error_code> boost::json::detail::value_to_impl<std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, boost::json::detail::no_context>(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)9>, boost::json::try_value_to_tag<std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, boost::json::value const&, boost::json::detail::no_context const&) :252 2x 65.0% 61.0% boost::system::result<std::vector<std::array<int, 4ul>, std::allocator<std::array<int, 4ul> > >, boost::system::error_code> boost::json::detail::value_to_impl<std::vector<std::array<int, 4ul>, std::allocator<std::array<int, 4ul> > >, boost::json::detail::no_context>(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)9>, boost::json::try_value_to_tag<std::vector<std::array<int, 4ul>, std::allocator<std::array<int, 4ul> > > >, boost::json::value const&, boost::json::detail::no_context const&) :252 1x 65.0% 62.0% boost::system::result<std::vector<std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, int> > >, std::allocator<std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, int> > > > >, boost::system::error_code> boost::json::detail::value_to_impl<std::vector<std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, int> > >, std::allocator<std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, int> > > > >, boost::json::detail::no_context>(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)9>, boost::json::try_value_to_tag<std::vector<std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, int> > >, std::allocator<std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, int> > > > > >, boost::json::value const&, boost::json::detail::no_context const&) :252 1x 65.0% 61.0% boost::system::result<std::vector<std::pair<int, int>, std::allocator<std::pair<int, int> > >, boost::system::error_code> boost::json::detail::value_to_impl<std::vector<std::pair<int, int>, std::allocator<std::pair<int, int> > >, boost::json::detail::no_context>(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)9>, boost::json::try_value_to_tag<std::vector<std::pair<int, int>, std::allocator<std::pair<int, int> > > >, boost::json::value const&, boost::json::detail::no_context const&) :252 7x 65.0% 62.0% boost::system::result<std::vector<std::vector<int, std::allocator<int> >, std::allocator<std::vector<int, std::allocator<int> > > >, boost::system::error_code> boost::json::detail::value_to_impl<std::vector<std::vector<int, std::allocator<int> >, std::allocator<std::vector<int, std::allocator<int> > > >, boost::json::detail::no_context>(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)9>, boost::json::try_value_to_tag<std::vector<std::vector<int, std::allocator<int> >, std::allocator<std::vector<int, std::allocator<int> > > > >, boost::json::value const&, boost::json::detail::no_context const&) :252 2x 65.0% 61.0% boost::system::result<std::vector<std::vector<std::pair<int, int>, std::allocator<std::pair<int, int> > >, std::allocator<std::vector<std::pair<int, int>, std::allocator<std::pair<int, int> > > > >, boost::system::error_code> boost::json::detail::value_to_impl<std::vector<std::vector<std::pair<int, int>, std::allocator<std::pair<int, int> > >, std::allocator<std::vector<std::pair<int, int>, std::allocator<std::pair<int, int> > > > >, boost::json::detail::no_context>(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)9>, boost::json::try_value_to_tag<std::vector<std::vector<std::pair<int, int>, std::allocator<std::pair<int, int> > >, std::allocator<std::vector<std::pair<int, int>, std::allocator<std::pair<int, int> > > > > >, boost::json::value const&, boost::json::detail::no_context const&) :252 3x 65.0% 61.0% boost::system::result<std::vector<unsigned long, std::allocator<unsigned long> >, boost::system::error_code> boost::json::detail::value_to_impl<std::vector<unsigned long, std::allocator<unsigned long> >, boost::json::detail::no_context>(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)9>, boost::json::try_value_to_tag<std::vector<unsigned long, std::allocator<unsigned long> > >, boost::json::value const&, boost::json::detail::no_context const&) :252 1x 65.0% 62.0% boost::system::result<std::vector<value_to_test_ns::T2, std::allocator<value_to_test_ns::T2> >, boost::system::error_code> boost::json::detail::value_to_impl<std::vector<value_to_test_ns::T2, std::allocator<value_to_test_ns::T2> >, boost::json::detail::no_context>(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)9>, boost::json::try_value_to_tag<std::vector<value_to_test_ns::T2, std::allocator<value_to_test_ns::T2> > >, boost::json::value const&, boost::json::detail::no_context const&) :252 6x 85.0% 79.0% boost::system::result<std::vector<value_to_test_ns::T2, std::allocator<value_to_test_ns::T2> >, boost::system::error_code> boost::json::detail::value_to_impl<std::vector<value_to_test_ns::T2, std::allocator<value_to_test_ns::T2> >, std::tuple<boost::json::detail::no_context, value_to_test_ns::custom_context> >(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)9>, boost::json::try_value_to_tag<std::vector<value_to_test_ns::T2, std::allocator<value_to_test_ns::T2> > >, boost::json::value const&, std::tuple<boost::json::detail::no_context, value_to_test_ns::custom_context> const&) :252 3x 85.0% 79.0% boost::system::result<std::vector<value_to_test_ns::T2, std::allocator<value_to_test_ns::T2> >, boost::system::error_code> boost::json::detail::value_to_impl<std::vector<value_to_test_ns::T2, std::allocator<value_to_test_ns::T2> >, std::tuple<std::tuple<value_to_test_ns::custom_context> > >(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)9>, boost::json::try_value_to_tag<std::vector<value_to_test_ns::T2, std::allocator<value_to_test_ns::T2> > >, boost::json::value const&, std::tuple<std::tuple<value_to_test_ns::custom_context> > const&) :252 3x 85.0% 79.0% boost::system::result<std::vector<value_to_test_ns::T2, std::allocator<value_to_test_ns::T2> >, boost::system::error_code> boost::json::detail::value_to_impl<std::vector<value_to_test_ns::T2, std::allocator<value_to_test_ns::T2> >, std::tuple<value_to_test_ns::custom_context> >(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)9>, boost::json::try_value_to_tag<std::vector<value_to_test_ns::T2, std::allocator<value_to_test_ns::T2> > >, boost::json::value const&, std::tuple<value_to_test_ns::custom_context> const&) :252 3x 85.0% 79.0% boost::system::result<std::vector<value_to_test_ns::T2, std::allocator<value_to_test_ns::T2> >, boost::system::error_code> boost::json::detail::value_to_impl<std::vector<value_to_test_ns::T2, std::allocator<value_to_test_ns::T2> >, value_to_test_ns::custom_context>(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)9>, boost::json::try_value_to_tag<std::vector<value_to_test_ns::T2, std::allocator<value_to_test_ns::T2> > >, boost::json::value const&, value_to_test_ns::custom_context const&) :252 3x 85.0% 79.0% boost::system::result<bool, boost::system::error_code> boost::json::detail::try_make_tuple_elem<bool, boost::json::detail::no_context>(boost::json::value const&, boost::json::detail::no_context const&, boost::system::error_code&) :287 5x 100.0% 100.0% boost::system::result<bool, boost::system::error_code> boost::json::detail::try_make_tuple_elem<bool, std::tuple<boost::json::detail::no_context, value_to_test_ns::custom_context> >(boost::json::value const&, std::tuple<boost::json::detail::no_context, value_to_test_ns::custom_context> const&, boost::system::error_code&) :287 2x 100.0% 100.0% boost::system::result<bool, boost::system::error_code> boost::json::detail::try_make_tuple_elem<bool, std::tuple<std::tuple<value_to_test_ns::custom_context> > >(boost::json::value const&, std::tuple<std::tuple<value_to_test_ns::custom_context> > const&, boost::system::error_code&) :287 2x 100.0% 100.0% boost::system::result<bool, boost::system::error_code> boost::json::detail::try_make_tuple_elem<bool, std::tuple<value_to_test_ns::custom_context> >(boost::json::value const&, std::tuple<value_to_test_ns::custom_context> const&, boost::system::error_code&) :287 2x 100.0% 100.0% boost::system::result<bool, boost::system::error_code> boost::json::detail::try_make_tuple_elem<bool, value_to_test_ns::custom_context>(boost::json::value const&, value_to_test_ns::custom_context const&, boost::system::error_code&) :287 2x 100.0% 100.0% boost::system::result<decltype(nullptr), boost::system::error_code> boost::json::detail::try_make_tuple_elem<decltype(nullptr), boost::json::detail::no_context>(boost::json::value const&, boost::json::detail::no_context const&, boost::system::error_code&) :287 5x 100.0% 100.0% boost::system::result<decltype(nullptr), boost::system::error_code> boost::json::detail::try_make_tuple_elem<decltype(nullptr), std::tuple<boost::json::detail::no_context, value_to_test_ns::custom_context> >(boost::json::value const&, std::tuple<boost::json::detail::no_context, value_to_test_ns::custom_context> const&, boost::system::error_code&) :287 2x 100.0% 100.0% boost::system::result<decltype(nullptr), boost::system::error_code> boost::json::detail::try_make_tuple_elem<decltype(nullptr), std::tuple<std::tuple<value_to_test_ns::custom_context> > >(boost::json::value const&, std::tuple<std::tuple<value_to_test_ns::custom_context> > const&, boost::system::error_code&) :287 2x 100.0% 100.0% boost::system::result<decltype(nullptr), boost::system::error_code> boost::json::detail::try_make_tuple_elem<decltype(nullptr), std::tuple<value_to_test_ns::custom_context> >(boost::json::value const&, std::tuple<value_to_test_ns::custom_context> const&, boost::system::error_code&) :287 2x 100.0% 100.0% boost::system::result<decltype(nullptr), boost::system::error_code> boost::json::detail::try_make_tuple_elem<decltype(nullptr), value_to_test_ns::custom_context>(boost::json::value const&, value_to_test_ns::custom_context const&, boost::system::error_code&) :287 2x 100.0% 100.0% boost::system::result<float, boost::system::error_code> boost::json::detail::try_make_tuple_elem<float, boost::json::detail::no_context>(boost::json::value const&, boost::json::detail::no_context const&, boost::system::error_code&) :287 2x 83.3% 88.0% boost::system::result<int, boost::system::error_code> boost::json::detail::try_make_tuple_elem<int, boost::json::detail::no_context>(boost::json::value const&, boost::json::detail::no_context const&, boost::system::error_code&) :287 57x 100.0% 100.0% boost::system::result<int, boost::system::error_code> boost::json::detail::try_make_tuple_elem<int, std::tuple<boost::json::detail::no_context, value_to_test_ns::custom_context> >(boost::json::value const&, std::tuple<boost::json::detail::no_context, value_to_test_ns::custom_context> const&, boost::system::error_code&) :287 16x 100.0% 100.0% boost::system::result<int, boost::system::error_code> boost::json::detail::try_make_tuple_elem<int, std::tuple<std::tuple<value_to_test_ns::custom_context> > >(boost::json::value const&, std::tuple<std::tuple<value_to_test_ns::custom_context> > const&, boost::system::error_code&) :287 16x 100.0% 100.0% boost::system::result<int, boost::system::error_code> boost::json::detail::try_make_tuple_elem<int, std::tuple<value_to_test_ns::custom_context> >(boost::json::value const&, std::tuple<value_to_test_ns::custom_context> const&, boost::system::error_code&) :287 16x 100.0% 100.0% boost::system::result<int, boost::system::error_code> boost::json::detail::try_make_tuple_elem<int, value_to_test_ns::custom_context>(boost::json::value const&, value_to_test_ns::custom_context const&, boost::system::error_code&) :287 16x 100.0% 100.0% boost::system::result<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::system::error_code> boost::json::detail::try_make_tuple_elem<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::json::detail::no_context>(boost::json::value const&, boost::json::detail::no_context const&, boost::system::error_code&) :287 20x 100.0% 100.0% boost::system::result<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::system::error_code> boost::json::detail::try_make_tuple_elem<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::tuple<boost::json::detail::no_context, value_to_test_ns::custom_context> >(boost::json::value const&, std::tuple<boost::json::detail::no_context, value_to_test_ns::custom_context> const&, boost::system::error_code&) :287 8x 100.0% 100.0% boost::system::result<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::system::error_code> boost::json::detail::try_make_tuple_elem<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::tuple<std::tuple<value_to_test_ns::custom_context> > >(boost::json::value const&, std::tuple<std::tuple<value_to_test_ns::custom_context> > const&, boost::system::error_code&) :287 8x 100.0% 100.0% boost::system::result<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::system::error_code> boost::json::detail::try_make_tuple_elem<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::tuple<value_to_test_ns::custom_context> >(boost::json::value const&, std::tuple<value_to_test_ns::custom_context> const&, boost::system::error_code&) :287 8x 100.0% 100.0% boost::system::result<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::system::error_code> boost::json::detail::try_make_tuple_elem<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, value_to_test_ns::custom_context>(boost::json::value const&, value_to_test_ns::custom_context const&, boost::system::error_code&) :287 8x 100.0% 100.0% boost::system::result<std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, double, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, double> > >, boost::system::error_code> boost::json::detail::try_make_tuple_elem<std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, double, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, double> > >, boost::json::detail::no_context>(boost::json::value const&, boost::json::detail::no_context const&, boost::system::error_code&) :287 1x 85.7% 90.0% boost::system::result<std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, int> > >, boost::system::error_code> boost::json::detail::try_make_tuple_elem<std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, int> > >, boost::json::detail::no_context>(boost::json::value const&, boost::json::detail::no_context const&, boost::system::error_code&) :287 1x 85.7% 90.0% boost::system::result<std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<int, bool>, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::pair<int, bool> > > >, boost::system::error_code> boost::json::detail::try_make_tuple_elem<std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<int, bool>, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::pair<int, bool> > > >, boost::json::detail::no_context>(boost::json::value const&, boost::json::detail::no_context const&, boost::system::error_code&) :287 2x 85.7% 90.0% boost::system::result<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int>, boost::system::error_code> boost::json::detail::try_make_tuple_elem<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int>, boost::json::detail::no_context>(boost::json::value const&, boost::json::detail::no_context const&, boost::system::error_code&) :287 2x 85.7% 90.0% boost::system::result<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int>, boost::system::error_code> boost::json::detail::try_make_tuple_elem<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int>, std::tuple<boost::json::detail::no_context, value_to_test_ns::custom_context> >(boost::json::value const&, std::tuple<boost::json::detail::no_context, value_to_test_ns::custom_context> const&, boost::system::error_code&) :287 1x 85.7% 90.0% boost::system::result<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int>, boost::system::error_code> boost::json::detail::try_make_tuple_elem<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int>, std::tuple<std::tuple<value_to_test_ns::custom_context> > >(boost::json::value const&, std::tuple<std::tuple<value_to_test_ns::custom_context> > const&, boost::system::error_code&) :287 1x 85.7% 90.0% boost::system::result<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int>, boost::system::error_code> boost::json::detail::try_make_tuple_elem<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int>, std::tuple<value_to_test_ns::custom_context> >(boost::json::value const&, std::tuple<value_to_test_ns::custom_context> const&, boost::system::error_code&) :287 1x 85.7% 90.0% boost::system::result<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int>, boost::system::error_code> boost::json::detail::try_make_tuple_elem<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int>, value_to_test_ns::custom_context>(boost::json::value const&, value_to_test_ns::custom_context const&, boost::system::error_code&) :287 1x 85.7% 90.0% boost::system::result<std::vector<int, std::allocator<int> >, boost::system::error_code> boost::json::detail::try_make_tuple_elem<std::vector<int, std::allocator<int> >, boost::json::detail::no_context>(boost::json::value const&, boost::json::detail::no_context const&, boost::system::error_code&) :287 2x 85.7% 90.0% boost::system::result<unsigned char, boost::system::error_code> boost::json::detail::try_make_tuple_elem<unsigned char, boost::json::detail::no_context>(boost::json::value const&, boost::json::detail::no_context const&, boost::system::error_code&) :287 4x 83.3% 89.0% boost::system::result<unsigned long, boost::system::error_code> boost::json::detail::try_make_tuple_elem<unsigned long, boost::json::detail::no_context>(boost::json::value const&, boost::json::detail::no_context const&, boost::system::error_code&) :287 1x 83.3% 88.0% boost::system::result<value_to_test_ns::T12, boost::system::error_code> boost::json::detail::try_make_tuple_elem<value_to_test_ns::T12, boost::json::detail::no_context>(boost::json::value const&, boost::json::detail::no_context const&, boost::system::error_code&) :287 18x 83.3% 89.0% boost::system::result<value_to_test_ns::T2, boost::system::error_code> boost::json::detail::try_make_tuple_elem<value_to_test_ns::T2, boost::json::detail::no_context>(boost::json::value const&, boost::json::detail::no_context const&, boost::system::error_code&) :287 4x 83.3% 89.0% boost::system::result<value_to_test_ns::T2, boost::system::error_code> boost::json::detail::try_make_tuple_elem<value_to_test_ns::T2, std::tuple<boost::json::detail::no_context, value_to_test_ns::custom_context> >(boost::json::value const&, std::tuple<boost::json::detail::no_context, value_to_test_ns::custom_context> const&, boost::system::error_code&) :287 2x 83.3% 89.0% boost::system::result<value_to_test_ns::T2, boost::system::error_code> boost::json::detail::try_make_tuple_elem<value_to_test_ns::T2, std::tuple<std::tuple<value_to_test_ns::custom_context> > >(boost::json::value const&, std::tuple<std::tuple<value_to_test_ns::custom_context> > const&, boost::system::error_code&) :287 2x 83.3% 89.0% boost::system::result<value_to_test_ns::T2, boost::system::error_code> boost::json::detail::try_make_tuple_elem<value_to_test_ns::T2, std::tuple<value_to_test_ns::custom_context> >(boost::json::value const&, std::tuple<value_to_test_ns::custom_context> const&, boost::system::error_code&) :287 2x 83.3% 89.0% boost::system::result<value_to_test_ns::T2, boost::system::error_code> boost::json::detail::try_make_tuple_elem<value_to_test_ns::T2, value_to_test_ns::custom_context>(boost::json::value const&, value_to_test_ns::custom_context const&, boost::system::error_code&) :287 2x 83.3% 89.0% boost::system::result<std::array<value_to_test_ns::T12, 3ul>, boost::system::error_code> boost::json::detail::try_make_tuple_like<std::array<value_to_test_ns::T12, 3ul>, boost::json::detail::no_context, 0ul, 1ul, 2ul>(boost::json::array const&, boost::json::detail::no_context const&, boost::mp11::integer_sequence<unsigned long, 0ul, 1ul, 2ul>) :299 6x 87.5% 82.0% boost::system::result<std::pair<decltype(nullptr), unsigned long>, boost::system::error_code> boost::json::detail::try_make_tuple_like<std::pair<decltype(nullptr), unsigned long>, boost::json::detail::no_context, 0ul, 1ul>(boost::json::array const&, boost::json::detail::no_context const&, boost::mp11::integer_sequence<unsigned long, 0ul, 1ul>) :299 1x 87.5% 83.0% boost::system::result<std::pair<int const, int>, boost::system::error_code> boost::json::detail::try_make_tuple_like<std::pair<int const, int>, boost::json::detail::no_context, 0ul, 1ul>(boost::json::array const&, boost::json::detail::no_context const&, boost::mp11::integer_sequence<unsigned long, 0ul, 1ul>) :299 6x 87.5% 83.0% boost::system::result<std::pair<int const, int>, boost::system::error_code> boost::json::detail::try_make_tuple_like<std::pair<int const, int>, std::tuple<boost::json::detail::no_context, value_to_test_ns::custom_context>, 0ul, 1ul>(boost::json::array const&, std::tuple<boost::json::detail::no_context, value_to_test_ns::custom_context> const&, boost::mp11::integer_sequence<unsigned long, 0ul, 1ul>) :299 3x 87.5% 83.0% boost::system::result<std::pair<int const, int>, boost::system::error_code> boost::json::detail::try_make_tuple_like<std::pair<int const, int>, std::tuple<std::tuple<value_to_test_ns::custom_context> >, 0ul, 1ul>(boost::json::array const&, std::tuple<std::tuple<value_to_test_ns::custom_context> > const&, boost::mp11::integer_sequence<unsigned long, 0ul, 1ul>) :299 3x 87.5% 83.0% boost::system::result<std::pair<int const, int>, boost::system::error_code> boost::json::detail::try_make_tuple_like<std::pair<int const, int>, std::tuple<value_to_test_ns::custom_context>, 0ul, 1ul>(boost::json::array const&, std::tuple<value_to_test_ns::custom_context> const&, boost::mp11::integer_sequence<unsigned long, 0ul, 1ul>) :299 3x 87.5% 83.0% boost::system::result<std::pair<int const, int>, boost::system::error_code> boost::json::detail::try_make_tuple_like<std::pair<int const, int>, value_to_test_ns::custom_context, 0ul, 1ul>(boost::json::array const&, value_to_test_ns::custom_context const&, boost::mp11::integer_sequence<unsigned long, 0ul, 1ul>) :299 3x 87.5% 83.0% boost::system::result<std::pair<int, bool>, boost::system::error_code> boost::json::detail::try_make_tuple_like<std::pair<int, bool>, boost::json::detail::no_context, 0ul, 1ul>(boost::json::array const&, boost::json::detail::no_context const&, boost::mp11::integer_sequence<unsigned long, 0ul, 1ul>) :299 1x 87.5% 83.0% boost::system::result<std::pair<int, int>, boost::system::error_code> boost::json::detail::try_make_tuple_like<std::pair<int, int>, boost::json::detail::no_context, 0ul, 1ul>(boost::json::array const&, boost::json::detail::no_context const&, boost::mp11::integer_sequence<unsigned long, 0ul, 1ul>) :299 10x 87.5% 83.0% boost::system::result<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, int>, boost::system::error_code> boost::json::detail::try_make_tuple_like<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, int>, boost::json::detail::no_context, 0ul, 1ul>(boost::json::array const&, boost::json::detail::no_context const&, boost::mp11::integer_sequence<unsigned long, 0ul, 1ul>) :299 6x 88.9% 69.0% boost::system::result<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, int>, boost::system::error_code> boost::json::detail::try_make_tuple_like<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, int>, std::tuple<boost::json::detail::no_context, value_to_test_ns::custom_context>, 0ul, 1ul>(boost::json::array const&, std::tuple<boost::json::detail::no_context, value_to_test_ns::custom_context> const&, boost::mp11::integer_sequence<unsigned long, 0ul, 1ul>) :299 3x 88.9% 69.0% boost::system::result<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, int>, boost::system::error_code> boost::json::detail::try_make_tuple_like<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, int>, std::tuple<std::tuple<value_to_test_ns::custom_context> >, 0ul, 1ul>(boost::json::array const&, std::tuple<std::tuple<value_to_test_ns::custom_context> > const&, boost::mp11::integer_sequence<unsigned long, 0ul, 1ul>) :299 3x 88.9% 69.0% boost::system::result<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, int>, boost::system::error_code> boost::json::detail::try_make_tuple_like<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, int>, std::tuple<value_to_test_ns::custom_context>, 0ul, 1ul>(boost::json::array const&, std::tuple<value_to_test_ns::custom_context> const&, boost::mp11::integer_sequence<unsigned long, 0ul, 1ul>) :299 3x 88.9% 69.0% boost::system::result<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, int>, boost::system::error_code> boost::json::detail::try_make_tuple_like<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, int>, value_to_test_ns::custom_context, 0ul, 1ul>(boost::json::array const&, value_to_test_ns::custom_context const&, boost::mp11::integer_sequence<unsigned long, 0ul, 1ul>) :299 3x 88.9% 69.0% boost::system::result<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int>, boost::system::error_code> boost::json::detail::try_make_tuple_like<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int>, boost::json::detail::no_context, 0ul, 1ul>(boost::json::array const&, boost::json::detail::no_context const&, boost::mp11::integer_sequence<unsigned long, 0ul, 1ul>) :299 4x 88.9% 73.0% boost::system::result<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int>, boost::system::error_code> boost::json::detail::try_make_tuple_like<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int>, std::tuple<boost::json::detail::no_context, value_to_test_ns::custom_context>, 0ul, 1ul>(boost::json::array const&, std::tuple<boost::json::detail::no_context, value_to_test_ns::custom_context> const&, boost::mp11::integer_sequence<unsigned long, 0ul, 1ul>) :299 2x 88.9% 73.0% boost::system::result<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int>, boost::system::error_code> boost::json::detail::try_make_tuple_like<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int>, std::tuple<std::tuple<value_to_test_ns::custom_context> >, 0ul, 1ul>(boost::json::array const&, std::tuple<std::tuple<value_to_test_ns::custom_context> > const&, boost::mp11::integer_sequence<unsigned long, 0ul, 1ul>) :299 2x 88.9% 73.0% boost::system::result<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int>, boost::system::error_code> boost::json::detail::try_make_tuple_like<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int>, std::tuple<value_to_test_ns::custom_context>, 0ul, 1ul>(boost::json::array const&, std::tuple<value_to_test_ns::custom_context> const&, boost::mp11::integer_sequence<unsigned long, 0ul, 1ul>) :299 2x 88.9% 73.0% boost::system::result<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int>, boost::system::error_code> boost::json::detail::try_make_tuple_like<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int>, value_to_test_ns::custom_context, 0ul, 1ul>(boost::json::array const&, value_to_test_ns::custom_context const&, boost::mp11::integer_sequence<unsigned long, 0ul, 1ul>) :299 2x 88.9% 73.0% boost::system::result<std::pair<std::vector<int, std::allocator<int> >, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<int, bool>, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::pair<int, bool> > > > >, boost::system::error_code> boost::json::detail::try_make_tuple_like<std::pair<std::vector<int, std::allocator<int> >, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<int, bool>, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::pair<int, bool> > > > >, boost::json::detail::no_context, 0ul, 1ul>(boost::json::array const&, boost::json::detail::no_context const&, boost::mp11::integer_sequence<unsigned long, 0ul, 1ul>) :299 2x 87.5% 70.0% boost::system::result<std::tuple<int, float, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::system::error_code> boost::json::detail::try_make_tuple_like<std::tuple<int, float, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::json::detail::no_context, 0ul, 1ul, 2ul>(boost::json::array const&, boost::json::detail::no_context const&, boost::mp11::integer_sequence<unsigned long, 0ul, 1ul, 2ul>) :299 2x 88.9% 75.0% boost::system::result<std::tuple<int, int, int, int>, boost::system::error_code> boost::json::detail::try_make_tuple_like<std::tuple<int, int, int, int>, boost::json::detail::no_context, 0ul, 1ul, 2ul, 3ul>(boost::json::array const&, boost::json::detail::no_context const&, boost::mp11::integer_sequence<unsigned long, 0ul, 1ul, 2ul, 3ul>) :299 0 0.0% 0.0% boost::system::result<std::tuple<int, int, int, int>, boost::system::error_code> boost::json::detail::try_make_tuple_like<std::tuple<int, int, int, int>, std::tuple<boost::json::detail::no_context, value_to_test_ns::custom_context>, 0ul, 1ul, 2ul, 3ul>(boost::json::array const&, std::tuple<boost::json::detail::no_context, value_to_test_ns::custom_context> const&, boost::mp11::integer_sequence<unsigned long, 0ul, 1ul, 2ul, 3ul>) :299 0 0.0% 0.0% boost::system::result<std::tuple<int, int, int, int>, boost::system::error_code> boost::json::detail::try_make_tuple_like<std::tuple<int, int, int, int>, std::tuple<std::tuple<value_to_test_ns::custom_context> >, 0ul, 1ul, 2ul, 3ul>(boost::json::array const&, std::tuple<std::tuple<value_to_test_ns::custom_context> > const&, boost::mp11::integer_sequence<unsigned long, 0ul, 1ul, 2ul, 3ul>) :299 0 0.0% 0.0% boost::system::result<std::tuple<int, int, int, int>, boost::system::error_code> boost::json::detail::try_make_tuple_like<std::tuple<int, int, int, int>, std::tuple<value_to_test_ns::custom_context>, 0ul, 1ul, 2ul, 3ul>(boost::json::array const&, std::tuple<value_to_test_ns::custom_context> const&, boost::mp11::integer_sequence<unsigned long, 0ul, 1ul, 2ul, 3ul>) :299 0 0.0% 0.0% boost::system::result<std::tuple<int, int, int, int>, boost::system::error_code> boost::json::detail::try_make_tuple_like<std::tuple<int, int, int, int>, value_to_test_ns::custom_context, 0ul, 1ul, 2ul, 3ul>(boost::json::array const&, value_to_test_ns::custom_context const&, boost::mp11::integer_sequence<unsigned long, 0ul, 1ul, 2ul, 3ul>) :299 0 0.0% 0.0% boost::system::result<std::tuple<int, int, int>, boost::system::error_code> boost::json::detail::try_make_tuple_like<std::tuple<int, int, int>, boost::json::detail::no_context, 0ul, 1ul, 2ul>(boost::json::array const&, boost::json::detail::no_context const&, boost::mp11::integer_sequence<unsigned long, 0ul, 1ul, 2ul>) :299 2x 75.0% 45.0% boost::system::result<std::tuple<int, int, int>, boost::system::error_code> boost::json::detail::try_make_tuple_like<std::tuple<int, int, int>, std::tuple<boost::json::detail::no_context, value_to_test_ns::custom_context>, 0ul, 1ul, 2ul>(boost::json::array const&, std::tuple<boost::json::detail::no_context, value_to_test_ns::custom_context> const&, boost::mp11::integer_sequence<unsigned long, 0ul, 1ul, 2ul>) :299 1x 75.0% 45.0% boost::system::result<std::tuple<int, int, int>, boost::system::error_code> boost::json::detail::try_make_tuple_like<std::tuple<int, int, int>, std::tuple<std::tuple<value_to_test_ns::custom_context> >, 0ul, 1ul, 2ul>(boost::json::array const&, std::tuple<std::tuple<value_to_test_ns::custom_context> > const&, boost::mp11::integer_sequence<unsigned long, 0ul, 1ul, 2ul>) :299 1x 75.0% 45.0% boost::system::result<std::tuple<int, int, int>, boost::system::error_code> boost::json::detail::try_make_tuple_like<std::tuple<int, int, int>, std::tuple<value_to_test_ns::custom_context>, 0ul, 1ul, 2ul>(boost::json::array const&, std::tuple<value_to_test_ns::custom_context> const&, boost::mp11::integer_sequence<unsigned long, 0ul, 1ul, 2ul>) :299 1x 75.0% 45.0% boost::system::result<std::tuple<int, int, int>, boost::system::error_code> boost::json::detail::try_make_tuple_like<std::tuple<int, int, int>, value_to_test_ns::custom_context, 0ul, 1ul, 2ul>(boost::json::array const&, value_to_test_ns::custom_context const&, boost::mp11::integer_sequence<unsigned long, 0ul, 1ul, 2ul>) :299 1x 75.0% 45.0% boost::system::result<std::tuple<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, decltype(nullptr), value_to_test_ns::T2>, boost::system::error_code> boost::json::detail::try_make_tuple_like<std::tuple<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, decltype(nullptr), value_to_test_ns::T2>, boost::json::detail::no_context, 0ul, 1ul, 2ul, 3ul, 4ul>(boost::json::array const&, boost::json::detail::no_context const&, boost::mp11::integer_sequence<unsigned long, 0ul, 1ul, 2ul, 3ul, 4ul>) :299 4x 100.0% 79.0% boost::system::result<std::tuple<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, decltype(nullptr), value_to_test_ns::T2>, boost::system::error_code> boost::json::detail::try_make_tuple_like<std::tuple<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, decltype(nullptr), value_to_test_ns::T2>, std::tuple<boost::json::detail::no_context, value_to_test_ns::custom_context>, 0ul, 1ul, 2ul, 3ul, 4ul>(boost::json::array const&, std::tuple<boost::json::detail::no_context, value_to_test_ns::custom_context> const&, boost::mp11::integer_sequence<unsigned long, 0ul, 1ul, 2ul, 3ul, 4ul>) :299 2x 100.0% 79.0% boost::system::result<std::tuple<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, decltype(nullptr), value_to_test_ns::T2>, boost::system::error_code> boost::json::detail::try_make_tuple_like<std::tuple<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, decltype(nullptr), value_to_test_ns::T2>, std::tuple<std::tuple<value_to_test_ns::custom_context> >, 0ul, 1ul, 2ul, 3ul, 4ul>(boost::json::array const&, std::tuple<std::tuple<value_to_test_ns::custom_context> > const&, boost::mp11::integer_sequence<unsigned long, 0ul, 1ul, 2ul, 3ul, 4ul>) :299 2x 100.0% 79.0% boost::system::result<std::tuple<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, decltype(nullptr), value_to_test_ns::T2>, boost::system::error_code> boost::json::detail::try_make_tuple_like<std::tuple<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, decltype(nullptr), value_to_test_ns::T2>, std::tuple<value_to_test_ns::custom_context>, 0ul, 1ul, 2ul, 3ul, 4ul>(boost::json::array const&, std::tuple<value_to_test_ns::custom_context> const&, boost::mp11::integer_sequence<unsigned long, 0ul, 1ul, 2ul, 3ul, 4ul>) :299 2x 100.0% 79.0% boost::system::result<std::tuple<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, decltype(nullptr), value_to_test_ns::T2>, boost::system::error_code> boost::json::detail::try_make_tuple_like<std::tuple<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, decltype(nullptr), value_to_test_ns::T2>, value_to_test_ns::custom_context, 0ul, 1ul, 2ul, 3ul, 4ul>(boost::json::array const&, value_to_test_ns::custom_context const&, boost::mp11::integer_sequence<unsigned long, 0ul, 1ul, 2ul, 3ul, 4ul>) :299 2x 100.0% 79.0% boost::system::result<std::tuple<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, double, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, double> > > >, boost::system::error_code> boost::json::detail::try_make_tuple_like<std::tuple<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, double, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, double> > > >, boost::json::detail::no_context, 0ul, 1ul, 2ul>(boost::json::array const&, boost::json::detail::no_context const&, boost::mp11::integer_sequence<unsigned long, 0ul, 1ul, 2ul>) :299 1x 88.9% 72.0% boost::system::result<std::tuple<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, int> > > >, boost::system::error_code> boost::json::detail::try_make_tuple_like<std::tuple<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, int> > > >, boost::json::detail::no_context, 0ul, 1ul, 2ul>(boost::json::array const&, boost::json::detail::no_context const&, boost::mp11::integer_sequence<unsigned long, 0ul, 1ul, 2ul>) :299 1x 77.8% 41.0% boost::system::result<std::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int> >, boost::system::error_code> boost::json::detail::try_make_tuple_like<std::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int> >, boost::json::detail::no_context, 0ul, 1ul>(boost::json::array const&, boost::json::detail::no_context const&, boost::mp11::integer_sequence<unsigned long, 0ul, 1ul>) :299 2x 87.5% 70.0% boost::system::result<std::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int> >, boost::system::error_code> boost::json::detail::try_make_tuple_like<std::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int> >, std::tuple<boost::json::detail::no_context, value_to_test_ns::custom_context>, 0ul, 1ul>(boost::json::array const&, std::tuple<boost::json::detail::no_context, value_to_test_ns::custom_context> const&, boost::mp11::integer_sequence<unsigned long, 0ul, 1ul>) :299 1x 87.5% 70.0% boost::system::result<std::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int> >, boost::system::error_code> boost::json::detail::try_make_tuple_like<std::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int> >, std::tuple<std::tuple<value_to_test_ns::custom_context> >, 0ul, 1ul>(boost::json::array const&, std::tuple<std::tuple<value_to_test_ns::custom_context> > const&, boost::mp11::integer_sequence<unsigned long, 0ul, 1ul>) :299 1x 87.5% 70.0% boost::system::result<std::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int> >, boost::system::error_code> boost::json::detail::try_make_tuple_like<std::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int> >, std::tuple<value_to_test_ns::custom_context>, 0ul, 1ul>(boost::json::array const&, std::tuple<value_to_test_ns::custom_context> const&, boost::mp11::integer_sequence<unsigned long, 0ul, 1ul>) :299 1x 87.5% 70.0% boost::system::result<std::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int> >, boost::system::error_code> boost::json::detail::try_make_tuple_like<std::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int> >, value_to_test_ns::custom_context, 0ul, 1ul>(boost::json::array const&, value_to_test_ns::custom_context const&, boost::mp11::integer_sequence<unsigned long, 0ul, 1ul>) :299 1x 87.5% 70.0% boost::system::result<user_ns::ip_address, boost::system::error_code> boost::json::detail::try_make_tuple_like<user_ns::ip_address, boost::json::detail::no_context, 0ul, 1ul, 2ul, 3ul>(boost::json::array const&, boost::json::detail::no_context const&, boost::mp11::integer_sequence<unsigned long, 0ul, 1ul, 2ul, 3ul>) :299 1x 87.5% 83.0% boost::system::result<std::array<value_to_test_ns::T12, 3ul>, boost::system::error_code> boost::json::detail::value_to_impl<std::array<value_to_test_ns::T12, 3ul>, boost::json::detail::no_context>(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)10>, boost::json::try_value_to_tag<std::array<value_to_test_ns::T12, 3ul> >, boost::json::value const&, boost::json::detail::no_context const&) :333 6x 66.7% 60.0% boost::system::result<std::pair<decltype(nullptr), unsigned long>, boost::system::error_code> boost::json::detail::value_to_impl<std::pair<decltype(nullptr), unsigned long>, boost::json::detail::no_context>(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)10>, boost::json::try_value_to_tag<std::pair<decltype(nullptr), unsigned long> >, boost::json::value const&, boost::json::detail::no_context const&) :333 1x 66.7% 60.0% boost::system::result<std::pair<int const, int>, boost::system::error_code> boost::json::detail::value_to_impl<std::pair<int const, int>, boost::json::detail::no_context>(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)10>, boost::json::try_value_to_tag<std::pair<int const, int> >, boost::json::value const&, boost::json::detail::no_context const&) :333 6x 66.7% 60.0% boost::system::result<std::pair<int const, int>, boost::system::error_code> boost::json::detail::value_to_impl<std::pair<int const, int>, std::tuple<boost::json::detail::no_context, value_to_test_ns::custom_context> >(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)10>, boost::json::try_value_to_tag<std::pair<int const, int> >, boost::json::value const&, std::tuple<boost::json::detail::no_context, value_to_test_ns::custom_context> const&) :333 3x 66.7% 60.0% boost::system::result<std::pair<int const, int>, boost::system::error_code> boost::json::detail::value_to_impl<std::pair<int const, int>, std::tuple<std::tuple<value_to_test_ns::custom_context> > >(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)10>, boost::json::try_value_to_tag<std::pair<int const, int> >, boost::json::value const&, std::tuple<std::tuple<value_to_test_ns::custom_context> > const&) :333 3x 66.7% 60.0% boost::system::result<std::pair<int const, int>, boost::system::error_code> boost::json::detail::value_to_impl<std::pair<int const, int>, std::tuple<value_to_test_ns::custom_context> >(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)10>, boost::json::try_value_to_tag<std::pair<int const, int> >, boost::json::value const&, std::tuple<value_to_test_ns::custom_context> const&) :333 3x 66.7% 60.0% boost::system::result<std::pair<int const, int>, boost::system::error_code> boost::json::detail::value_to_impl<std::pair<int const, int>, value_to_test_ns::custom_context>(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)10>, boost::json::try_value_to_tag<std::pair<int const, int> >, boost::json::value const&, value_to_test_ns::custom_context const&) :333 3x 66.7% 60.0% boost::system::result<std::pair<int, bool>, boost::system::error_code> boost::json::detail::value_to_impl<std::pair<int, bool>, boost::json::detail::no_context>(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)10>, boost::json::try_value_to_tag<std::pair<int, bool> >, boost::json::value const&, boost::json::detail::no_context const&) :333 1x 66.7% 60.0% boost::system::result<std::pair<int, int>, boost::system::error_code> boost::json::detail::value_to_impl<std::pair<int, int>, boost::json::detail::no_context>(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)10>, boost::json::try_value_to_tag<std::pair<int, int> >, boost::json::value const&, boost::json::detail::no_context const&) :333 10x 66.7% 60.0% boost::system::result<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, int>, boost::system::error_code> boost::json::detail::value_to_impl<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, int>, boost::json::detail::no_context>(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)10>, boost::json::try_value_to_tag<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, int> >, boost::json::value const&, boost::json::detail::no_context const&) :333 6x 63.6% 60.0% boost::system::result<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, int>, boost::system::error_code> boost::json::detail::value_to_impl<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, int>, std::tuple<boost::json::detail::no_context, value_to_test_ns::custom_context> >(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)10>, boost::json::try_value_to_tag<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, int> >, boost::json::value const&, std::tuple<boost::json::detail::no_context, value_to_test_ns::custom_context> const&) :333 3x 63.6% 60.0% boost::system::result<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, int>, boost::system::error_code> boost::json::detail::value_to_impl<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, int>, std::tuple<std::tuple<value_to_test_ns::custom_context> > >(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)10>, boost::json::try_value_to_tag<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, int> >, boost::json::value const&, std::tuple<std::tuple<value_to_test_ns::custom_context> > const&) :333 3x 63.6% 60.0% boost::system::result<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, int>, boost::system::error_code> boost::json::detail::value_to_impl<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, int>, std::tuple<value_to_test_ns::custom_context> >(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)10>, boost::json::try_value_to_tag<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, int> >, boost::json::value const&, std::tuple<value_to_test_ns::custom_context> const&) :333 3x 63.6% 60.0% boost::system::result<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, int>, boost::system::error_code> boost::json::detail::value_to_impl<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, int>, value_to_test_ns::custom_context>(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)10>, boost::json::try_value_to_tag<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, int> >, boost::json::value const&, value_to_test_ns::custom_context const&) :333 3x 63.6% 60.0% boost::system::result<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int>, boost::system::error_code> boost::json::detail::value_to_impl<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int>, boost::json::detail::no_context>(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)10>, boost::json::try_value_to_tag<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int> >, boost::json::value const&, boost::json::detail::no_context const&) :333 4x 63.6% 60.0% boost::system::result<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int>, boost::system::error_code> boost::json::detail::value_to_impl<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int>, std::tuple<boost::json::detail::no_context, value_to_test_ns::custom_context> >(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)10>, boost::json::try_value_to_tag<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int> >, boost::json::value const&, std::tuple<boost::json::detail::no_context, value_to_test_ns::custom_context> const&) :333 2x 63.6% 60.0% boost::system::result<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int>, boost::system::error_code> boost::json::detail::value_to_impl<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int>, std::tuple<std::tuple<value_to_test_ns::custom_context> > >(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)10>, boost::json::try_value_to_tag<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int> >, boost::json::value const&, std::tuple<std::tuple<value_to_test_ns::custom_context> > const&) :333 2x 63.6% 60.0% boost::system::result<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int>, boost::system::error_code> boost::json::detail::value_to_impl<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int>, std::tuple<value_to_test_ns::custom_context> >(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)10>, boost::json::try_value_to_tag<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int> >, boost::json::value const&, std::tuple<value_to_test_ns::custom_context> const&) :333 2x 63.6% 60.0% boost::system::result<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int>, boost::system::error_code> boost::json::detail::value_to_impl<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int>, value_to_test_ns::custom_context>(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)10>, boost::json::try_value_to_tag<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int> >, boost::json::value const&, value_to_test_ns::custom_context const&) :333 2x 63.6% 60.0% boost::system::result<std::pair<std::vector<int, std::allocator<int> >, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<int, bool>, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::pair<int, bool> > > > >, boost::system::error_code> boost::json::detail::value_to_impl<std::pair<std::vector<int, std::allocator<int> >, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<int, bool>, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::pair<int, bool> > > > >, boost::json::detail::no_context>(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)10>, boost::json::try_value_to_tag<std::pair<std::vector<int, std::allocator<int> >, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<int, bool>, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::pair<int, bool> > > > > >, boost::json::value const&, boost::json::detail::no_context const&) :333 2x 63.6% 60.0% boost::system::result<std::tuple<int, float, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::system::error_code> boost::json::detail::value_to_impl<std::tuple<int, float, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::json::detail::no_context>(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)10>, boost::json::try_value_to_tag<std::tuple<int, float, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, boost::json::value const&, boost::json::detail::no_context const&) :333 2x 63.6% 60.0% boost::system::result<std::tuple<int, int, int, int>, boost::system::error_code> boost::json::detail::value_to_impl<std::tuple<int, int, int, int>, boost::json::detail::no_context>(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)10>, boost::json::try_value_to_tag<std::tuple<int, int, int, int> >, boost::json::value const&, boost::json::detail::no_context const&) :333 4x 90.9% 87.0% boost::system::result<std::tuple<int, int, int, int>, boost::system::error_code> boost::json::detail::value_to_impl<std::tuple<int, int, int, int>, std::tuple<boost::json::detail::no_context, value_to_test_ns::custom_context> >(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)10>, boost::json::try_value_to_tag<std::tuple<int, int, int, int> >, boost::json::value const&, std::tuple<boost::json::detail::no_context, value_to_test_ns::custom_context> const&) :333 2x 90.9% 87.0% boost::system::result<std::tuple<int, int, int, int>, boost::system::error_code> boost::json::detail::value_to_impl<std::tuple<int, int, int, int>, std::tuple<std::tuple<value_to_test_ns::custom_context> > >(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)10>, boost::json::try_value_to_tag<std::tuple<int, int, int, int> >, boost::json::value const&, std::tuple<std::tuple<value_to_test_ns::custom_context> > const&) :333 2x 90.9% 87.0% boost::system::result<std::tuple<int, int, int, int>, boost::system::error_code> boost::json::detail::value_to_impl<std::tuple<int, int, int, int>, std::tuple<value_to_test_ns::custom_context> >(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)10>, boost::json::try_value_to_tag<std::tuple<int, int, int, int> >, boost::json::value const&, std::tuple<value_to_test_ns::custom_context> const&) :333 2x 90.9% 87.0% boost::system::result<std::tuple<int, int, int, int>, boost::system::error_code> boost::json::detail::value_to_impl<std::tuple<int, int, int, int>, value_to_test_ns::custom_context>(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)10>, boost::json::try_value_to_tag<std::tuple<int, int, int, int> >, boost::json::value const&, value_to_test_ns::custom_context const&) :333 2x 90.9% 87.0% boost::system::result<std::tuple<int, int, int>, boost::system::error_code> boost::json::detail::value_to_impl<std::tuple<int, int, int>, boost::json::detail::no_context>(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)10>, boost::json::try_value_to_tag<std::tuple<int, int, int> >, boost::json::value const&, boost::json::detail::no_context const&) :333 2x 63.6% 60.0% boost::system::result<std::tuple<int, int, int>, boost::system::error_code> boost::json::detail::value_to_impl<std::tuple<int, int, int>, std::tuple<boost::json::detail::no_context, value_to_test_ns::custom_context> >(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)10>, boost::json::try_value_to_tag<std::tuple<int, int, int> >, boost::json::value const&, std::tuple<boost::json::detail::no_context, value_to_test_ns::custom_context> const&) :333 1x 63.6% 60.0% boost::system::result<std::tuple<int, int, int>, boost::system::error_code> boost::json::detail::value_to_impl<std::tuple<int, int, int>, std::tuple<std::tuple<value_to_test_ns::custom_context> > >(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)10>, boost::json::try_value_to_tag<std::tuple<int, int, int> >, boost::json::value const&, std::tuple<std::tuple<value_to_test_ns::custom_context> > const&) :333 1x 63.6% 60.0% boost::system::result<std::tuple<int, int, int>, boost::system::error_code> boost::json::detail::value_to_impl<std::tuple<int, int, int>, std::tuple<value_to_test_ns::custom_context> >(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)10>, boost::json::try_value_to_tag<std::tuple<int, int, int> >, boost::json::value const&, std::tuple<value_to_test_ns::custom_context> const&) :333 1x 63.6% 60.0% boost::system::result<std::tuple<int, int, int>, boost::system::error_code> boost::json::detail::value_to_impl<std::tuple<int, int, int>, value_to_test_ns::custom_context>(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)10>, boost::json::try_value_to_tag<std::tuple<int, int, int> >, boost::json::value const&, value_to_test_ns::custom_context const&) :333 1x 63.6% 60.0% boost::system::result<std::tuple<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, decltype(nullptr), value_to_test_ns::T2>, boost::system::error_code> boost::json::detail::value_to_impl<std::tuple<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, decltype(nullptr), value_to_test_ns::T2>, boost::json::detail::no_context>(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)10>, boost::json::try_value_to_tag<std::tuple<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, decltype(nullptr), value_to_test_ns::T2> >, boost::json::value const&, boost::json::detail::no_context const&) :333 8x 100.0% 100.0% boost::system::result<std::tuple<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, decltype(nullptr), value_to_test_ns::T2>, boost::system::error_code> boost::json::detail::value_to_impl<std::tuple<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, decltype(nullptr), value_to_test_ns::T2>, std::tuple<boost::json::detail::no_context, value_to_test_ns::custom_context> >(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)10>, boost::json::try_value_to_tag<std::tuple<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, decltype(nullptr), value_to_test_ns::T2> >, boost::json::value const&, std::tuple<boost::json::detail::no_context, value_to_test_ns::custom_context> const&) :333 4x 100.0% 100.0% boost::system::result<std::tuple<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, decltype(nullptr), value_to_test_ns::T2>, boost::system::error_code> boost::json::detail::value_to_impl<std::tuple<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, decltype(nullptr), value_to_test_ns::T2>, std::tuple<std::tuple<value_to_test_ns::custom_context> > >(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)10>, boost::json::try_value_to_tag<std::tuple<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, decltype(nullptr), value_to_test_ns::T2> >, boost::json::value const&, std::tuple<std::tuple<value_to_test_ns::custom_context> > const&) :333 4x 100.0% 100.0% boost::system::result<std::tuple<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, decltype(nullptr), value_to_test_ns::T2>, boost::system::error_code> boost::json::detail::value_to_impl<std::tuple<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, decltype(nullptr), value_to_test_ns::T2>, std::tuple<value_to_test_ns::custom_context> >(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)10>, boost::json::try_value_to_tag<std::tuple<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, decltype(nullptr), value_to_test_ns::T2> >, boost::json::value const&, std::tuple<value_to_test_ns::custom_context> const&) :333 4x 100.0% 100.0% boost::system::result<std::tuple<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, decltype(nullptr), value_to_test_ns::T2>, boost::system::error_code> boost::json::detail::value_to_impl<std::tuple<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, decltype(nullptr), value_to_test_ns::T2>, value_to_test_ns::custom_context>(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)10>, boost::json::try_value_to_tag<std::tuple<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, decltype(nullptr), value_to_test_ns::T2> >, boost::json::value const&, value_to_test_ns::custom_context const&) :333 4x 100.0% 100.0% boost::system::result<std::tuple<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, double, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, double> > > >, boost::system::error_code> boost::json::detail::value_to_impl<std::tuple<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, double, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, double> > > >, boost::json::detail::no_context>(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)10>, boost::json::try_value_to_tag<std::tuple<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, double, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, double> > > > >, boost::json::value const&, boost::json::detail::no_context const&) :333 1x 63.6% 60.0% boost::system::result<std::tuple<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, int> > > >, boost::system::error_code> boost::json::detail::value_to_impl<std::tuple<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, int> > > >, boost::json::detail::no_context>(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)10>, boost::json::try_value_to_tag<std::tuple<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, int> > > > >, boost::json::value const&, boost::json::detail::no_context const&) :333 1x 63.6% 60.0% boost::system::result<std::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int> >, boost::system::error_code> boost::json::detail::value_to_impl<std::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int> >, boost::json::detail::no_context>(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)10>, boost::json::try_value_to_tag<std::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int> > >, boost::json::value const&, boost::json::detail::no_context const&) :333 2x 63.6% 60.0% boost::system::result<std::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int> >, boost::system::error_code> boost::json::detail::value_to_impl<std::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int> >, std::tuple<boost::json::detail::no_context, value_to_test_ns::custom_context> >(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)10>, boost::json::try_value_to_tag<std::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int> > >, boost::json::value const&, std::tuple<boost::json::detail::no_context, value_to_test_ns::custom_context> const&) :333 1x 63.6% 60.0% boost::system::result<std::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int> >, boost::system::error_code> boost::json::detail::value_to_impl<std::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int> >, std::tuple<std::tuple<value_to_test_ns::custom_context> > >(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)10>, boost::json::try_value_to_tag<std::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int> > >, boost::json::value const&, std::tuple<std::tuple<value_to_test_ns::custom_context> > const&) :333 1x 63.6% 60.0% boost::system::result<std::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int> >, boost::system::error_code> boost::json::detail::value_to_impl<std::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int> >, std::tuple<value_to_test_ns::custom_context> >(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)10>, boost::json::try_value_to_tag<std::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int> > >, boost::json::value const&, std::tuple<value_to_test_ns::custom_context> const&) :333 1x 63.6% 60.0% boost::system::result<std::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int> >, boost::system::error_code> boost::json::detail::value_to_impl<std::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int> >, value_to_test_ns::custom_context>(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)10>, boost::json::try_value_to_tag<std::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int> > >, boost::json::value const&, value_to_test_ns::custom_context const&) :333 1x 63.6% 60.0% boost::system::result<user_ns::ip_address, boost::system::error_code> boost::json::detail::value_to_impl<user_ns::ip_address, boost::json::detail::no_context>(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)10>, boost::json::try_value_to_tag<user_ns::ip_address>, boost::json::value const&, boost::json::detail::no_context const&) :333 1x 66.7% 60.0% boost::mp11::detail::mp_if_c_impl<static_cast<bool>(boost::mp11::detail::mp_valid_impl<boost::json::detail::has_user_conversion_to_impl, boost::json::my_app::customer>::type::value), boost::json::my_app::customer>::type boost::json::detail::value_to_impl<boost::json::my_app::customer, boost::json::detail::no_context>(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)19>, boost::json::value_to_tag<boost::json::my_app::customer>, boost::json::value const&, boost::json::detail::no_context const&) :587 0 0.0% 0.0% boost::mp11::detail::mp_if_c_impl<static_cast<bool>(boost::mp11::detail::mp_valid_impl<boost::json::detail::has_user_conversion_to_impl, user_ns2::ip_address>::type::value), user_ns2::ip_address>::type boost::json::detail::value_to_impl<user_ns2::ip_address, boost::json::detail::no_context>(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)19>, boost::json::value_to_tag<user_ns2::ip_address>, boost::json::value const&, boost::json::detail::no_context const&) :587 1x 100.0% 100.0% boost::mp11::detail::mp_if_c_impl<static_cast<bool>(boost::mp11::detail::mp_valid_impl<boost::json::detail::has_context_conversion_to_impl, boost::json::detail::supported_context<user_ns::as_string, user_ns::ip_address, std::integral_constant<bool, false> >::type, user_ns::ip_address>::type::value), user_ns::ip_address>::type boost::json::detail::value_to_impl<user_ns::ip_address, user_ns::as_string, boost::json::detail::supported_context<user_ns::as_string, user_ns::ip_address, std::integral_constant<bool, false> > >(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)20>, boost::json::value_to_tag<user_ns::ip_address>, boost::json::value const&, user_ns::as_string const&) :600 1x 100.0% 100.0% boost::mp11::detail::mp_if_c_impl<!boost::mp11::detail::mp_valid_impl<boost::json::detail::has_user_conversion_to_impl, boost::variant2::variant<bool, unsigned long> >::type::value, boost::variant2::variant<bool, unsigned long>>::type boost::json::detail::value_to_impl<boost::variant2::variant<bool, unsigned long>, boost::json::detail::no_context>(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)19>, boost::json::value_to_tag<boost::variant2::variant<bool, unsigned long> >, boost::json::value const&, boost::json::detail::no_context const&) :631 2x 80.0% 60.0% boost::mp11::detail::mp_if_c_impl<!boost::mp11::detail::mp_valid_impl<boost::json::detail::has_user_conversion_to_impl, boost::variant2::variant<boost::variant2::monostate, int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::type::value, boost::variant2::variant<boost::variant2::monostate, int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >>::type boost::json::detail::value_to_impl<boost::variant2::variant<boost::variant2::monostate, int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::json::detail::no_context>(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)19>, boost::json::value_to_tag<boost::variant2::variant<boost::variant2::monostate, int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, boost::json::value const&, boost::json::detail::no_context const&) :631 3x 83.3% 56.0% boost::mp11::detail::mp_if_c_impl<!boost::mp11::detail::mp_valid_impl<boost::json::detail::has_user_conversion_to_impl, boost::variant2::variant<boost::variant2::monostate, std::vector<int, std::allocator<int> > > >::type::value, boost::variant2::variant<boost::variant2::monostate, std::vector<int, std::allocator<int> > >>::type boost::json::detail::value_to_impl<boost::variant2::variant<boost::variant2::monostate, std::vector<int, std::allocator<int> > >, boost::json::detail::no_context>(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)19>, boost::json::value_to_tag<boost::variant2::variant<boost::variant2::monostate, std::vector<int, std::allocator<int> > > >, boost::json::value const&, boost::json::detail::no_context const&) :631 1x 83.3% 56.0% boost::mp11::detail::mp_if_c_impl<!boost::mp11::detail::mp_valid_impl<boost::json::detail::has_user_conversion_to_impl, boost::variant2::variant<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::type::value, boost::variant2::variant<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >>::type boost::json::detail::value_to_impl<boost::variant2::variant<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::json::detail::no_context>(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)19>, boost::json::value_to_tag<boost::variant2::variant<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, boost::json::value const&, boost::json::detail::no_context const&) :631 2x 83.3% 56.0% boost::mp11::detail::mp_if_c_impl<!boost::mp11::detail::mp_valid_impl<boost::json::detail::has_user_conversion_to_impl, boost::variant2::variant<int, value_to_test_ns::T2, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::type::value, boost::variant2::variant<int, value_to_test_ns::T2, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >>::type boost::json::detail::value_to_impl<boost::variant2::variant<int, value_to_test_ns::T2, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::json::detail::no_context>(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)19>, boost::json::value_to_tag<boost::variant2::variant<int, value_to_test_ns::T2, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, boost::json::value const&, boost::json::detail::no_context const&) :631 8x 100.0% 94.0% boost::mp11::detail::mp_if_c_impl<!boost::mp11::detail::mp_valid_impl<boost::json::detail::has_user_conversion_to_impl, boost::variant2::variant<int, value_to_test_ns::T2, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::type::value, boost::variant2::variant<int, value_to_test_ns::T2, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >>::type boost::json::detail::value_to_impl<boost::variant2::variant<int, value_to_test_ns::T2, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::tuple<boost::json::detail::no_context, value_to_test_ns::custom_context> >(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)19>, boost::json::value_to_tag<boost::variant2::variant<int, value_to_test_ns::T2, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, boost::json::value const&, std::tuple<boost::json::detail::no_context, value_to_test_ns::custom_context> const&) :631 4x 100.0% 94.0% boost::mp11::detail::mp_if_c_impl<!boost::mp11::detail::mp_valid_impl<boost::json::detail::has_user_conversion_to_impl, boost::variant2::variant<int, value_to_test_ns::T2, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::type::value, boost::variant2::variant<int, value_to_test_ns::T2, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >>::type boost::json::detail::value_to_impl<boost::variant2::variant<int, value_to_test_ns::T2, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::tuple<std::tuple<value_to_test_ns::custom_context> > >(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)19>, boost::json::value_to_tag<boost::variant2::variant<int, value_to_test_ns::T2, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, boost::json::value const&, std::tuple<std::tuple<value_to_test_ns::custom_context> > const&) :631 4x 100.0% 94.0% boost::mp11::detail::mp_if_c_impl<!boost::mp11::detail::mp_valid_impl<boost::json::detail::has_user_conversion_to_impl, boost::variant2::variant<int, value_to_test_ns::T2, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::type::value, boost::variant2::variant<int, value_to_test_ns::T2, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >>::type boost::json::detail::value_to_impl<boost::variant2::variant<int, value_to_test_ns::T2, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::tuple<value_to_test_ns::custom_context> >(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)19>, boost::json::value_to_tag<boost::variant2::variant<int, value_to_test_ns::T2, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, boost::json::value const&, std::tuple<value_to_test_ns::custom_context> const&) :631 4x 100.0% 94.0% boost::mp11::detail::mp_if_c_impl<!boost::mp11::detail::mp_valid_impl<boost::json::detail::has_user_conversion_to_impl, boost::variant2::variant<int, value_to_test_ns::T2, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::type::value, boost::variant2::variant<int, value_to_test_ns::T2, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >>::type boost::json::detail::value_to_impl<boost::variant2::variant<int, value_to_test_ns::T2, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, value_to_test_ns::custom_context>(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)19>, boost::json::value_to_tag<boost::variant2::variant<int, value_to_test_ns::T2, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, boost::json::value const&, value_to_test_ns::custom_context const&) :631 4x 100.0% 94.0% boost::mp11::detail::mp_if_c_impl<!boost::mp11::detail::mp_valid_impl<boost::json::detail::has_user_conversion_to_impl, boost::variant2::variant<int> >::type::value, boost::variant2::variant<int>>::type boost::json::detail::value_to_impl<boost::variant2::variant<int>, boost::json::detail::no_context>(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)19>, boost::json::value_to_tag<boost::variant2::variant<int> >, boost::json::value const&, boost::json::detail::no_context const&) :631 1x 80.0% 60.0% boost::mp11::detail::mp_if_c_impl<!boost::mp11::detail::mp_valid_impl<boost::json::detail::has_user_conversion_to_impl, boost::variant2::variant<std::vector<int, std::allocator<int> > > >::type::value, boost::variant2::variant<std::vector<int, std::allocator<int> > >>::type boost::json::detail::value_to_impl<boost::variant2::variant<std::vector<int, std::allocator<int> > >, boost::json::detail::no_context>(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)19>, boost::json::value_to_tag<boost::variant2::variant<std::vector<int, std::allocator<int> > > >, boost::json::value const&, boost::json::detail::no_context const&) :631 1x 83.3% 56.0% boost::mp11::detail::mp_if_c_impl<!boost::mp11::detail::mp_valid_impl<boost::json::detail::has_user_conversion_to_impl, boost::variant2::variant<std::vector<int, std::allocator<int> >, std::tuple<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, int> > > >, std::tuple<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, double, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, double> > > > > >::type::value, boost::variant2::variant<std::vector<int, std::allocator<int> >, std::tuple<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, int> > > >, std::tuple<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, double, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, double> > > > >>::type boost::json::detail::value_to_impl<boost::variant2::variant<std::vector<int, std::allocator<int> >, std::tuple<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, int> > > >, std::tuple<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, double, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, double> > > > >, boost::json::detail::no_context>(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)19>, boost::json::value_to_tag<boost::variant2::variant<std::vector<int, std::allocator<int> >, std::tuple<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, int> > > >, std::tuple<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, double, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, double> > > > > >, boost::json::value const&, boost::json::detail::no_context const&) :631 1x 83.3% 56.0% boost::mp11::detail::mp_if_c_impl<!boost::mp11::detail::mp_valid_impl<boost::json::detail::has_user_conversion_to_impl, boost::variant2::variant<value_to_test_ns::T11> >::type::value, boost::variant2::variant<value_to_test_ns::T11>>::type boost::json::detail::value_to_impl<boost::variant2::variant<value_to_test_ns::T11>, boost::json::detail::no_context>(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)19>, boost::json::value_to_tag<boost::variant2::variant<value_to_test_ns::T11> >, boost::json::value const&, boost::json::detail::no_context const&) :631 2x 80.0% 60.0% boost::mp11::detail::mp_if_c_impl<!boost::mp11::detail::mp_valid_impl<boost::json::detail::has_user_conversion_to_impl, boost::variant2::variant<value_to_test_ns::T11> >::type::value, boost::variant2::variant<value_to_test_ns::T11>>::type boost::json::detail::value_to_impl<boost::variant2::variant<value_to_test_ns::T11>, std::tuple<boost::json::detail::no_context, value_to_test_ns::custom_context> >(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)19>, boost::json::value_to_tag<boost::variant2::variant<value_to_test_ns::T11> >, boost::json::value const&, std::tuple<boost::json::detail::no_context, value_to_test_ns::custom_context> const&) :631 1x 80.0% 60.0% boost::mp11::detail::mp_if_c_impl<!boost::mp11::detail::mp_valid_impl<boost::json::detail::has_user_conversion_to_impl, boost::variant2::variant<value_to_test_ns::T11> >::type::value, boost::variant2::variant<value_to_test_ns::T11>>::type boost::json::detail::value_to_impl<boost::variant2::variant<value_to_test_ns::T11>, std::tuple<std::tuple<value_to_test_ns::custom_context> > >(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)19>, boost::json::value_to_tag<boost::variant2::variant<value_to_test_ns::T11> >, boost::json::value const&, std::tuple<std::tuple<value_to_test_ns::custom_context> > const&) :631 1x 80.0% 60.0% boost::mp11::detail::mp_if_c_impl<!boost::mp11::detail::mp_valid_impl<boost::json::detail::has_user_conversion_to_impl, boost::variant2::variant<value_to_test_ns::T11> >::type::value, boost::variant2::variant<value_to_test_ns::T11>>::type boost::json::detail::value_to_impl<boost::variant2::variant<value_to_test_ns::T11>, std::tuple<value_to_test_ns::custom_context> >(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)19>, boost::json::value_to_tag<boost::variant2::variant<value_to_test_ns::T11> >, boost::json::value const&, std::tuple<value_to_test_ns::custom_context> const&) :631 1x 80.0% 60.0% boost::mp11::detail::mp_if_c_impl<!boost::mp11::detail::mp_valid_impl<boost::json::detail::has_user_conversion_to_impl, boost::variant2::variant<value_to_test_ns::T11> >::type::value, boost::variant2::variant<value_to_test_ns::T11>>::type boost::json::detail::value_to_impl<boost::variant2::variant<value_to_test_ns::T11>, value_to_test_ns::custom_context>(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)19>, boost::json::value_to_tag<boost::variant2::variant<value_to_test_ns::T11> >, boost::json::value const&, value_to_test_ns::custom_context const&) :631 1x 80.0% 60.0% boost::mp11::detail::mp_if_c_impl<!boost::mp11::detail::mp_valid_impl<boost::json::detail::has_user_conversion_to_impl, boost::variant2::variant<value_to_test_ns::T3, value_to_test_ns::T1> >::type::value, boost::variant2::variant<value_to_test_ns::T3, value_to_test_ns::T1>>::type boost::json::detail::value_to_impl<boost::variant2::variant<value_to_test_ns::T3, value_to_test_ns::T1>, boost::json::detail::no_context>(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)19>, boost::json::value_to_tag<boost::variant2::variant<value_to_test_ns::T3, value_to_test_ns::T1> >, boost::json::value const&, boost::json::detail::no_context const&) :631 2x 80.0% 60.0% boost::mp11::detail::mp_if_c_impl<!boost::mp11::detail::mp_valid_impl<boost::json::detail::has_user_conversion_to_impl, boost::variant2::variant<value_to_test_ns::T3, value_to_test_ns::T1> >::type::value, boost::variant2::variant<value_to_test_ns::T3, value_to_test_ns::T1>>::type boost::json::detail::value_to_impl<boost::variant2::variant<value_to_test_ns::T3, value_to_test_ns::T1>, std::tuple<boost::json::detail::no_context, value_to_test_ns::custom_context> >(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)19>, boost::json::value_to_tag<boost::variant2::variant<value_to_test_ns::T3, value_to_test_ns::T1> >, boost::json::value const&, std::tuple<boost::json::detail::no_context, value_to_test_ns::custom_context> const&) :631 1x 80.0% 60.0% boost::mp11::detail::mp_if_c_impl<!boost::mp11::detail::mp_valid_impl<boost::json::detail::has_user_conversion_to_impl, boost::variant2::variant<value_to_test_ns::T3, value_to_test_ns::T1> >::type::value, boost::variant2::variant<value_to_test_ns::T3, value_to_test_ns::T1>>::type boost::json::detail::value_to_impl<boost::variant2::variant<value_to_test_ns::T3, value_to_test_ns::T1>, std::tuple<std::tuple<value_to_test_ns::custom_context> > >(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)19>, boost::json::value_to_tag<boost::variant2::variant<value_to_test_ns::T3, value_to_test_ns::T1> >, boost::json::value const&, std::tuple<std::tuple<value_to_test_ns::custom_context> > const&) :631 1x 80.0% 60.0% boost::mp11::detail::mp_if_c_impl<!boost::mp11::detail::mp_valid_impl<boost::json::detail::has_user_conversion_to_impl, boost::variant2::variant<value_to_test_ns::T3, value_to_test_ns::T1> >::type::value, boost::variant2::variant<value_to_test_ns::T3, value_to_test_ns::T1>>::type boost::json::detail::value_to_impl<boost::variant2::variant<value_to_test_ns::T3, value_to_test_ns::T1>, std::tuple<value_to_test_ns::custom_context> >(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)19>, boost::json::value_to_tag<boost::variant2::variant<value_to_test_ns::T3, value_to_test_ns::T1> >, boost::json::value const&, std::tuple<value_to_test_ns::custom_context> const&) :631 1x 80.0% 60.0% boost::mp11::detail::mp_if_c_impl<!boost::mp11::detail::mp_valid_impl<boost::json::detail::has_user_conversion_to_impl, boost::variant2::variant<value_to_test_ns::T3, value_to_test_ns::T1> >::type::value, boost::variant2::variant<value_to_test_ns::T3, value_to_test_ns::T1>>::type boost::json::detail::value_to_impl<boost::variant2::variant<value_to_test_ns::T3, value_to_test_ns::T1>, value_to_test_ns::custom_context>(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)19>, boost::json::value_to_tag<boost::variant2::variant<value_to_test_ns::T3, value_to_test_ns::T1> >, boost::json::value const&, value_to_test_ns::custom_context const&) :631 1x 80.0% 60.0% boost::mp11::detail::mp_if_c_impl<!boost::mp11::detail::mp_valid_impl<boost::json::detail::has_user_conversion_to_impl, user_ns::ip_address>::type::value, user_ns::ip_address>::type boost::json::detail::value_to_impl<user_ns::ip_address, boost::json::detail::no_context>(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)19>, boost::json::value_to_tag<user_ns::ip_address>, boost::json::value const&, boost::json::detail::no_context const&) :631 1x 80.0% 60.0% boost::mp11::detail::mp_if_c_impl<!boost::mp11::detail::mp_valid_impl<boost::json::detail::has_user_conversion_to_impl, value_to_test_ns::T2>::type::value, value_to_test_ns::T2>::type boost::json::detail::value_to_impl<value_to_test_ns::T2, boost::json::detail::no_context>(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)19>, boost::json::value_to_tag<value_to_test_ns::T2>, boost::json::value const&, boost::json::detail::no_context const&) :631 4x 100.0% 100.0% boost::mp11::detail::mp_if_c_impl<!boost::mp11::detail::mp_valid_impl<boost::json::detail::has_user_conversion_to_impl, value_to_test_ns::T2>::type::value, value_to_test_ns::T2>::type boost::json::detail::value_to_impl<value_to_test_ns::T2, std::tuple<boost::json::detail::no_context, value_to_test_ns::custom_context> >(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)19>, boost::json::value_to_tag<value_to_test_ns::T2>, boost::json::value const&, std::tuple<boost::json::detail::no_context, value_to_test_ns::custom_context> const&) :631 2x 100.0% 100.0% boost::mp11::detail::mp_if_c_impl<!boost::mp11::detail::mp_valid_impl<boost::json::detail::has_user_conversion_to_impl, value_to_test_ns::T2>::type::value, value_to_test_ns::T2>::type boost::json::detail::value_to_impl<value_to_test_ns::T2, std::tuple<std::tuple<value_to_test_ns::custom_context> > >(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)19>, boost::json::value_to_tag<value_to_test_ns::T2>, boost::json::value const&, std::tuple<std::tuple<value_to_test_ns::custom_context> > const&) :631 2x 100.0% 100.0% boost::mp11::detail::mp_if_c_impl<!boost::mp11::detail::mp_valid_impl<boost::json::detail::has_user_conversion_to_impl, value_to_test_ns::T2>::type::value, value_to_test_ns::T2>::type boost::json::detail::value_to_impl<value_to_test_ns::T2, std::tuple<value_to_test_ns::custom_context> >(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)19>, boost::json::value_to_tag<value_to_test_ns::T2>, boost::json::value const&, std::tuple<value_to_test_ns::custom_context> const&) :631 2x 100.0% 100.0% boost::mp11::detail::mp_if_c_impl<!boost::mp11::detail::mp_valid_impl<boost::json::detail::has_user_conversion_to_impl, value_to_test_ns::T2>::type::value, value_to_test_ns::T2>::type boost::json::detail::value_to_impl<value_to_test_ns::T2, value_to_test_ns::custom_context>(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)19>, boost::json::value_to_tag<value_to_test_ns::T2>, boost::json::value const&, value_to_test_ns::custom_context const&) :631 2x 100.0% 100.0% boost::mp11::detail::mp_if_c_impl<!boost::mp11::detail::mp_valid_impl<boost::json::detail::has_context_conversion_to_impl, boost::json::detail::supported_context<user_ns::as_string, user_ns::ip_address, std::integral_constant<bool, false> >::type, user_ns::ip_address>::type::value, user_ns::ip_address>::type boost::json::detail::value_to_impl<user_ns::ip_address, user_ns::as_string, boost::json::detail::supported_context<user_ns::as_string, user_ns::ip_address, std::integral_constant<bool, false> > >(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)20>, boost::json::value_to_tag<user_ns::ip_address>, boost::json::value const&, user_ns::as_string const&) :649 1x 80.0% 67.0% boost::mp11::detail::mp_if_c_impl<!boost::mp11::detail::mp_valid_impl<boost::json::detail::has_context_conversion_to_impl, boost::json::detail::supported_context<value_to_test_ns::custom_context, value_to_test_ns::T9, std::integral_constant<bool, false> >::type, value_to_test_ns::T9>::type::value, value_to_test_ns::T9>::type boost::json::detail::value_to_impl<value_to_test_ns::T9, value_to_test_ns::custom_context, boost::json::detail::supported_context<value_to_test_ns::custom_context, value_to_test_ns::T9, std::integral_constant<bool, false> > >(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)20>, boost::json::value_to_tag<value_to_test_ns::T9>, boost::json::value const&, value_to_test_ns::custom_context const&) :649 2x 100.0% 100.0% boost::mp11::detail::mp_if_c_impl<static_cast<bool>(boost::mp11::detail::mp_valid_impl<boost::json::detail::has_nonthrowing_user_conversion_to_impl, boost::variant2::variant<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::type::value), boost::system::result<boost::variant2::variant<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::system::error_code>>::type boost::json::detail::value_to_impl<boost::variant2::variant<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::json::detail::no_context>(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)19>, boost::json::try_value_to_tag<boost::variant2::variant<int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, boost::json::value const&, boost::json::detail::no_context const&) :685 8x 100.0% 100.0% boost::mp11::detail::mp_if_c_impl<static_cast<bool>(boost::mp11::detail::mp_valid_impl<boost::json::detail::has_nonthrowing_user_conversion_to_impl, user_ns2::ip_address>::type::value), boost::system::result<user_ns2::ip_address, boost::system::error_code>>::type boost::json::detail::value_to_impl<user_ns2::ip_address, boost::json::detail::no_context>(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)19>, boost::json::try_value_to_tag<user_ns2::ip_address>, boost::json::value const&, boost::json::detail::no_context const&) :685 2x 100.0% 100.0% boost::mp11::detail::mp_if_c_impl<static_cast<bool>(boost::mp11::detail::mp_valid_impl<boost::json::detail::has_nonthrowing_user_conversion_to_impl, value_to_test_ns::T2>::type::value), boost::system::result<value_to_test_ns::T2, boost::system::error_code>>::type boost::json::detail::value_to_impl<value_to_test_ns::T2, boost::json::detail::no_context>(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)19>, boost::json::try_value_to_tag<value_to_test_ns::T2>, boost::json::value const&, boost::json::detail::no_context const&) :685 50x 100.0% 100.0% boost::mp11::detail::mp_if_c_impl<static_cast<bool>(boost::mp11::detail::mp_valid_impl<boost::json::detail::has_nonthrowing_user_conversion_to_impl, value_to_test_ns::T2>::type::value), boost::system::result<value_to_test_ns::T2, boost::system::error_code>>::type boost::json::detail::value_to_impl<value_to_test_ns::T2, std::tuple<boost::json::detail::no_context, value_to_test_ns::custom_context> >(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)19>, boost::json::try_value_to_tag<value_to_test_ns::T2>, boost::json::value const&, std::tuple<boost::json::detail::no_context, value_to_test_ns::custom_context> const&) :685 16x 100.0% 100.0% boost::mp11::detail::mp_if_c_impl<static_cast<bool>(boost::mp11::detail::mp_valid_impl<boost::json::detail::has_nonthrowing_user_conversion_to_impl, value_to_test_ns::T2>::type::value), boost::system::result<value_to_test_ns::T2, boost::system::error_code>>::type boost::json::detail::value_to_impl<value_to_test_ns::T2, std::tuple<std::tuple<value_to_test_ns::custom_context> > >(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)19>, boost::json::try_value_to_tag<value_to_test_ns::T2>, boost::json::value const&, std::tuple<std::tuple<value_to_test_ns::custom_context> > const&) :685 16x 100.0% 100.0% boost::mp11::detail::mp_if_c_impl<static_cast<bool>(boost::mp11::detail::mp_valid_impl<boost::json::detail::has_nonthrowing_user_conversion_to_impl, value_to_test_ns::T2>::type::value), boost::system::result<value_to_test_ns::T2, boost::system::error_code>>::type boost::json::detail::value_to_impl<value_to_test_ns::T2, std::tuple<value_to_test_ns::custom_context> >(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)19>, boost::json::try_value_to_tag<value_to_test_ns::T2>, boost::json::value const&, std::tuple<value_to_test_ns::custom_context> const&) :685 16x 100.0% 100.0% boost::mp11::detail::mp_if_c_impl<static_cast<bool>(boost::mp11::detail::mp_valid_impl<boost::json::detail::has_nonthrowing_user_conversion_to_impl, value_to_test_ns::T2>::type::value), boost::system::result<value_to_test_ns::T2, boost::system::error_code>>::type boost::json::detail::value_to_impl<value_to_test_ns::T2, value_to_test_ns::custom_context>(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)19>, boost::json::try_value_to_tag<value_to_test_ns::T2>, boost::json::value const&, value_to_test_ns::custom_context const&) :685 16x 100.0% 100.0% boost::system::result<boost::json::my_app::customer, boost::system::error_code> boost::json::detail::wrap_conversion_exceptions<boost::json::my_app::customer, boost::json::value const&>(boost::json::value_to_tag<boost::json::my_app::customer>, boost::json::value const&) :734 0 0.0% 0.0% boost::system::result<value_to_test_ns::T11, boost::system::error_code> boost::json::detail::wrap_conversion_exceptions<value_to_test_ns::T11, boost::json::value const&>(boost::json::value_to_tag<value_to_test_ns::T11>, boost::json::value const&) :734 6x 20.0% 26.0% boost::system::result<value_to_test_ns::T12, boost::system::error_code> boost::json::detail::wrap_conversion_exceptions<value_to_test_ns::T12, boost::json::value const&>(boost::json::value_to_tag<value_to_test_ns::T12>, boost::json::value const&) :734 18x 100.0% 100.0% boost::system::result<value_to_test_ns::T3, boost::system::error_code> boost::json::detail::wrap_conversion_exceptions<value_to_test_ns::T3, boost::json::value const&>(boost::json::value_to_tag<value_to_test_ns::T3>, boost::json::value const&) :734 24x 90.0% 84.0% boost::system::result<value_to_test_ns::T5, boost::system::error_code> boost::json::detail::wrap_conversion_exceptions<value_to_test_ns::T5, boost::json::value const&>(boost::json::value_to_tag<value_to_test_ns::T5>, boost::json::value const&) :734 6x 40.0% 37.0% boost::mp11::detail::mp_if_c_impl<!boost::mp11::detail::mp_valid_impl<boost::json::detail::has_nonthrowing_user_conversion_to_impl, boost::json::my_app::customer>::type::value, boost::system::result<boost::json::my_app::customer, boost::system::error_code>>::type boost::json::detail::value_to_impl<boost::json::my_app::customer, boost::json::detail::no_context>(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)19>, boost::json::try_value_to_tag<boost::json::my_app::customer>, boost::json::value const&, boost::json::detail::no_context const&) :766 0 0.0% 0.0% boost::mp11::detail::mp_if_c_impl<!boost::mp11::detail::mp_valid_impl<boost::json::detail::has_nonthrowing_user_conversion_to_impl, value_to_test_ns::T11>::type::value, boost::system::result<value_to_test_ns::T11, boost::system::error_code>>::type boost::json::detail::value_to_impl<value_to_test_ns::T11, boost::json::detail::no_context>(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)19>, boost::json::try_value_to_tag<value_to_test_ns::T11>, boost::json::value const&, boost::json::detail::no_context const&) :766 6x 100.0% 100.0% boost::mp11::detail::mp_if_c_impl<!boost::mp11::detail::mp_valid_impl<boost::json::detail::has_nonthrowing_user_conversion_to_impl, value_to_test_ns::T12>::type::value, boost::system::result<value_to_test_ns::T12, boost::system::error_code>>::type boost::json::detail::value_to_impl<value_to_test_ns::T12, boost::json::detail::no_context>(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)19>, boost::json::try_value_to_tag<value_to_test_ns::T12>, boost::json::value const&, boost::json::detail::no_context const&) :766 18x 100.0% 100.0% boost::mp11::detail::mp_if_c_impl<!boost::mp11::detail::mp_valid_impl<boost::json::detail::has_nonthrowing_user_conversion_to_impl, value_to_test_ns::T3>::type::value, boost::system::result<value_to_test_ns::T3, boost::system::error_code>>::type boost::json::detail::value_to_impl<value_to_test_ns::T3, boost::json::detail::no_context>(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)19>, boost::json::try_value_to_tag<value_to_test_ns::T3>, boost::json::value const&, boost::json::detail::no_context const&) :766 12x 100.0% 100.0% boost::mp11::detail::mp_if_c_impl<!boost::mp11::detail::mp_valid_impl<boost::json::detail::has_nonthrowing_user_conversion_to_impl, value_to_test_ns::T3>::type::value, boost::system::result<value_to_test_ns::T3, boost::system::error_code>>::type boost::json::detail::value_to_impl<value_to_test_ns::T3, std::tuple<boost::json::detail::no_context, value_to_test_ns::custom_context> >(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)19>, boost::json::try_value_to_tag<value_to_test_ns::T3>, boost::json::value const&, std::tuple<boost::json::detail::no_context, value_to_test_ns::custom_context> const&) :766 3x 100.0% 100.0% boost::mp11::detail::mp_if_c_impl<!boost::mp11::detail::mp_valid_impl<boost::json::detail::has_nonthrowing_user_conversion_to_impl, value_to_test_ns::T3>::type::value, boost::system::result<value_to_test_ns::T3, boost::system::error_code>>::type boost::json::detail::value_to_impl<value_to_test_ns::T3, std::tuple<std::tuple<value_to_test_ns::custom_context> > >(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)19>, boost::json::try_value_to_tag<value_to_test_ns::T3>, boost::json::value const&, std::tuple<std::tuple<value_to_test_ns::custom_context> > const&) :766 3x 100.0% 100.0% boost::mp11::detail::mp_if_c_impl<!boost::mp11::detail::mp_valid_impl<boost::json::detail::has_nonthrowing_user_conversion_to_impl, value_to_test_ns::T3>::type::value, boost::system::result<value_to_test_ns::T3, boost::system::error_code>>::type boost::json::detail::value_to_impl<value_to_test_ns::T3, std::tuple<value_to_test_ns::custom_context> >(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)19>, boost::json::try_value_to_tag<value_to_test_ns::T3>, boost::json::value const&, std::tuple<value_to_test_ns::custom_context> const&) :766 3x 100.0% 100.0% boost::mp11::detail::mp_if_c_impl<!boost::mp11::detail::mp_valid_impl<boost::json::detail::has_nonthrowing_user_conversion_to_impl, value_to_test_ns::T3>::type::value, boost::system::result<value_to_test_ns::T3, boost::system::error_code>>::type boost::json::detail::value_to_impl<value_to_test_ns::T3, value_to_test_ns::custom_context>(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)19>, boost::json::try_value_to_tag<value_to_test_ns::T3>, boost::json::value const&, value_to_test_ns::custom_context const&) :766 3x 100.0% 100.0% boost::mp11::detail::mp_if_c_impl<!boost::mp11::detail::mp_valid_impl<boost::json::detail::has_nonthrowing_user_conversion_to_impl, value_to_test_ns::T5>::type::value, boost::system::result<value_to_test_ns::T5, boost::system::error_code>>::type boost::json::detail::value_to_impl<value_to_test_ns::T5, boost::json::detail::no_context>(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)19>, boost::json::try_value_to_tag<value_to_test_ns::T5>, boost::json::value const&, boost::json::detail::no_context const&) :766 2x 100.0% 100.0% boost::mp11::detail::mp_if_c_impl<!boost::mp11::detail::mp_valid_impl<boost::json::detail::has_nonthrowing_user_conversion_to_impl, value_to_test_ns::T5>::type::value, boost::system::result<value_to_test_ns::T5, boost::system::error_code>>::type boost::json::detail::value_to_impl<value_to_test_ns::T5, std::tuple<boost::json::detail::no_context, value_to_test_ns::custom_context> >(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)19>, boost::json::try_value_to_tag<value_to_test_ns::T5>, boost::json::value const&, std::tuple<boost::json::detail::no_context, value_to_test_ns::custom_context> const&) :766 1x 100.0% 100.0% boost::mp11::detail::mp_if_c_impl<!boost::mp11::detail::mp_valid_impl<boost::json::detail::has_nonthrowing_user_conversion_to_impl, value_to_test_ns::T5>::type::value, boost::system::result<value_to_test_ns::T5, boost::system::error_code>>::type boost::json::detail::value_to_impl<value_to_test_ns::T5, std::tuple<std::tuple<value_to_test_ns::custom_context> > >(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)19>, boost::json::try_value_to_tag<value_to_test_ns::T5>, boost::json::value const&, std::tuple<std::tuple<value_to_test_ns::custom_context> > const&) :766 1x 100.0% 100.0% boost::mp11::detail::mp_if_c_impl<!boost::mp11::detail::mp_valid_impl<boost::json::detail::has_nonthrowing_user_conversion_to_impl, value_to_test_ns::T5>::type::value, boost::system::result<value_to_test_ns::T5, boost::system::error_code>>::type boost::json::detail::value_to_impl<value_to_test_ns::T5, std::tuple<value_to_test_ns::custom_context> >(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)19>, boost::json::try_value_to_tag<value_to_test_ns::T5>, boost::json::value const&, std::tuple<value_to_test_ns::custom_context> const&) :766 1x 100.0% 100.0% boost::mp11::detail::mp_if_c_impl<!boost::mp11::detail::mp_valid_impl<boost::json::detail::has_nonthrowing_user_conversion_to_impl, value_to_test_ns::T5>::type::value, boost::system::result<value_to_test_ns::T5, boost::system::error_code>>::type boost::json::detail::value_to_impl<value_to_test_ns::T5, value_to_test_ns::custom_context>(std::integral_constant<boost::json::conversion_category, (boost::json::conversion_category)19>, boost::json::try_value_to_tag<value_to_test_ns::T5>, boost::json::value const&, value_to_test_ns::custom_context const&) :766 1x 100.0% 100.0%
Line TLA Hits Source Code
1 //
2 // Copyright (c) 2019 Vinnie Falco (vinnie.falco@gmail.com)
3 // Copyright (c) 2020 Krystian Stasiowski (sdkrystian@gmail.com)
4 // Copyright (c) 2021 Dmitry Arkhipov (grisumbras@gmail.com)
5 //
6 // Distributed under the Boost Software License, Version 1.0. (See accompanying
7 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
8 //
9 // Official repository: https://github.com/boostorg/json
10 //
11
12 #ifndef BOOST_JSON_DETAIL_VALUE_TO_HPP
13 #define BOOST_JSON_DETAIL_VALUE_TO_HPP
14
15 #include <boost/core/detail/static_assert.hpp>
16 #include <boost/json/value.hpp>
17 #include <boost/json/conversion.hpp>
18 #include <boost/json/result_for.hpp>
19 #include <boost/describe/enum_from_string.hpp>
20
21 #ifndef BOOST_NO_CXX17_HDR_OPTIONAL
22 # include <optional>
23 #endif
24
25 namespace boost {
26 namespace json {
27
28 namespace detail {
29
30 template<class T>
31 using has_reserve_member_helper = decltype(std::declval<T&>().reserve(0));
32 template<class T>
33 using has_reserve_member = mp11::mp_valid<has_reserve_member_helper, T>;
34 template<class T>
35 using reserve_implementation = mp11::mp_cond<
36 is_tuple_like<T>, mp11::mp_int<2>,
37 has_reserve_member<T>, mp11::mp_int<1>,
38 mp11::mp_true, mp11::mp_int<0>>;
39
40 template<class T>
41 error
42 41x try_reserve(
43 T&,
44 std::size_t size,
45 mp11::mp_int<2>)
46 {
47 41x constexpr std::size_t N = std::tuple_size<remove_cvref<T>>::value;
48 41x if ( N != size )
49 30x return error::size_mismatch;
50 11x return error();
51 }
52
53 template<typename T>
54 error
55 74x try_reserve(
56 T& cont,
57 std::size_t size,
58 mp11::mp_int<1>)
59 {
60 74x cont.reserve(size);
61 74x return error();
62 }
63
64 template<typename T>
65 error
66 57x try_reserve(
67 T&,
68 std::size_t,
69 mp11::mp_int<0>)
70 {
71 57x return error();
72 }
73
74
75 // identity conversion
76 template< class Ctx >
77 system::result<value>
78 value_to_impl(
79 json_value_category,
80 try_value_to_tag<value>,
81 value const& jv,
82 Ctx const& )
83 {
84 return jv;
85 }
86
87 template< class Ctx >
88 value
89 value_to_impl(
90 json_value_category, value_to_tag<value>, value const& jv, Ctx const& )
91 {
92 return jv;
93 }
94
95 // object
96 template< class Ctx >
97 system::result<object>
98 12x value_to_impl(
99 json_object_category,
100 try_value_to_tag<object>,
101 value const& jv,
102 Ctx const& )
103 {
104 12x object const* obj = jv.if_object();
105 12x if( obj )
106 6x return *obj;
107 6x system::error_code ec;
108 6x BOOST_JSON_FAIL(ec, error::not_object);
109 6x return ec;
110 }
111
112 // array
113 template< class Ctx >
114 system::result<array>
115 12x value_to_impl(
116 json_array_category,
117 try_value_to_tag<array>,
118 value const& jv,
119 Ctx const& )
120 {
121 12x array const* arr = jv.if_array();
122 12x if( arr )
123 6x return *arr;
124 6x system::error_code ec;
125 6x BOOST_JSON_FAIL(ec, error::not_array);
126 6x return ec;
127 }
128
129 // string
130 template< class Ctx >
131 system::result<string>
132 12x value_to_impl(
133 json_string_category,
134 try_value_to_tag<string>,
135 value const& jv,
136 Ctx const& )
137 {
138 12x string const* str = jv.if_string();
139 12x if( str )
140 6x return *str;
141 6x system::error_code ec;
142 6x BOOST_JSON_FAIL(ec, error::not_string);
143 6x return ec;
144 }
145
146 // bool
147 template< class Ctx >
148 system::result<bool>
149 49x value_to_impl(
150 boolean_category, try_value_to_tag<bool>, value const& jv, Ctx const& )
151 {
152 49x auto b = jv.if_bool();
153 49x if( b )
154 42x return *b;
155 7x system::error_code ec;
156 7x BOOST_JSON_FAIL(ec, error::not_bool);
157 7x return {boost::system::in_place_error, ec};
158 }
159
160 template< class Cat, class T, class Ctx >
161 system::result<T>
162 3396x value_to_impl(
163 Cat,
164 try_value_to_tag<T>,
165 value const& jv,
166 Ctx const&,
167 typename std::enable_if<
168 Cat::value == conversion_category::integer
169 || Cat::value == conversion_category::floating_point>::type* = nullptr
170 )
171 {
172 3396x system::error_code ec;
173 3396x auto const n = jv.to_number<T>(ec);
174 3396x if( ec.failed() )
175 55x return {boost::system::in_place_error, ec};
176 3341x return {boost::system::in_place_value, n};
177 }
178
179 // null-like conversion
180 template< class T, class Ctx >
181 system::result<T>
182 56x value_to_impl(
183 null_category,
184 try_value_to_tag<T>,
185 value const& jv,
186 Ctx const& )
187 {
188 56x if( jv.is_null() )
189 35x return {boost::system::in_place_value, T{}};
190 21x system::error_code ec;
191 21x BOOST_JSON_FAIL(ec, error::not_null);
192 21x return {boost::system::in_place_error, ec};
193 }
194
195 // string-like types
196 template< class T, class Ctx >
197 system::result<T>
198 79x value_to_impl(
199 string_category, try_value_to_tag<T>, value const& jv, Ctx const& )
200 {
201 79x auto str = jv.if_string();
202 79x if( str )
203 67x return {boost::system::in_place_value, T(str->subview())};
204 12x system::error_code ec;
205 12x BOOST_JSON_FAIL(ec, error::not_string);
206 12x return {boost::system::in_place_error, ec};
207 }
208
209 // map-like containers
210 template< class T, class Ctx >
211 system::result<T>
212 74x value_to_impl(
213 map_category,
214 try_value_to_tag<T>,
215 value const& jv,
216 Ctx const& ctx )
217 {
218 74x object const* obj = jv.if_object();
219 74x if( !obj )
220 {
221 12x system::error_code ec;
222 12x BOOST_JSON_FAIL(ec, error::not_object);
223 12x return {boost::system::in_place_error, ec};
224 }
225
226 62x T res;
227 62x error const e = detail::try_reserve(
228 res, obj->size(), reserve_implementation<T>());
229 62x if( e != error() )
230 {
231 12x system::error_code ec;
232 12x BOOST_JSON_FAIL( ec, e );
233 12x return {boost::system::in_place_error, ec};
234 }
235
236 50x auto ins = detail::inserter(res, inserter_implementation<T>());
237 147x for( key_value_pair const& kv: *obj )
238 {
239 104x auto elem_res = try_value_to<mapped_type<T>>( kv.value(), ctx );
240 104x if( elem_res.has_error() )
241 13x return {boost::system::in_place_error, elem_res.error()};
242 91x *ins++ = value_type<T>{
243 182x key_type<T>(kv.key()),
244 91x std::move(*elem_res)};
245 }
246 37x return res;
247 62x }
248
249 // all other containers
250 template< class T, class Ctx >
251 system::result<T>
252 119x value_to_impl(
253 sequence_category, try_value_to_tag<T>, value const& jv, Ctx const& ctx )
254 {
255 119x array const* arr = jv.if_array();
256 119x if( !arr )
257 {
258 12x system::error_code ec;
259 12x BOOST_JSON_FAIL(ec, error::not_array);
260 12x return {boost::system::in_place_error, ec};
261 }
262
263 79x T result;
264 107x error const e = detail::try_reserve(
265 result, arr->size(), reserve_implementation<T>());
266 107x if( e != error() )
267 {
268 18x system::error_code ec;
269 18x BOOST_JSON_FAIL( ec, e );
270 18x return {boost::system::in_place_error, ec};
271 }
272
273 89x auto ins = detail::inserter(result, inserter_implementation<T>());
274 3344x for( value const& val: *arr )
275 {
276 3229x auto elem_res = try_value_to<value_type<T>>( val, ctx );
277 3229x if( elem_res.has_error() )
278 13x return {boost::system::in_place_error, elem_res.error()};
279 3216x *ins++ = std::move(*elem_res);
280 }
281 76x return result;
282 79x }
283
284 // tuple-like types
285 template< class T, class Ctx >
286 system::result<T>
287 248x try_make_tuple_elem(value const& jv, Ctx const& ctx, system::error_code& ec)
288 {
289 248x if( ec.failed() )
290 38x return {boost::system::in_place_error, ec};
291
292 210x auto result = try_value_to<T>( jv, ctx );
293 210x ec = result.error();
294 210x return result;
295 57x }
296
297 template <class T, class Ctx, std::size_t... Is>
298 system::result<T>
299 97x try_make_tuple_like(
300 array const& arr, Ctx const& ctx, boost::mp11::index_sequence<Is...>)
301 {
302 97x system::error_code ec;
303 115x auto items = std::make_tuple(
304 try_make_tuple_elem<
305 117x typename std::decay<tuple_element_t<Is, T>>::type >(
306 arr[Is], ctx, ec)
307 ...);
308 #if defined(BOOST_GCC)
309 # pragma GCC diagnostic push
310 # pragma GCC diagnostic ignored "-Wmaybe-uninitialized"
311 #endif
312 97x if( ec.failed() )
313 13x return {boost::system::in_place_error, ec};
314 #if defined(BOOST_GCC)
315 # pragma GCC diagnostic pop
316 #endif
317
318 #if defined(BOOST_CLANG)
319 # pragma clang diagnostic push
320 # pragma clang diagnostic ignored "-Wmissing-braces"
321 #endif
322 return {
323 boost::system::in_place_value,
324 87x T{ (std::move(*std::get<Is>(items)))... }
325 87x };
326 #if defined(BOOST_CLANG)
327 # pragma clang diagnostic pop
328 #endif
329 54x }
330
331 template< class T, class Ctx >
332 system::result<T>
333 121x value_to_impl(
334 tuple_category, try_value_to_tag<T>, value const& jv, Ctx const& ctx )
335 {
336 121x system::error_code ec;
337
338 121x array const* arr = jv.if_array();
339 121x if( !arr )
340 {
341 12x BOOST_JSON_FAIL(ec, error::not_array);
342 12x return {boost::system::in_place_error, ec};
343 }
344
345 109x constexpr std::size_t N = std::tuple_size<remove_cvref<T>>::value;
346 109x if( N != arr->size() )
347 {
348 12x BOOST_JSON_FAIL(ec, error::size_mismatch);
349 12x return {boost::system::in_place_error, ec};
350 }
351
352 37x return try_make_tuple_like<T>(
353 97x *arr, ctx, boost::mp11::make_index_sequence<N>());
354 }
355
356 template< class Ctx, class T >
357 struct to_described_member
358 {
359 static_assert(
360 uniquely_named_members<T>::value,
361 "The type has several described members with the same name.");
362
363 using Ds = described_members<T>;
364
365 system::result<T>& res;
366 object const& obj;
367 Ctx const& ctx;
368
369 template< class I >
370 void
371 operator()(I)
372 {
373 if( !res )
374 return;
375
376 using D = mp11::mp_at<Ds, I>;
377 using M = described_member_t<T, D>;
378
379 auto const found = obj.find(D::name);
380 if( found == obj.end() )
381 {
382 BOOST_IF_CONSTEXPR( !is_optional_like<M>::value )
383 {
384 system::error_code ec;
385 BOOST_JSON_FAIL(ec, error::size_mismatch);
386 res = {boost::system::in_place_error, ec};
387 }
388 return;
389 }
390
391 #if defined(__GNUC__) && BOOST_GCC_VERSION >= 80000 && BOOST_GCC_VERSION < 11000
392 # pragma GCC diagnostic push
393 # pragma GCC diagnostic ignored "-Wunused"
394 # pragma GCC diagnostic ignored "-Wunused-variable"
395 #endif
396 auto member_res = try_value_to<M>( found->value(), ctx );
397 #if defined(__GNUC__) && BOOST_GCC_VERSION >= 80000 && BOOST_GCC_VERSION < 11000
398 # pragma GCC diagnostic pop
399 #endif
400 if( member_res )
401 (*res).* D::pointer = std::move(*member_res);
402 else
403 res = {boost::system::in_place_error, member_res.error()};
404 }
405 };
406
407 // described classes
408 template< class T, class Ctx >
409 system::result<T>
410 value_to_impl(
411 described_class_category,
412 try_value_to_tag<T>,
413 value const& jv,
414 Ctx const& ctx )
415 {
416 BOOST_CORE_STATIC_ASSERT( std::is_default_constructible<T>::value );
417 system::result<T> res;
418
419 auto* obj = jv.if_object();
420 if( !obj )
421 {
422 system::error_code ec;
423 BOOST_JSON_FAIL(ec, error::not_object);
424 res = {boost::system::in_place_error, ec};
425 return res;
426 }
427
428 to_described_member<Ctx, T> member_converter{res, *obj, ctx};
429
430 using Ds = typename decltype(member_converter)::Ds;
431 constexpr std::size_t N = mp11::mp_size<Ds>::value;
432 mp11::mp_for_each< mp11::mp_iota_c<N> >(member_converter);
433
434 if( !res )
435 return res;
436
437 return res;
438 }
439
440 // described enums
441 template< class T, class Ctx >
442 system::result<T>
443 value_to_impl(
444 described_enum_category,
445 try_value_to_tag<T>,
446 value const& jv,
447 Ctx const& )
448 {
449 T val = {};
450 (void)jv;
451 #ifdef BOOST_DESCRIBE_CXX14
452 system::error_code ec;
453
454 auto str = jv.if_string();
455 if( !str )
456 {
457 BOOST_JSON_FAIL(ec, error::not_string);
458 return {system::in_place_error, ec};
459 }
460
461 if( !describe::enum_from_string(str->data(), val) )
462 {
463 BOOST_JSON_FAIL(ec, error::unknown_name);
464 return {system::in_place_error, ec};
465 }
466 #endif
467
468 return {system::in_place_value, val};
469 }
470
471 // optionals
472 template< class T, class Ctx >
473 system::result<T>
474 value_to_impl(
475 optional_category,
476 try_value_to_tag<T>,
477 value const& jv,
478 Ctx const& ctx)
479 {
480 using Inner = value_result_type<T>;
481 if( jv.is_null() )
482 return {};
483 else
484 return try_value_to<Inner>(jv, ctx);
485 }
486
487 // variants
488 template< class T, class V, class I >
489 using variant_construction_category = mp11::mp_cond<
490 std::is_constructible< T, variant2::in_place_index_t<I::value>, V >,
491 mp11::mp_int<2>,
492 #ifndef BOOST_NO_CXX17_HDR_VARIANT
493 std::is_constructible< T, std::in_place_index_t<I::value>, V >,
494 mp11::mp_int<1>,
495 #endif // BOOST_NO_CXX17_HDR_VARIANT
496 mp11::mp_true,
497 mp11::mp_int<0> >;
498
499 template< class T, class I, class V >
500 T
501 initialize_variant( V&& v, mp11::mp_int<0> )
502 {
503 T t;
504 t.template emplace<I::value>( std::move(v) );
505 return t;
506 }
507
508 template< class T, class I, class V >
509 T
510 initialize_variant( V&& v, mp11::mp_int<2> )
511 {
512 return T( variant2::in_place_index_t<I::value>(), std::move(v) );
513 }
514
515 #ifndef BOOST_NO_CXX17_HDR_VARIANT
516 template< class T, class I, class V >
517 T
518 initialize_variant( V&& v, mp11::mp_int<1> )
519 {
520 return T( std::in_place_index_t<I::value>(), std::move(v) );
521 }
522 #endif // BOOST_NO_CXX17_HDR_VARIANT
523
524
525 template< class T, class Ctx >
526 struct alternative_converter
527 {
528 system::result<T>& res;
529 value const& jv;
530 Ctx const& ctx;
531
532 template< class I >
533 void operator()( I ) const
534 {
535 if( res )
536 return;
537
538 using V = mp11::mp_at<T, I>;
539 auto attempt = try_value_to<V>(jv, ctx);
540 if( attempt )
541 {
542 using cat = variant_construction_category<T, V, I>;
543 res = initialize_variant<T, I>( std::move(*attempt), cat() );
544 }
545 }
546 };
547
548 template< class T, class Ctx >
549 system::result<T>
550 value_to_impl(
551 variant_category,
552 try_value_to_tag<T>,
553 value const& jv,
554 Ctx const& ctx)
555 {
556 system::error_code ec;
557 BOOST_JSON_FAIL(ec, error::exhausted_variants);
558
559 using Is = mp11::mp_iota< mp11::mp_size<T> >;
560
561 system::result<T> res = {system::in_place_error, ec};
562 mp11::mp_for_each<Is>( alternative_converter<T, Ctx>{res, jv, ctx} );
563 return res;
564 }
565
566 template< class T, class Ctx >
567 system::result<T>
568 value_to_impl(
569 path_category, try_value_to_tag<T>, value const& jv, Ctx const& )
570 {
571 auto str = jv.if_string();
572 if( !str )
573 {
574 system::error_code ec;
575 BOOST_JSON_FAIL(ec, error::not_string);
576 return {boost::system::in_place_error, ec};
577 }
578
579 string_view sv = str->subview();
580 return {boost::system::in_place_value, T( sv.begin(), sv.end() )};
581 }
582
583 //----------------------------------------------------------
584 // User-provided conversions; throwing -> throwing
585 template< class T, class Ctx >
586 mp11::mp_if< mp11::mp_valid<has_user_conversion_to_impl, T>, T >
587 1x value_to_impl(
588 user_category, value_to_tag<T> tag, value const& jv, Ctx const&)
589 {
590 1x return tag_invoke(tag, jv);
591 }
592
593 template<
594 class T,
595 class Ctx,
596 class Sup = supported_context<Ctx, T, value_to_conversion>
597 >
598 mp11::mp_if<
599 mp11::mp_valid< has_context_conversion_to_impl, typename Sup::type, T>, T >
600 1x value_to_impl(
601 user_context_category,
602 value_to_tag<T> tag,
603 value const& jv,
604 Ctx const& ctx )
605 {
606 1x return tag_invoke( tag, jv, Sup::get(ctx) );
607 }
608
609 template<
610 class T,
611 class Ctx,
612 class Sup = supported_context<Ctx, T, value_to_conversion>
613 >
614 mp11::mp_if<
615 mp11::mp_valid<
616 has_full_context_conversion_to_impl, typename Sup::type, T>,
617 T>
618 value_to_impl(
619 user_full_context_category,
620 value_to_tag<T> tag,
621 value const& jv,
622 Ctx const& ctx )
623 {
624 return tag_invoke( tag, jv, Sup::get(ctx), ctx );
625 }
626
627 //----------------------------------------------------------
628 // User-provided conversions; throwing -> nonthrowing
629 template< class T, class Ctx >
630 mp11::mp_if_c< !mp11::mp_valid<has_user_conversion_to_impl, T>::value, T>
631 60x value_to_impl(
632 user_category, value_to_tag<T>, value const& jv, Ctx const& )
633 {
634 60x auto res = tag_invoke(try_value_to_tag<T>(), jv);
635 60x if( res.has_error() )
636 12x throw_system_error( res.error() );
637 96x return std::move(*res);
638 32x }
639
640 template<
641 class T,
642 class Ctx,
643 class Sup = supported_context<Ctx, T, value_to_conversion>
644 >
645 mp11::mp_if_c<
646 !mp11::mp_valid<
647 has_context_conversion_to_impl, typename Sup::type, T>::value,
648 T>
649 3x value_to_impl(
650 user_context_category, value_to_tag<T>, value const& jv, Ctx const& ctx )
651 {
652 3x auto res = tag_invoke( try_value_to_tag<T>(), jv, Sup::get(ctx) );
653 3x if( res.has_error() )
654 1x throw_system_error( res.error() );
655 4x return std::move(*res);
656 }
657
658 template<
659 class T,
660 class Ctx,
661 class Sup = supported_context<Ctx, T, value_to_conversion>
662 >
663 mp11::mp_if_c<
664 !mp11::mp_valid<
665 has_full_context_conversion_to_impl, typename Sup::type, T>::value,
666 T>
667 value_to_impl(
668 user_full_context_category,
669 value_to_tag<T>,
670 value const& jv,
671 Ctx const& ctx )
672 {
673 auto res = tag_invoke(try_value_to_tag<T>(), jv, Sup::get(ctx), ctx);
674 if( res.has_error() )
675 throw_system_error( res.error() );
676 return std::move(*res);
677 }
678
679 //----------------------------------------------------------
680 // User-provided conversions; nonthrowing -> nonthrowing
681 template< class T, class Ctx >
682 mp11::mp_if<
683 mp11::mp_valid<
684 has_nonthrowing_user_conversion_to_impl, T>, system::result<T> >
685 124x value_to_impl(
686 user_category, try_value_to_tag<T>, value const& jv, Ctx const& )
687 {
688 132x return tag_invoke(try_value_to_tag<T>(), jv);
689 }
690
691 template<
692 class T,
693 class Ctx,
694 class Sup = supported_context<Ctx, T, value_to_conversion>
695 >
696 mp11::mp_if<
697 mp11::mp_valid<
698 has_nonthrowing_context_conversion_to_impl, typename Sup::type, T>,
699 system::result<T> >
700 value_to_impl(
701 user_context_category,
702 try_value_to_tag<T> tag,
703 value const& jv,
704 Ctx const& ctx )
705 {
706 return tag_invoke( tag, jv, Sup::get(ctx) );
707 }
708
709 template<
710 class T,
711 class Ctx,
712 class Sup = supported_context<Ctx, T, value_to_conversion>
713 >
714 mp11::mp_if<
715 mp11::mp_valid<
716 has_nonthrowing_full_context_conversion_to_impl,
717 typename Sup::type,
718 T>,
719 system::result<T> >
720 value_to_impl(
721 user_full_context_category,
722 try_value_to_tag<T> tag,
723 value const& jv,
724 Ctx const& ctx )
725 {
726 return tag_invoke( tag, jv, Sup::get(ctx), ctx );
727 }
728
729 //----------------------------------------------------------
730 // User-provided conversions; nonthrowing -> throwing
731
732 template< class T, class... Args >
733 system::result<T>
734 54x wrap_conversion_exceptions( value_to_tag<T>, Args&& ... args )
735 {
736 #ifndef BOOST_NO_EXCEPTIONS
737 try
738 {
739 #endif
740 return {
741 boost::system::in_place_value,
742 54x tag_invoke( value_to_tag<T>(), static_cast<Args&&>(args)... )};
743 #ifndef BOOST_NO_EXCEPTIONS
744 }
745 30x catch( std::bad_alloc const&)
746 {
747 6x throw;
748 }
749 12x catch( system::system_error const& e)
750 {
751 12x return {boost::system::in_place_error, e.code()};
752 }
753 12x catch( ... )
754 {
755 6x system::error_code ec;
756 6x BOOST_JSON_FAIL(ec, error::exception);
757 6x return {boost::system::in_place_error, ec};
758 }
759 #endif
760 }
761
762 template< class T, class Ctx >
763 mp11::mp_if_c<
764 !mp11::mp_valid<has_nonthrowing_user_conversion_to_impl, T>::value,
765 system::result<T> >
766 54x value_to_impl(
767 user_category, try_value_to_tag<T>, value const& jv, Ctx const& )
768 {
769 54x return wrap_conversion_exceptions(value_to_tag<T>(), jv);
770 }
771
772 template<
773 class T,
774 class Ctx,
775 class Sup = supported_context<Ctx, T, value_to_conversion>
776 >
777 mp11::mp_if_c<
778 !mp11::mp_valid<
779 has_nonthrowing_context_conversion_to_impl,
780 typename Sup::type,
781 T>::value,
782 system::result<T> >
783 value_to_impl(
784 user_context_category,
785 try_value_to_tag<T>,
786 value const& jv,
787 Ctx const& ctx )
788 {
789 return wrap_conversion_exceptions( value_to_tag<T>(), jv, Sup::get(ctx) );
790 }
791
792 template<
793 class T,
794 class Ctx,
795 class Sup = supported_context<Ctx, T, value_to_conversion>
796 >
797 mp11::mp_if_c<
798 !mp11::mp_valid<
799 has_nonthrowing_full_context_conversion_to_impl,
800 typename Sup::type,
801 T>::value,
802 system::result<T> >
803 value_to_impl(
804 user_full_context_category,
805 try_value_to_tag<T>,
806 value const& jv,
807 Ctx const& ctx )
808 {
809 return wrap_conversion_exceptions(
810 value_to_tag<T>(), jv, Sup::get(ctx), ctx);
811 }
812
813 // no suitable conversion implementation
814 template< class T, class Ctx >
815 T
816 value_to_impl( unknown_category, value_to_tag<T>, value const&, Ctx const& )
817 {
818 static_assert(
819 !std::is_same<T, T>::value,
820 "No suitable tag_invoke overload found for the type");
821 }
822
823 // generic wrapper over non-throwing implementations
824 template< class Impl, class T, class Ctx >
825 T
826 345x value_to_impl( Impl impl, value_to_tag<T>, value const& jv, Ctx const& ctx )
827 {
828 345x return value_to_impl(impl, try_value_to_tag<T>(), jv, ctx).value();
829 }
830
831 template< class Ctx, class T >
832 using value_to_category = extended_conversion_category<
833 Ctx, T, value_to_conversion >;
834
835 } // detail
836
837 #ifndef BOOST_NO_CXX17_HDR_OPTIONAL
838 inline
839 system::result<std::nullopt_t>
840 tag_invoke(
841 try_value_to_tag<std::nullopt_t>,
842 value const& jv)
843 {
844 if( jv.is_null() )
845 return std::nullopt;
846 system::error_code ec;
847 BOOST_JSON_FAIL(ec, error::not_null);
848 return ec;
849 }
850 #endif
851
852 } // namespace json
853 } // namespace boost
854
855 #endif
856