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
84 constexpr T
const & operator()(T
const & t)
const
89 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
Definition: arithmetic.hpp:66
Definition: arithmetic.hpp:35
Definition: arithmetic.hpp:45
Definition: arithmetic.hpp:25