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 generated_by

boost::unit_test::data::monomorphic::generated_by — Generators interface.


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

template<typename Generator> 
class generated_by {
  // types
  typedef Generator::sample sample;        
  typedef Generator         generator_type;

  // member classes/structs/unions

  struct iterator {
    // construct/copy/destruct
    explicit iterator(Generator &);

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

  // construct/copy/destruct
  explicit generated_by(Generator &&);
  generated_by(generated_by &&);

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

  // public data members
  static const int arity;


This class implements the dataset concept over a generator. Examples of generators are:

The generator concept is the following:

  • the type of the generated samples is given by field sample

  • the member function capacity should return the size of the collection being generated (potentially infinite)

  • the member function next should change the state of the generator to the next generated value

  • the member function reset should put the state of the object in the same state as right after its instanciation

generated_by public construct/copy/destruct

  1. explicit generated_by(Generator && G);
  2. generated_by(generated_by && rhs);

generated_by public member functions

  1. data::size_t size() const;
    Size of the underlying dataset.
  2. iterator begin() const;
    Iterator on the beginning of the dataset.