Boost C++ Libraries of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards


Class template grid

boost::unit_test::data::monomorphic::grid — Implements the dataset resulting from a cartesian product/grid operation on datasets.


// In header: <boost/test/data/monomorphic/grid.hpp>

template<typename DataSet1, typename DataSet2> 
class grid {
  // member classes/structs/unions

  struct iterator {
    // types
    typedef decltype(sample_merge(*std::declval< dataset1_iter >(), *std::declval< dataset2_iter >())) iterator_sample;

    // construct/copy/destruct
    explicit iterator(dataset1_iter, DataSet2 const &);

    // public member functions
    auto operator*() const;
    void operator++();
  // construct/copy/destruct
  grid(DataSet1 &&, DataSet2 &&);
  grid(grid &&);

  // public member functions
  data::size_t size() const;
  iterator begin() const;

  // public data members
  static const int arity;


The arity of the resulting dataset is the sum of the arity of its operands.

grid public construct/copy/destruct

  1. grid(DataSet1 && ds1, DataSet2 && ds2);
  2. grid(grid && j);
    Move constructor.

grid public member functions

  1. data::size_t size() const;
  2. iterator begin() const;