mirror of
https://github.com/Atmosphere-NX/Atmosphere.git
synced 2025-05-23 03:06:52 -04:00
Stratosphere: Add WrapIpcCommandImpl templating.
This commit is contained in:
parent
b5d3ce04e8
commit
7a2cfa4d60
80 changed files with 6694 additions and 162 deletions
|
@ -0,0 +1,53 @@
|
|||
/*
|
||||
|
||||
@Copyright Barrett Adair 2015-2017
|
||||
Distributed under the Boost Software License, Version 1.0.
|
||||
(See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
|
||||
|
||||
*/
|
||||
|
||||
#ifndef BOOST_CLBL_TRTS_DETAIL_PMD_HPP
|
||||
#define BOOST_CLBL_TRTS_DETAIL_PMD_HPP
|
||||
|
||||
#include <boost/callable_traits/detail/forward_declarations.hpp>
|
||||
#include <boost/callable_traits/detail/function.hpp>
|
||||
#include <boost/callable_traits/detail/traits.hpp>
|
||||
#include <boost/callable_traits/detail/default_callable_traits.hpp>
|
||||
#include <boost/callable_traits/detail/utility.hpp>
|
||||
|
||||
namespace boost { namespace callable_traits { namespace detail {
|
||||
|
||||
template<typename T>
|
||||
struct pmd : default_callable_traits<T> {};
|
||||
|
||||
template<typename D, typename T>
|
||||
struct pmd<D T::*> : default_callable_traits<> {
|
||||
|
||||
static constexpr bool value = true;
|
||||
|
||||
using traits = pmd;
|
||||
using class_type = T;
|
||||
using invoke_type = T const &;
|
||||
using type = D T::*;
|
||||
using function_type = typename std::add_lvalue_reference<D>::type(invoke_type);
|
||||
using qualified_function_type = D(invoke_type);
|
||||
using arg_types = std::tuple<invoke_type>;
|
||||
using non_invoke_arg_types = std::tuple<>;
|
||||
|
||||
using return_type = typename std::add_lvalue_reference<D>::type;
|
||||
|
||||
template<typename C>
|
||||
using apply_member_pointer = D C::*;
|
||||
|
||||
template<typename R>
|
||||
using apply_return = R T::*;
|
||||
|
||||
template<template<class...> class Container>
|
||||
using expand_args = Container<invoke_type>;
|
||||
|
||||
using is_member_pointer = std::true_type;
|
||||
};
|
||||
|
||||
}}} // namespace boost::callable_traits::detail
|
||||
|
||||
#endif
|
Loading…
Add table
Add a link
Reference in a new issue