4#include "utility/module.hpp"
15 virtual void operator()()
const noexcept = 0;
20template<
typename Functor>
24 process_call_functors[name] = *
this;
27 std::string_view name()
const noexcept
29 return typeid(Functor).name();
32 void operator()()
const noexcept override
38template<
typename Functor>
41void process_call_trampoline(std::string_view name, std::string_view data)
43 auto it = process_call_functors.find(name);
44 if (it == process_call_functors.end()) {
45 throw key_error(std::format(
"Functor '{}' not registered", name));
58template<
typename Functor>
61 static_assert(
requires { Functor{}(data); },
"process_call() must be called with functor.");
63 auto &functor = global_process_call_functor<Functor>:
68 args.push_back(process_name());
69 args.push_back(std::format(
"--process-call={},{}", functor.name(), data));
DOXYGEN BUG.
Definition algorithm.hpp:13
geometry/margins.hpp
Definition cache.hpp:11
void process_call(Functor &&functor, std::string_view data)
Call a function in a new process.
Definition process.hpp:59
Definition process.hpp:12
Definition process.hpp:21
Definition exception.hpp:195