13#ifndef RANGES_V3_FUNCTIONAL_ARITHMETIC_HPP
14#define RANGES_V3_FUNCTIONAL_ARITHMETIC_HPP
18#include <range/v3/detail/prologue.hpp>
26 template<
typename T,
typename U>
27 constexpr auto operator()(T && t, U && u)
const ->
decltype((T &&) t + (U &&) u)
29 return (T &&) t + (U &&) u;
31 using is_transparent = void;
36 template<
typename T,
typename U>
37 constexpr auto operator()(T && t, U && u)
const ->
decltype((T &&) t - (U &&) u)
39 return (T &&) t - (U &&) u;
41 using is_transparent = void;
46 template<
typename T,
typename U>
47 constexpr auto operator()(T && t, U && u)
const ->
decltype((T &&) t * (U &&) u)
49 return (T &&) t * (U &&) u;
51 using is_transparent = void;
56 template<
typename T,
typename U>
57 constexpr auto operator()(T && t, U && u)
const ->
decltype((T &&) t | (U &&) u)
59 return (T &&) t | (U &&) u;
61 using is_transparent = void;
69 constexpr auto CPP_auto_fun(
operator())(U &&u)(
const)
71 return static_cast<T
>((U &&) u)
79 constexpr T & operator()(T & t)
const
93 T operator()(T
const &&)
const =
delete;
110#include <range/v3/detail/epilogue.hpp>
Definition arithmetic.hpp:55
Definition arithmetic.hpp:78
constexpr T operator()(T &&t) const
This is an overloaded member function, provided for convenience. It differs from the above function o...
Definition arithmetic.hpp:89
constexpr T const & operator()(T const &t) const
This is an overloaded member function, provided for convenience. It differs from the above function o...
Definition arithmetic.hpp:84
Definition arithmetic.hpp:66
Definition arithmetic.hpp:35
Definition arithmetic.hpp:45
Definition arithmetic.hpp:25