LeechCraft 0.6.70-14794-g33744ae6ce
Modular cross-platform feature rich live environment.
Loading...
Searching...
No Matches
overload.h
Go to the documentation of this file.
1/**********************************************************************
2 * LeechCraft - modular cross-platform feature rich internet client.
3 * Copyright (C) 2006-2014 Georg Rudoy
4 *
5 * Distributed under the Boost Software License, Version 1.0.
6 * (See accompanying file LICENSE or copy at https://www.boost.org/LICENSE_1_0.txt)
7 **********************************************************************/
8
9#pragma once
10
11namespace LC
12{
13namespace Util
14{
15 template<typename... Args>
17 {
18 template<typename R, typename C>
19 constexpr auto operator() (R (C::*f) (Args...)) const
20 {
21 return f;
22 }
23
24 template<typename R, typename C>
25 constexpr auto operator() (R (C::*f) (Args...) const) const
26 {
27 return f;
28 }
29
30 template<typename R>
31 constexpr auto operator() (R (*f) (Args...)) const
32 {
33 return f;
34 }
35 };
36
37 template<typename... Args>
38 constexpr OverloadBase<Args...> Overload {};
39}
40}
constexpr OverloadBase< Args... > Overload
Definition: overload.h:38
Definition: constants.h:15
constexpr auto operator()(R(C::*f)(Args...)) const
Definition: overload.h:19