proxsuite 0.6.7
The Advanced Proximal Optimization Toolbox
Loading...
Searching...
No Matches
invocable.hpp
Go to the documentation of this file.
1#ifndef VEG_INVOCABLE_HPP_GVSWRKAYS
2#define VEG_INVOCABLE_HPP_GVSWRKAYS
3
7
8namespace proxsuite {
9namespace linalg {
10namespace veg {
11namespace _detail {
12namespace _meta {
13template<typename Fn, typename... Args>
14using call_expr = decltype(VEG_DECLVAL(Fn&&)(VEG_DECLVAL(Args&&)...));
15} // namespace _meta
16} // namespace _detail
17namespace meta {
18template<typename Fn, typename... Args>
21} // namespace meta
22
23namespace concepts {
24VEG_CONCEPT_EXPR((typename Fn, typename Ret, typename... Args),
25 (Fn, Ret, Args...),
26 fn_once,
29
30VEG_CONCEPT_EXPR((typename Fn, typename Ret, typename... Args),
31 (Fn, Ret, Args...),
32 fn_mut,
35
36VEG_CONCEPT_EXPR((typename Fn, typename Ret, typename... Args),
37 (Fn, Ret, Args...),
38 fn,
39 VEG_DECLVAL(Fn const&)(VEG_DECLVAL(Args&&)...),
41} // namespace concepts
42} // namespace veg
43} // namespace linalg
44} // namespace proxsuite
45
47#endif /* end of include guard VEG_INVOCABLE_HPP_GVSWRKAYS */
#define VEG_CONCEPT_EXPR(Tpl, TplNames, Name, Expr,...)
Definition macros.hpp:272
#define VEG_CONCEPT(...)
Definition macros.hpp:1243
#define VEG_DECLVAL(...)
Definition macros.hpp:131
decltype(VEG_DECLVAL(Fn &&)(VEG_DECLVAL(Args &&)...)) call_expr
Definition invocable.hpp:14