sieve module

namespace cauldron

Typedefs

using cauldron::Requirement = typedef std::function<bool(Product)>

Variables

const unsigned MAX_CYCLES = 1'000
class OutOfCycles
#include <sieve.h>

Inherits from exception

Public Functions

OutOfCycles(unsigned max_cycles)
const char *what() const

Private Members

std::string msg_
template <typename Product>
class Sieve
#include <sieve.h>

Public Functions

Sieve(unsigned max_cycles = MAX_CYCLES)
Sieve(std::initializer_list<Requirement<Product>> requirements, unsigned max_cycles = MAX_CYCLES)
Sieve(const std::vector<Requirement<Product>> &requirements, unsigned max_cycles = MAX_CYCLES)
bool satisfactory(Product product) const
Sieve<Product> expand(const Requirement<Product> &requirement) const
Product sift(std::function<Product()> producer) const

Protected Attributes

std::vector<Requirement<Product>> requirements_
unsigned max_cycles_