5#ifndef INCLUDE_GUARD_ARENE_BASE_STDLIB_INCLUDE_STDLIB_DETAIL_MULTIPLIES_HPP_
6#define INCLUDE_GUARD_ARENE_BASE_STDLIB_INCLUDE_STDLIB_DETAIL_MULTIPLIES_HPP_
14#include "arene/base/constraints.hpp"
15#include "stdlib/include/stdlib_detail/declval.hpp"
16#include "stdlib/include/stdlib_detail/enable_if.hpp"
17#include "stdlib/include/stdlib_detail/forward.hpp"
18#include "stdlib/include/stdlib_detail/is_integral.hpp"
26template <
class T =
void>
30 using result_type = T;
32 using first_argument_type = T;
34 using second_argument_type = T;
58 return static_cast<
T>(
lhs *
rhs);
68 using is_transparent =
void;
78 template <
class T,
class U>
79 constexpr auto operator()(T&& lhs, U&& rhs)
const
82 return std::forward<T>(lhs) * std::forward<U>(rhs);
constexpr auto operator()(T &&lhs, U &&rhs) const noexcept(noexcept(std::forward< T >(std::declval< T & >()) *std::forward< U >(std::declval< U & >()))) ->
Returns the first value multiplied by second value.
Definition multiplies.hpp:79
Function object for performing multiplication.
Definition multiplies.hpp:27
constexpr auto operator()(::arene::base::result< void, E > const &value) const noexcept(noexcept(hash< E >{}(std::declval< E const & >()))) -> std::size_t
Calculate the hash of a result.
Definition result.hpp:1827