...one of the most highly
regarded and expertly designed C++ library projects in the
world.
— Herb Sutter and Andrei
Alexandrescu, C++
Coding Standards
Defines monomorphic dataset based on zipping of 2 other monomorphic datasets.
namespace boost { namespace unit_test { namespace data { namespace monomorphic { template<typename DS1, typename DS2> struct is_dataset<zip< DS1, DS2 >>; template<typename DS1, typename DS2> class zip; // <purpose>Overload operator for zip support. </purpose> template<typename DS1, typename DS2> boost::lazy_enable_if_c< is_dataset< DS1 >::value &&is_dataset< DS2 >::value, result_of::zip< mpl::identity< DS1 >, mpl::identity< DS2 > >>::type operator^(DS1 && ds1, DS2 && ds2); template<typename DS1, typename DS2> boost::lazy_enable_if_c< is_dataset< DS1 >::value &&!is_dataset< DS2 >::value, result_of::zip< mpl::identity< DS1 >, data::result_of::make< DS2 > >>::type operator^(DS1 && ds1, DS2 && ds2); template<typename DS1, typename DS2> boost::lazy_enable_if_c<!is_dataset< DS1 >::value &&is_dataset< DS2 >::value, result_of::zip< data::result_of::make< DS1 >, mpl::identity< DS2 > >>::type operator^(DS1 && ds1, DS2 && ds2); namespace result_of { template<typename DS1Gen, typename DS2Gen> struct zip; } } } } }