forked from panda3d/panda3d
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathfunctional
More file actions
153 lines (125 loc) · 4.41 KB
/
functional
File metadata and controls
153 lines (125 loc) · 4.41 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
/**
* PANDA 3D SOFTWARE
* Copyright (c) Carnegie Mellon University. All rights reserved.
*
* All use of this software is subject to the terms of the revised BSD
* license. You should have received a copy of this license along
* with this source code in a file named "LICENSE."
*
* @file functional
* @author tobspr
* @date 2016-11-01
*/
// This file, and all the other files in this directory, aren't
// intended to be compiled--they're just parsed by CPPParser (and
// interrogate) in lieu of the actual system headers, to generate the
// interrogate database.
#ifndef FUNCTIONAL_H
#define FUNCTIONAL_H
#include <stddef.h>
namespace std {
// base (deprecated):
template <class Arg, class Result> struct unary_function;
template <class Arg1, class Arg2, class Result> struct binary_function;
// reference_wrapper:
template <class T> class reference_wrapper;
// arithmetic operations:
template <class T> struct plus;
template <class T> struct minus;
template <class T> struct multiplies;
template <class T> struct divides;
template <class T> struct modulus;
template <class T> struct negate;
// comparisons:
template <class T> struct equal_to;
template <class T> struct not_equal_to;
template <class T> struct greater;
template <class T> struct less;
template <class T> struct greater_equal;
template <class T> struct less_equal;
// logical operations:
template <class T> struct logical_and;
template <class T> struct logical_or;
template <class T> struct logical_not;
// bitwise operations:
template <class T> struct bit_and;
template <class T> struct bit_or;
template <class T> struct bit_xor;
// negators:
template <class Predicate> class unary_negate;
template <class Predicate> class binary_negate;
// bind:
template<class T> struct is_bind_expression;
template<class T> struct is_placeholder;
namespace placeholders {
// M is the implementation-defined number of placeholders
// (8 should be enough for interrogate)
extern char _1;
extern char _2;
extern char _3;
extern char _4;
extern char _5;
extern char _6;
extern char _7;
extern char _8;
}
// binders (deprecated):
template <class Fn> class binder1st;
template <class Fn> class binder2nd;
// adaptors (deprecated):
template <class Arg, class Result> class pointer_to_unary_function;
template <class Arg1, class Arg2, class Result>
class pointer_to_binary_function;
// adaptors (deprecated):
template<class S, class T> class mem_fun_t;
template<class S, class T, class A> class mem_fun1_t;
template<class S, class T> class mem_fun_ref_t;
template<class S, class T, class A> class mem_fun1_ref_t;
template <class S, class T> class const_mem_fun_t;
template <class S, class T, class A> class const_mem_fun1_t;
template <class S, class T> class const_mem_fun_ref_t;
template <class S, class T, class A> class const_mem_fun1_ref_t;
// polymorphic function wrappers:
class bad_function_call;
// hash function base template:
template <class T> struct hash;
// Hash function specializations
template <> struct hash<bool>;
template <> struct hash<char>;
template <> struct hash<signed char>;
template <> struct hash<unsigned char>;
template <> struct hash<char16_t>;
template <> struct hash<char32_t>;
template <> struct hash<wchar_t>;
template <> struct hash<short>;
template <> struct hash<unsigned short>;
template <> struct hash<int>;
template <> struct hash<unsigned int>;
template <> struct hash<long>;
template <> struct hash<long long>;
template <> struct hash<unsigned long>;
template <> struct hash<unsigned long long>;
template <> struct hash<float>;
template <> struct hash<double>;
template <> struct hash<long double>;
template<class T> struct hash<T*>;
template <class T> class reference_wrapper {
public :
// types
typedef T type;
typedef void result_type; // not always defined
typedef void argument_type; // not always defined
typedef void first_argument_type; // not always defined
typedef void second_argument_type; // not always defined
};
template<class T> struct is_bind_expression {};
// : integral_constant<bool, true> {};
class bad_function_call : public std::exception {};
// template<class> class function; // undefined
template< class R, class... ArgTypes >
class function {
public:
typedef R result_type;
};
}
#endif