36 auto gen_tuple = std::make_tuple(std::move(gens)...);
39 return std::apply([&tc](
auto&... g) {
return T(g.do_draw(tc)...); },
50 template <auto MemberPtr,
typename Gen>
struct Field {
72 template <auto MemberPtr,
typename Gen>
101 template <
typename T,
typename... Fields>
103 auto gen_tuple = std::make_tuple(std::move(fields)...);
108 [&result, &tc](
auto&... fs) {
110 (std::remove_reference_t<
decltype(fs)>::member_ptr) =
111 fs.generator.do_draw(tc)),
Handle to the currently-executing test case.
Definition test_case.h:34
The base class of all generators.
Definition core.h:157
Hegel generators.
Definition core.h:16
Generator< T > builds(Gens... gens)
Construct objects using positional constructor arguments.
Definition builds.h:35
Field< MemberPtr, Gen > field(Gen gen)
Create a field specification for builds_agg().
Definition builds.h:73
auto compose(F &&fn)
*/
Definition core.h:360
Generator< T > builds_agg(Fields... fields)
Construct aggregates using named field initialization.
Definition builds.h:102
Helper for named field initialization in builds_agg().
Definition builds.h:50
static constexpr auto member_ptr
The member pointer.
Definition builds.h:51
Gen generator
Generator for the field value.
Definition builds.h:52