6#ifndef MIMICPP_CALL_HPP
7#define MIMICPP_CALL_HPP
15#include <source_location>
19namespace mimicpp::call::detail
21 template <
typename... Args, std::size_t... indices>
23 constexpr bool is_equal_param_list(
24 const std::tuple<std::reference_wrapper<Args>...>& lhs,
25 const std::tuple<std::reference_wrapper<Args>...>& rhs,
26 const std::index_sequence<indices...>
32 std::get<indices>(lhs).get())
34 std::get<indices>(rhs).get())));
40 template <
typename Return,
typename... Args>
44 using ArgListT = std::tuple<std::reference_wrapper<std::remove_reference_t<Args>>...>;
54 return lhs.fromCategory == rhs.fromCategory
55 && lhs.fromConstness == rhs.fromConstness
56 && detail::is_equal_param_list(lhs.args, rhs.args, std::index_sequence_for<Args...>{})
61 template <
typename Signature>
67 template <
typename Signature>
70 template <
typename Return,
typename... Args>
ValueCategory fromCategory
Definition Call.hpp:47
friend bool operator==(const Info &lhs, const Info &rhs)
Definition Call.hpp:52
std::source_location fromSourceLocation
Definition Call.hpp:49
ArgListT args
Definition Call.hpp:46
std::tuple< std::reference_wrapper< std::remove_reference_t< Args > >... > ArgListT
Definition Call.hpp:44
Constness fromConstness
Definition Call.hpp:48
typename info_for_signature< Signature >::type info_for_signature_t
Definition Call.hpp:68
constexpr bool is_same_source_location(const std::source_location &lhs, const std::source_location &rhs) noexcept
Definition Utility.hpp:116
ValueCategory
Definition Utility.hpp:35
Constness
Definition Utility.hpp:21