#ifndef BOOST_ICL_DETAIL_CO_EQUAL_FWD_HPP_JOFA_20251205 #define BOOST_ICL_DETAIL_CO_EQUAL_FWD_HPP_JOFA_20251205 // Lightweight forward-declarations of co_equal overloads that match the real // SFINAE-enabled definitions. This avoids an unconstrained generic template // competing with the real overloads and producing ambiguous calls. // // Includes mirror the headers needed for the traits used in the enable_if // conditions. Adjust includes if your project places these traits elsewhere. #include #include // provides is_map, is_key_compare_equal, etc. #include #include #include // boost::enable_if namespace boost { namespace icl { // Overload used when both containers are maps and key-compare-equal: template typename boost::enable_if< boost::mpl::and_< is_key_compare_equal, boost::mpl::and_< is_map, is_map > >, bool >::type co_equal(typename Type::const_iterator left_, typename CoType::const_iterator right_, const Type* = 0, const CoType* = 0); // Overload used when key-compare-equal but not both maps template typename boost::enable_if< boost::mpl::and_< is_key_compare_equal, boost::mpl::not_< boost::mpl::and_< is_map, is_map > > >, bool >::type co_equal(typename Type::const_iterator, typename CoType::const_iterator, const Type* = 0, const CoType* = 0); }} // namespace boost::icl #endif // BOOST_ICL_DETAIL_CO_EQUAL_FWD_HPP_JOFA_20251205