|
template<class A1 , class Op , class A2 > |
constexpr auto | mpc::infixr (A1 &&a1, Op &&op, A2 &&a2) noexcept(noexcept(std::invoke(std::forward< Op >(op), std::forward< A1 >(a1), std::forward< A2 >(a2)))) -> decltype(std::invoke(std::forward< Op >(op), std::forward< A1 >(a1), std::forward< A2 >(a2))) |
| Implements the right-associative infix notation. More...
|
|
template<class A1 , class Op , class... Args> |
constexpr auto | mpc::infixr (A1 &&a1, Op &&op, Args &&... args) noexcept(noexcept(std::invoke(std::forward< Op >(op), std::forward< A1 >(a1), infixr(std::forward< Args >(args)...)))) -> decltype(std::invoke(std::forward< Op >(op), std::forward< A1 >(a1), infixr(std::forward< Args >(args)...))) |
| Another overloaded function of infixr.
|
|
template<class A1 , class Op , class A2 > |
constexpr auto | mpc::infixl (A1 &&a1, Op &&op, A2 &&a2) noexcept(noexcept(std::invoke(std::forward< Op >(op), std::forward< A1 >(a1), std::forward< A2 >(a2)))) -> decltype(std::invoke(std::forward< Op >(op), std::forward< A1 >(a1), std::forward< A2 >(a2))) |
| Implements the left-associative infix notation. More...
|
|
template<class A1 , class Op , class A2 , class... Args> |
constexpr auto | mpc::infixl (A1 &&a1, Op &&op, A2 &&a2, Args &&... args) noexcept(noexcept(infixl(std::invoke(std::forward< Op >(op), std::forward< A1 >(a1), std::forward< A2 >(a2)), std::forward< Args >(args)...))) -> decltype(infixl(std::invoke(std::forward< Op >(op), std::forward< A1 >(a1), std::forward< A2 >(a2)), std::forward< Args >(args)...)) |
| Another overloaded function of infixl.
|
|