Ice 3.7 C++11 API Reference
Loading...
Searching...
No Matches
Functional.h
Go to the documentation of this file.
1//
2// Copyright (c) ZeroC, Inc. All rights reserved.
3//
4
5#ifndef ICE_FUNCTIONAL_H
6#define ICE_FUNCTIONAL_H
7
8#include <IceUtil/Config.h>
9
10#if !defined(ICE_CPP11_MAPPING) && (ICE_CPLUSPLUS < 201703L)
11
12#include <IceUtil/Functional.h>
13#include <Ice/Handle.h>
14
15// ----------------------------------------------------------------------
16// Inline functions that return function objects that work with
17// IceInternal::Handle
18// ----------------------------------------------------------------------
19
20namespace Ice
21{
22
24template<class R, class T>
25inline ::IceUtilInternal::MemFun<R, T, ICE_INTERNAL_HANDLE<T> >
26memFun(R (T::*p)(void))
27{
28 return ::IceUtilInternal::MemFun<R, T, ICE_INTERNAL_HANDLE<T> >(p);
29}
30
31template<class R, class T, class A>
32inline ::IceUtilInternal::MemFun1<R, T, ICE_INTERNAL_HANDLE<T>, A>
33memFun1(R (T::*p)(A))
34{
35 return ::IceUtilInternal::MemFun1<R, T, ICE_INTERNAL_HANDLE<T>, A>(p);
36}
37
38template<class T>
39inline ::IceUtilInternal::VoidMemFun<T, ICE_INTERNAL_HANDLE<T> >
40voidMemFun(void (T::*p)(void))
41{
42 return ::IceUtilInternal::VoidMemFun<T, ICE_INTERNAL_HANDLE<T> >(p);
43}
44
45template<class T, class A>
46inline ::IceUtilInternal::VoidMemFun1<T, ICE_INTERNAL_HANDLE<T>, A>
47voidMemFun1(void (T::*p)(A))
48{
49 return ::IceUtilInternal::VoidMemFun1<T, ICE_INTERNAL_HANDLE<T>, A>(p);
50}
51
52template<class R, class K, class T>
53inline ::IceUtilInternal::SecondMemFun<R, K, T, ICE_INTERNAL_HANDLE<T> >
54secondMemFun(R (T::*p)(void))
55{
56 return ::IceUtilInternal::SecondMemFun<R, K, T, ICE_INTERNAL_HANDLE<T> >(p);
57}
58
59template<class R, class K, class T, class A>
60inline ::IceUtilInternal::SecondMemFun1<R, K, T, ICE_INTERNAL_HANDLE<T>, A>
61secondMemFun1(R (T::*p)(A))
62{
63 return ::IceUtilInternal::SecondMemFun1<R, K, T, ICE_INTERNAL_HANDLE<T>, A>(p);
64}
65
66template<class K, class T>
67inline ::IceUtilInternal::SecondVoidMemFun<K, T, ICE_INTERNAL_HANDLE<T> >
68secondVoidMemFun(void (T::*p)(void))
69{
70 return ::IceUtilInternal::SecondVoidMemFun<K, T, ICE_INTERNAL_HANDLE<T> >(p);
71}
72
73template<class K, class T, class A>
74inline ::IceUtilInternal::SecondVoidMemFun1<K, T, ICE_INTERNAL_HANDLE<T>, A>
75secondVoidMemFun1(void (T::*p)(A))
76{
77 return ::IceUtilInternal::SecondVoidMemFun1<K, T, ICE_INTERNAL_HANDLE<T>, A>(p);
78}
79
80template<class R, class T>
81inline ::IceUtilInternal::ConstMemFun<R, T, ICE_INTERNAL_HANDLE<T> >
82constMemFun(R (T::*p)(void) const)
83{
84 return ::IceUtilInternal::ConstMemFun<R, T, ICE_INTERNAL_HANDLE<T> >(p);
85}
86
87template<class R, class T, class A>
88inline ::IceUtilInternal::ConstMemFun1<R, T, ICE_INTERNAL_HANDLE<T>, A>
89constMemFun1(R (T::*p)(A) const)
90{
91 return ::IceUtilInternal::ConstMemFun1<R, T, ICE_INTERNAL_HANDLE<T>, A>(p);
92}
93
94template<class T>
95inline ::IceUtilInternal::ConstVoidMemFun<T, ICE_INTERNAL_HANDLE<T> >
96constVoidMemFun(void (T::*p)(void) const)
97{
98 return ::IceUtilInternal::ConstVoidMemFun<T, ICE_INTERNAL_HANDLE<T> >(p);
99}
100
101template<class T, class A>
102inline ::IceUtilInternal::ConstVoidMemFun1<T, ICE_INTERNAL_HANDLE<T>, A>
103constVoidMemFun1(void (T::*p)(A) const)
104{
105 return ::IceUtilInternal::ConstVoidMemFun1<T, ICE_INTERNAL_HANDLE<T>, A>(p);
106}
107
108template<class R, class K, class T>
109inline ::IceUtilInternal::SecondConstMemFun<R, K, T, ICE_INTERNAL_HANDLE<T> >
110secondConstMemFun(R (T::*p)(void) const)
111{
112 return ::IceUtilInternal::SecondConstMemFun<R, K, T, ICE_INTERNAL_HANDLE<T> >(p);
113}
114
115template<class R, class K, class T, class A>
116inline ::IceUtilInternal::SecondConstMemFun1<R, K, T, ICE_INTERNAL_HANDLE<T>, A>
117secondConstMemFun1(R (T::*p)(A) const)
118{
119 return ::IceUtilInternal::SecondConstMemFun1<R, K, T, ICE_INTERNAL_HANDLE<T>, A>(p);
120}
121
122template<class K, class T>
123inline ::IceUtilInternal::SecondConstVoidMemFun<K, T, ICE_INTERNAL_HANDLE<T> >
124secondConstVoidMemFun(void (T::*p)(void) const)
125{
126 return ::IceUtilInternal::SecondConstVoidMemFun<K, T, ICE_INTERNAL_HANDLE<T> >(p);
127}
128
129template<class K, class T, class A>
130inline ::IceUtilInternal::SecondConstVoidMemFun1<K, T, ICE_INTERNAL_HANDLE<T>, A>
131secondConstVoidMemFun1(void (T::*p)(A) const)
132{
133 return ::IceUtilInternal::SecondConstVoidMemFun1<K, T, ICE_INTERNAL_HANDLE<T>, A>(p);
134}
136
137}
138
139# endif
140#endif
Definition BuiltinSequences.h:56