halcheck 1.0
Loading...
Searching...
No Matches

◆ schedule()

template<typename F >
lib::dag< lib::tuple_element_t< 1, lib::invoke_result_t< F, lib::atom > > > halcheck::gen::schedule ( lib::atom id,
F func )

Generates a random lib::dag.

Template Parameters
FThe type of function used to generate labels.
Parameters
idA unique identifier for the generated value.
funcA function used to generate labels.
Returns
A random lib::dag whose labels are generated via func.

This function participates in overload resolution only if the following conditions hold:

  1. lib::is_invocable<F, lib::atom>() holds.
  2. std::tuple_size<lib::invoke_result_t<F, lib::atom>>() == 2.
  3. lib::is_range<lib::tuple_element_t<0, lib::invoke_result_t<F, lib::atom>>>() holds.
  4. lib::is_hashable<lib::range_value_t<lib::tuple_element_t<0, lib::invoke_result_t<F, lib::atom>>>>() holds.
  5. lib::is_equality_comparable<lib::range_value_t<lib::tuple_element_t<0, lib::invoke_result_t<F, lib::atom>>>>() holds.