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 join

boost::unit_test::data::monomorphic::join — Defines a new dataset from the concatenation of two datasets.


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

template<typename DataSet1, typename DataSet2> 
class join {
  // types
  typedef typename std::conditional< std::is_reference< iter1_ret >::value &&std::is_reference< iter2_ret >::value &&std::is_same< iter1_ret, iter2_ret >::value, iter1_ret, typename std::remove_reference< iter1_ret >::type >::type sample_t;

  // member classes/structs/unions

  struct iterator {
    // construct/copy/destruct
    explicit iterator(dataset1_iter &&, dataset2_iter &&, data::size_t);

    // public member functions
    sample_t operator *() const;
    void operator++();

  // construct/copy/destruct
  join(DataSet1 &&, DataSet2 &&);
  join(join &&);

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

  // public data members
  static const int arity;


The size of the resulting dataset is the sum of the two underlying datasets. The arity of the datasets should match.

join public construct/copy/destruct

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

join public member functions

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