detail/value_to.hpp

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