mimic++ v9.2.1
Loading...
Searching...
No Matches
Call.hpp
Go to the documentation of this file.
1// Copyright Dominic (DNKpp) Koepke 2024 - 2025.
2// Distributed under the Boost Software License, Version 1.0.
3// (See accompanying file LICENSE_1_0.txt or copy at
4// https://www.boost.org/LICENSE_1_0.txt)
5
6#ifndef MIMICPP_CALL_HPP
7#define MIMICPP_CALL_HPP
8
9#pragma once
10
11#include "mimic++/Fwd.hpp"
15
16#ifndef MIMICPP_DETAIL_IS_MODULE
17 #include <cstddef>
18 #include <functional>
19 #include <tuple>
20 #include <type_traits>
21#endif
22
24{
25 template <typename Return, typename... Args>
26 class Info
27 {
28 public:
29 using ArgListT = std::tuple<std::reference_wrapper<std::remove_reference_t<Args>>...>;
30
35 std::size_t baseStacktraceSkip{};
36 };
37
38 template <typename Signature>
41 : public info_for_signature<signature_decay_t<Signature>>
43 {
44 };
45
46 template <typename Signature>
48
49 template <typename Return, typename... Args>
50 struct info_for_signature<Return(Args...)>
51 {
52 using type = Info<Return, Args...>;
53 };
54}
55
56#endif
Definition Call.hpp:27
ValueCategory fromCategory
Definition Call.hpp:32
util::SourceLocation fromSourceLocation
Definition Call.hpp:34
std::size_t baseStacktraceSkip
Definition Call.hpp:35
ArgListT args
Definition Call.hpp:31
std::tuple< std::reference_wrapper< std::remove_reference_t< Args > >... > ArgListT
Definition Call.hpp:29
Constness fromConstness
Definition Call.hpp:33
A thin wrapper around general source-location info.
Definition SourceLocation.hpp:38
Definition Call.hpp:24
typename info_for_signature< Signature >::type info_for_signature_t
Definition Call.hpp:47
ValueCategory
Definition Fwd.hpp:34
Constness
Definition Fwd.hpp:27
Info< Return, Args... > type
Definition Call.hpp:52
Definition Call.hpp:43