]>
Commit | Line | Data |
---|---|---|
7c673cae FG |
1 | // Copyright 2016 Klemens Morgenstern |
2 | // | |
3 | // Distributed under the Boost Software License, Version 1.0. | |
4 | // (See accompanying file LICENSE_1_0.txt | |
5 | // or copy at http://www.boost.org/LICENSE_1_0.txt) | |
6 | ||
7 | // For more information, see http://www.boost.org | |
8 | ||
9 | #ifndef BOOST_DLL_DETAIL_GET_MEM_FN_TYPE_HPP_ | |
10 | #define BOOST_DLL_DETAIL_GET_MEM_FN_TYPE_HPP_ | |
11 | ||
12 | namespace boost { namespace dll { namespace detail { | |
13 | ||
14 | template<typename Class, typename Func> | |
15 | struct get_mem_fn_type; | |
16 | ||
17 | template<typename Class, typename Return, typename ...Args> | |
18 | struct get_mem_fn_type<Class, Return(Args...)> { | |
19 | typedef Return (Class::*mem_fn)(Args...); | |
20 | }; | |
21 | ||
22 | template<typename Class, typename Return, typename ...Args> | |
23 | struct get_mem_fn_type<const Class, Return(Args...)> { | |
24 | typedef Return (Class::*mem_fn)(Args...) const ; | |
25 | }; | |
26 | ||
27 | template<typename Class, typename Return, typename ...Args> | |
28 | struct get_mem_fn_type<volatile Class, Return(Args...)> { | |
29 | typedef Return (Class::*mem_fn)(Args...) volatile; | |
30 | }; | |
31 | ||
32 | template<typename Class, typename Return, typename ...Args> | |
33 | struct get_mem_fn_type<const volatile Class, Return(Args...)> { | |
34 | typedef Return (Class::*mem_fn)(Args...) const volatile ; | |
35 | }; | |
36 | ||
37 | }}} // namespace boost::dll::detail | |
38 | ||
39 | ||
40 | #endif /* BOOST_DLL_SMART_LIBRARY_HPP_ */ |