EasyLocalAPI reference iolab-uniud/easylocal

easylocal::trace::tracer_for

A tracer that says, with observes<Event>, whether it receives Event, and that has emit(event) when it does.

Synopsis

Declared in <easylocal/trace/tracer.hpp>

template<
    class Tracer,
    class Event>
concept tracer_for = requires {
    { std::remove_cvref_t<Tracer>::template observes<Event> } ->
        std::convertible_to<bool>;
} && (
    !std::remove_cvref_t<Tracer>::template observes<Event> ||
    requires(Tracer& tracer, const Event& event) {
        tracer.emit(event);
    });