35template <
typename Tools,
typename Func,
typename... Args,
36 typename Ret = std::result_of_t<Func(Args...)>,
37 std::enable_if_t<!std::is_same<Ret, void>::value,
int> = 0>
41 using tool_t =
typename Tools::component_type;
42 tool_t _obj{ std::forward<string_view_t>(label) };
43 _obj.construct(std::forward<Args>(args)...);
45 Ret ret = func(std::forward<Args>(args)...);
50template <
typename Tools,
typename Func,
typename... Args,
51 typename Ret = std::result_of_t<Func(Args...)>,
52 std::enable_if_t<std::is_same<Ret, void>::value,
int> = 0>
56 using tool_t =
typename Tools::component_type;
57 tool_t _obj{ std::forward<string_view_t>(label) };
58 _obj.construct(std::forward<Args>(args)...);
60 func(std::forward<Args>(args)...);
Ret invoke(string_view_t &&label, Func &&func, Args &&... args)
std::string string_view_t