...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 n+m dimentional *. Samples in this dataset is grid of elements in DataSet1 and DataSet2. There will be total |DataSet1| * |DataSet2| samples.
namespace boost { namespace unit_test { namespace data { namespace monomorphic { template<typename DataSet1, typename DataSet2> class grid; template<typename DataSet1, typename DataSet2> struct is_dataset<grid< DataSet1, DataSet2 >>; // Grid operation. template<typename DataSet1, typename DataSet2> boost::lazy_enable_if_c< is_dataset< DataSet1 >::value &&is_dataset< DataSet2 >::value, result_of::grid< mpl::identity< DataSet1 >, mpl::identity< DataSet2 > > >::type operator*(DataSet1 && ds1, DataSet2 && ds2); template<typename DataSet1, typename DataSet2> boost::lazy_enable_if_c< is_dataset< DataSet1 >::value &&!is_dataset< DataSet2 >::value, result_of::grid< mpl::identity< DataSet1 >, data::result_of::make< DataSet2 > > >::type operator*(DataSet1 && ds1, DataSet2 && ds2); template<typename DataSet1, typename DataSet2> boost::lazy_enable_if_c<!is_dataset< DataSet1 >::value &&is_dataset< DataSet2 >::value, result_of::grid< data::result_of::make< DataSet1 >, mpl::identity< DataSet2 > > >::type operator*(DataSet1 && ds1, DataSet2 && ds2); namespace result_of { template<typename DS1Gen, typename DS2Gen> struct grid; } } } } }