1 | /**
|
---|
2 | * @file FP.cpp
|
---|
3 | * @brief Core Utility - Templated Function Pointer Class
|
---|
4 | * @author sam grove
|
---|
5 | * @version 1.0
|
---|
6 | * @see
|
---|
7 | *
|
---|
8 | * Copyright (c) 2013
|
---|
9 | *
|
---|
10 | * Licensed under the Apache License, Version 2.0 (the "License");
|
---|
11 | * you may not use this file except in compliance with the License.
|
---|
12 | * You may obtain a copy of the License at
|
---|
13 | *
|
---|
14 | * http://www.apache.org/licenses/LICENSE-2.0
|
---|
15 | *
|
---|
16 | * Unless required by applicable law or agreed to in writing, software
|
---|
17 | * distributed under the License is distributed on an "AS IS" BASIS,
|
---|
18 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
---|
19 | * See the License for the specific language governing permissions and
|
---|
20 | * limitations under the License.
|
---|
21 | */
|
---|
22 |
|
---|
23 | #include "FP.h"
|
---|
24 | #include <stdint.h>
|
---|
25 |
|
---|
26 | template<class retT, class argT>
|
---|
27 | FP<retT, argT>::FP()
|
---|
28 | {
|
---|
29 | obj_callback = 0;
|
---|
30 | c_callback = 0;
|
---|
31 | }
|
---|
32 |
|
---|
33 | template<class retT, class argT>
|
---|
34 | bool FP<retT, argT>::attached()
|
---|
35 | {
|
---|
36 | return obj_callback || c_callback;
|
---|
37 | }
|
---|
38 |
|
---|
39 |
|
---|
40 | template<class retT, class argT>
|
---|
41 | void FP<retT, argT>::detach()
|
---|
42 | {
|
---|
43 | obj_callback = 0;
|
---|
44 | c_callback = 0;
|
---|
45 | }
|
---|
46 |
|
---|
47 |
|
---|
48 | template<class retT, class argT>
|
---|
49 | void FP<retT, argT>::attach(retT (*function)(argT))
|
---|
50 | {
|
---|
51 | c_callback = function;
|
---|
52 | }
|
---|
53 |
|
---|
54 | template<class retT, class argT>
|
---|
55 | retT FP<retT, argT>::operator()(argT arg) const
|
---|
56 | {
|
---|
57 | if( 0 != c_callback )
|
---|
58 | {
|
---|
59 | return obj_callback ? (obj_callback->*method_callback)(arg) : (*c_callback)(arg);
|
---|
60 | }
|
---|
61 | return (retT)0;
|
---|
62 | }
|
---|
63 |
|
---|
64 | // pre-define the types for the linker
|
---|
65 | template class FP<void,char>;
|
---|
66 | template class FP<void,char*>;
|
---|
67 | template class FP<void,int8_t>;
|
---|
68 | template class FP<void,int8_t*>;
|
---|
69 | template class FP<void,uint8_t>;
|
---|
70 | template class FP<void,uint8_t*>;
|
---|
71 | template class FP<void,int16_t>;
|
---|
72 | template class FP<void,int16_t*>;
|
---|
73 | template class FP<void,uint16_t>;
|
---|
74 | template class FP<void,uint16_t*>;
|
---|
75 | template class FP<void,int32_t>;
|
---|
76 | template class FP<void,int32_t*>;
|
---|
77 | template class FP<void,uint32_t>;
|
---|
78 | template class FP<void,uint32_t*>;
|
---|
79 | template class FP<void,int64_t>;
|
---|
80 | template class FP<void,int64_t*>;
|
---|
81 | template class FP<void,uint64_t>;
|
---|
82 | template class FP<void,uint64_t*>;
|
---|
83 | template class FP<void,bool>;
|
---|
84 | template class FP<void,bool*>;
|
---|
85 | template class FP<void,float>;
|
---|
86 | template class FP<void,float*>;
|
---|
87 | template class FP<void,double>;
|
---|
88 | template class FP<void,double*>;
|
---|
89 | template class FP<void,void*>;
|
---|
90 |
|
---|
91 | template class FP<int8_t,char>;
|
---|
92 | template class FP<int8_t,char*>;
|
---|
93 | template class FP<int8_t,int8_t>;
|
---|
94 | template class FP<int8_t,int8_t*>;
|
---|
95 | template class FP<int8_t,uint8_t>;
|
---|
96 | template class FP<int8_t,uint8_t*>;
|
---|
97 | template class FP<int8_t,int16_t>;
|
---|
98 | template class FP<int8_t,int16_t*>;
|
---|
99 | template class FP<int8_t,uint16_t>;
|
---|
100 | template class FP<int8_t,uint16_t*>;
|
---|
101 | template class FP<int8_t,int32_t>;
|
---|
102 | template class FP<int8_t,int32_t*>;
|
---|
103 | template class FP<int8_t,uint32_t>;
|
---|
104 | template class FP<int8_t,uint32_t*>;
|
---|
105 | template class FP<int8_t,int64_t>;
|
---|
106 | template class FP<int8_t,int64_t*>;
|
---|
107 | template class FP<int8_t,uint64_t>;
|
---|
108 | template class FP<int8_t,uint64_t*>;
|
---|
109 | template class FP<int8_t,bool>;
|
---|
110 | template class FP<int8_t,bool*>;
|
---|
111 | template class FP<int8_t,float>;
|
---|
112 | template class FP<int8_t,float*>;
|
---|
113 | template class FP<int8_t,double>;
|
---|
114 | template class FP<int8_t,double*>;
|
---|
115 |
|
---|
116 | template class FP<int8_t*,char>;
|
---|
117 | template class FP<int8_t*,char*>;
|
---|
118 | template class FP<int8_t*,int8_t>;
|
---|
119 | template class FP<int8_t*,int8_t*>;
|
---|
120 | template class FP<int8_t*,uint8_t>;
|
---|
121 | template class FP<int8_t*,uint8_t*>;
|
---|
122 | template class FP<int8_t*,int16_t>;
|
---|
123 | template class FP<int8_t*,int16_t*>;
|
---|
124 | template class FP<int8_t*,uint16_t>;
|
---|
125 | template class FP<int8_t*,uint16_t*>;
|
---|
126 | template class FP<int8_t*,int32_t>;
|
---|
127 | template class FP<int8_t*,int32_t*>;
|
---|
128 | template class FP<int8_t*,uint32_t>;
|
---|
129 | template class FP<int8_t*,uint32_t*>;
|
---|
130 | template class FP<int8_t*,int64_t>;
|
---|
131 | template class FP<int8_t*,int64_t*>;
|
---|
132 | template class FP<int8_t*,uint64_t>;
|
---|
133 | template class FP<int8_t*,uint64_t*>;
|
---|
134 | template class FP<int8_t*,bool>;
|
---|
135 | template class FP<int8_t*,bool*>;
|
---|
136 | template class FP<int8_t*,float>;
|
---|
137 | template class FP<int8_t*,float*>;
|
---|
138 | template class FP<int8_t*,double>;
|
---|
139 | template class FP<int8_t*,double*>;
|
---|
140 |
|
---|
141 | template class FP<uint8_t,char>;
|
---|
142 | template class FP<uint8_t,char*>;
|
---|
143 | template class FP<uint8_t,int8_t>;
|
---|
144 | template class FP<uint8_t,int8_t*>;
|
---|
145 | template class FP<uint8_t,uint8_t>;
|
---|
146 | template class FP<uint8_t,uint8_t*>;
|
---|
147 | template class FP<uint8_t,int16_t>;
|
---|
148 | template class FP<uint8_t,int16_t*>;
|
---|
149 | template class FP<uint8_t,uint16_t>;
|
---|
150 | template class FP<uint8_t,uint16_t*>;
|
---|
151 | template class FP<uint8_t,int32_t>;
|
---|
152 | template class FP<uint8_t,int32_t*>;
|
---|
153 | template class FP<uint8_t,uint32_t>;
|
---|
154 | template class FP<uint8_t,uint32_t*>;
|
---|
155 | template class FP<uint8_t,int64_t>;
|
---|
156 | template class FP<uint8_t,int64_t*>;
|
---|
157 | template class FP<uint8_t,uint64_t>;
|
---|
158 | template class FP<uint8_t,uint64_t*>;
|
---|
159 | template class FP<uint8_t,bool>;
|
---|
160 | template class FP<uint8_t,bool*>;
|
---|
161 | template class FP<uint8_t,float>;
|
---|
162 | template class FP<uint8_t,float*>;
|
---|
163 | template class FP<uint8_t,double>;
|
---|
164 | template class FP<uint8_t,double*>;
|
---|
165 |
|
---|
166 | template class FP<uint8_t*,char>;
|
---|
167 | template class FP<uint8_t*,char*>;
|
---|
168 | template class FP<uint8_t*,int8_t>;
|
---|
169 | template class FP<uint8_t*,int8_t*>;
|
---|
170 | template class FP<uint8_t*,uint8_t>;
|
---|
171 | template class FP<uint8_t*,uint8_t*>;
|
---|
172 | template class FP<uint8_t*,int16_t>;
|
---|
173 | template class FP<uint8_t*,int16_t*>;
|
---|
174 | template class FP<uint8_t*,uint16_t>;
|
---|
175 | template class FP<uint8_t*,uint16_t*>;
|
---|
176 | template class FP<uint8_t*,int32_t>;
|
---|
177 | template class FP<uint8_t*,int32_t*>;
|
---|
178 | template class FP<uint8_t*,uint32_t>;
|
---|
179 | template class FP<uint8_t*,uint32_t*>;
|
---|
180 | template class FP<uint8_t*,int64_t>;
|
---|
181 | template class FP<uint8_t*,int64_t*>;
|
---|
182 | template class FP<uint8_t*,uint64_t>;
|
---|
183 | template class FP<uint8_t*,uint64_t*>;
|
---|
184 | template class FP<uint8_t*,bool>;
|
---|
185 | template class FP<uint8_t*,bool*>;
|
---|
186 | template class FP<uint8_t*,float>;
|
---|
187 | template class FP<uint8_t*,float*>;
|
---|
188 | template class FP<uint8_t*,double>;
|
---|
189 | template class FP<uint8_t*,double*>;
|
---|
190 |
|
---|
191 | template class FP<int16_t,char>;
|
---|
192 | template class FP<int16_t,char*>;
|
---|
193 | template class FP<int16_t,int8_t>;
|
---|
194 | template class FP<int16_t,int8_t*>;
|
---|
195 | template class FP<int16_t,uint8_t>;
|
---|
196 | template class FP<int16_t,uint8_t*>;
|
---|
197 | template class FP<int16_t,int16_t>;
|
---|
198 | template class FP<int16_t,int16_t*>;
|
---|
199 | template class FP<int16_t,uint16_t>;
|
---|
200 | template class FP<int16_t,uint16_t*>;
|
---|
201 | template class FP<int16_t,int32_t>;
|
---|
202 | template class FP<int16_t,int32_t*>;
|
---|
203 | template class FP<int16_t,uint32_t>;
|
---|
204 | template class FP<int16_t,uint32_t*>;
|
---|
205 | template class FP<int16_t,int64_t>;
|
---|
206 | template class FP<int16_t,int64_t*>;
|
---|
207 | template class FP<int16_t,uint64_t>;
|
---|
208 | template class FP<int16_t,uint64_t*>;
|
---|
209 | template class FP<int16_t,bool>;
|
---|
210 | template class FP<int16_t,bool*>;
|
---|
211 | template class FP<int16_t,float>;
|
---|
212 | template class FP<int16_t,float*>;
|
---|
213 | template class FP<int16_t,double>;
|
---|
214 | template class FP<int16_t,double*>;
|
---|
215 |
|
---|
216 | template class FP<int16_t*,char>;
|
---|
217 | template class FP<int16_t*,char*>;
|
---|
218 | template class FP<int16_t*,int8_t>;
|
---|
219 | template class FP<int16_t*,int8_t*>;
|
---|
220 | template class FP<int16_t*,uint8_t>;
|
---|
221 | template class FP<int16_t*,uint8_t*>;
|
---|
222 | template class FP<int16_t*,int16_t>;
|
---|
223 | template class FP<int16_t*,int16_t*>;
|
---|
224 | template class FP<int16_t*,uint16_t>;
|
---|
225 | template class FP<int16_t*,uint16_t*>;
|
---|
226 | template class FP<int16_t*,int32_t>;
|
---|
227 | template class FP<int16_t*,int32_t*>;
|
---|
228 | template class FP<int16_t*,uint32_t>;
|
---|
229 | template class FP<int16_t*,uint32_t*>;
|
---|
230 | template class FP<int16_t*,int64_t>;
|
---|
231 | template class FP<int16_t*,int64_t*>;
|
---|
232 | template class FP<int16_t*,uint64_t>;
|
---|
233 | template class FP<int16_t*,uint64_t*>;
|
---|
234 | template class FP<int16_t*,bool>;
|
---|
235 | template class FP<int16_t*,bool*>;
|
---|
236 | template class FP<int16_t*,float>;
|
---|
237 | template class FP<int16_t*,float*>;
|
---|
238 | template class FP<int16_t*,double>;
|
---|
239 | template class FP<int16_t*,double*>;
|
---|
240 |
|
---|
241 | template class FP<uint16_t,char>;
|
---|
242 | template class FP<uint16_t,char*>;
|
---|
243 | template class FP<uint16_t,int8_t>;
|
---|
244 | template class FP<uint16_t,int8_t*>;
|
---|
245 | template class FP<uint16_t,uint8_t>;
|
---|
246 | template class FP<uint16_t,uint8_t*>;
|
---|
247 | template class FP<uint16_t,int16_t>;
|
---|
248 | template class FP<uint16_t,int16_t*>;
|
---|
249 | template class FP<uint16_t,uint16_t>;
|
---|
250 | template class FP<uint16_t,uint16_t*>;
|
---|
251 | template class FP<uint16_t,int32_t>;
|
---|
252 | template class FP<uint16_t,int32_t*>;
|
---|
253 | template class FP<uint16_t,uint32_t>;
|
---|
254 | template class FP<uint16_t,uint32_t*>;
|
---|
255 | template class FP<uint16_t,int64_t>;
|
---|
256 | template class FP<uint16_t,int64_t*>;
|
---|
257 | template class FP<uint16_t,uint64_t>;
|
---|
258 | template class FP<uint16_t,uint64_t*>;
|
---|
259 | template class FP<uint16_t,bool>;
|
---|
260 | template class FP<uint16_t,bool*>;
|
---|
261 | template class FP<uint16_t,float>;
|
---|
262 | template class FP<uint16_t,float*>;
|
---|
263 | template class FP<uint16_t,double>;
|
---|
264 | template class FP<uint16_t,double*>;
|
---|
265 |
|
---|
266 | template class FP<uint16_t*,char>;
|
---|
267 | template class FP<uint16_t*,char*>;
|
---|
268 | template class FP<uint16_t*,int8_t>;
|
---|
269 | template class FP<uint16_t*,int8_t*>;
|
---|
270 | template class FP<uint16_t*,uint8_t>;
|
---|
271 | template class FP<uint16_t*,uint8_t*>;
|
---|
272 | template class FP<uint16_t*,int16_t>;
|
---|
273 | template class FP<uint16_t*,int16_t*>;
|
---|
274 | template class FP<uint16_t*,uint16_t>;
|
---|
275 | template class FP<uint16_t*,uint16_t*>;
|
---|
276 | template class FP<uint16_t*,int32_t>;
|
---|
277 | template class FP<uint16_t*,int32_t*>;
|
---|
278 | template class FP<uint16_t*,uint32_t>;
|
---|
279 | template class FP<uint16_t*,uint32_t*>;
|
---|
280 | template class FP<uint16_t*,int64_t>;
|
---|
281 | template class FP<uint16_t*,int64_t*>;
|
---|
282 | template class FP<uint16_t*,uint64_t>;
|
---|
283 | template class FP<uint16_t*,uint64_t*>;
|
---|
284 | template class FP<uint16_t*,bool>;
|
---|
285 | template class FP<uint16_t*,bool*>;
|
---|
286 | template class FP<uint16_t*,float>;
|
---|
287 | template class FP<uint16_t*,float*>;
|
---|
288 | template class FP<uint16_t*,double>;
|
---|
289 | template class FP<uint16_t*,double*>;
|
---|
290 |
|
---|
291 | template class FP<int32_t,char>;
|
---|
292 | template class FP<int32_t,char*>;
|
---|
293 | template class FP<int32_t,int8_t>;
|
---|
294 | template class FP<int32_t,int8_t*>;
|
---|
295 | template class FP<int32_t,uint8_t>;
|
---|
296 | template class FP<int32_t,uint8_t*>;
|
---|
297 | template class FP<int32_t,int16_t>;
|
---|
298 | template class FP<int32_t,int16_t*>;
|
---|
299 | template class FP<int32_t,uint16_t>;
|
---|
300 | template class FP<int32_t,uint16_t*>;
|
---|
301 | template class FP<int32_t,int32_t>;
|
---|
302 | template class FP<int32_t,int32_t*>;
|
---|
303 | template class FP<int32_t,uint32_t>;
|
---|
304 | template class FP<int32_t,uint32_t*>;
|
---|
305 | template class FP<int32_t,int64_t>;
|
---|
306 | template class FP<int32_t,int64_t*>;
|
---|
307 | template class FP<int32_t,uint64_t>;
|
---|
308 | template class FP<int32_t,uint64_t*>;
|
---|
309 | template class FP<int32_t,bool>;
|
---|
310 | template class FP<int32_t,bool*>;
|
---|
311 | template class FP<int32_t,float>;
|
---|
312 | template class FP<int32_t,float*>;
|
---|
313 | template class FP<int32_t,double>;
|
---|
314 | template class FP<int32_t,double*>;
|
---|
315 |
|
---|
316 | template class FP<int32_t*,char>;
|
---|
317 | template class FP<int32_t*,char*>;
|
---|
318 | template class FP<int32_t*,int8_t>;
|
---|
319 | template class FP<int32_t*,int8_t*>;
|
---|
320 | template class FP<int32_t*,uint8_t>;
|
---|
321 | template class FP<int32_t*,uint8_t*>;
|
---|
322 | template class FP<int32_t*,int16_t>;
|
---|
323 | template class FP<int32_t*,int16_t*>;
|
---|
324 | template class FP<int32_t*,uint16_t>;
|
---|
325 | template class FP<int32_t*,uint16_t*>;
|
---|
326 | template class FP<int32_t*,int32_t>;
|
---|
327 | template class FP<int32_t*,int32_t*>;
|
---|
328 | template class FP<int32_t*,uint32_t>;
|
---|
329 | template class FP<int32_t*,uint32_t*>;
|
---|
330 | template class FP<int32_t*,int64_t>;
|
---|
331 | template class FP<int32_t*,int64_t*>;
|
---|
332 | template class FP<int32_t*,uint64_t>;
|
---|
333 | template class FP<int32_t*,uint64_t*>;
|
---|
334 | template class FP<int32_t*,bool>;
|
---|
335 | template class FP<int32_t*,bool*>;
|
---|
336 | template class FP<int32_t*,float>;
|
---|
337 | template class FP<int32_t*,float*>;
|
---|
338 | template class FP<int32_t*,double>;
|
---|
339 | template class FP<int32_t*,double*>;
|
---|
340 |
|
---|
341 | template class FP<uint32_t,char>;
|
---|
342 | template class FP<uint32_t,char*>;
|
---|
343 | template class FP<uint32_t,int8_t>;
|
---|
344 | template class FP<uint32_t,int8_t*>;
|
---|
345 | template class FP<uint32_t,uint8_t>;
|
---|
346 | template class FP<uint32_t,uint8_t*>;
|
---|
347 | template class FP<uint32_t,int16_t>;
|
---|
348 | template class FP<uint32_t,int16_t*>;
|
---|
349 | template class FP<uint32_t,uint16_t>;
|
---|
350 | template class FP<uint32_t,uint16_t*>;
|
---|
351 | template class FP<uint32_t,int32_t>;
|
---|
352 | template class FP<uint32_t,int32_t*>;
|
---|
353 | template class FP<uint32_t,uint32_t>;
|
---|
354 | template class FP<uint32_t,uint32_t*>;
|
---|
355 | template class FP<uint32_t,int64_t>;
|
---|
356 | template class FP<uint32_t,int64_t*>;
|
---|
357 | template class FP<uint32_t,uint64_t>;
|
---|
358 | template class FP<uint32_t,uint64_t*>;
|
---|
359 | template class FP<uint32_t,bool>;
|
---|
360 | template class FP<uint32_t,bool*>;
|
---|
361 | template class FP<uint32_t,float>;
|
---|
362 | template class FP<uint32_t,float*>;
|
---|
363 | template class FP<uint32_t,double>;
|
---|
364 | template class FP<uint32_t,double*>;
|
---|
365 |
|
---|
366 | template class FP<uint32_t*,char>;
|
---|
367 | template class FP<uint32_t*,char*>;
|
---|
368 | template class FP<uint32_t*,int8_t>;
|
---|
369 | template class FP<uint32_t*,int8_t*>;
|
---|
370 | template class FP<uint32_t*,uint8_t>;
|
---|
371 | template class FP<uint32_t*,uint8_t*>;
|
---|
372 | template class FP<uint32_t*,int16_t>;
|
---|
373 | template class FP<uint32_t*,int16_t*>;
|
---|
374 | template class FP<uint32_t*,uint16_t>;
|
---|
375 | template class FP<uint32_t*,uint16_t*>;
|
---|
376 | template class FP<uint32_t*,int32_t>;
|
---|
377 | template class FP<uint32_t*,int32_t*>;
|
---|
378 | template class FP<uint32_t*,uint32_t>;
|
---|
379 | template class FP<uint32_t*,uint32_t*>;
|
---|
380 | template class FP<uint32_t*,int64_t>;
|
---|
381 | template class FP<uint32_t*,int64_t*>;
|
---|
382 | template class FP<uint32_t*,uint64_t>;
|
---|
383 | template class FP<uint32_t*,uint64_t*>;
|
---|
384 | template class FP<uint32_t*,bool>;
|
---|
385 | template class FP<uint32_t*,bool*>;
|
---|
386 | template class FP<uint32_t*,float>;
|
---|
387 | template class FP<uint32_t*,float*>;
|
---|
388 | template class FP<uint32_t*,double>;
|
---|
389 | template class FP<uint32_t*,double*>;
|
---|
390 |
|
---|
391 | template class FP<int64_t,char>;
|
---|
392 | template class FP<int64_t,char*>;
|
---|
393 | template class FP<int64_t,int8_t>;
|
---|
394 | template class FP<int64_t,int8_t*>;
|
---|
395 | template class FP<int64_t,uint8_t>;
|
---|
396 | template class FP<int64_t,uint8_t*>;
|
---|
397 | template class FP<int64_t,int16_t>;
|
---|
398 | template class FP<int64_t,int16_t*>;
|
---|
399 | template class FP<int64_t,uint16_t>;
|
---|
400 | template class FP<int64_t,uint16_t*>;
|
---|
401 | template class FP<int64_t,int32_t>;
|
---|
402 | template class FP<int64_t,int32_t*>;
|
---|
403 | template class FP<int64_t,uint32_t>;
|
---|
404 | template class FP<int64_t,uint32_t*>;
|
---|
405 | template class FP<int64_t,int64_t>;
|
---|
406 | template class FP<int64_t,int64_t*>;
|
---|
407 | template class FP<int64_t,uint64_t>;
|
---|
408 | template class FP<int64_t,uint64_t*>;
|
---|
409 | template class FP<int64_t,bool>;
|
---|
410 | template class FP<int64_t,bool*>;
|
---|
411 | template class FP<int64_t,float>;
|
---|
412 | template class FP<int64_t,float*>;
|
---|
413 | template class FP<int64_t,double>;
|
---|
414 | template class FP<int64_t,double*>;
|
---|
415 |
|
---|
416 | template class FP<int64_t*,char>;
|
---|
417 | template class FP<int64_t*,char*>;
|
---|
418 | template class FP<int64_t*,int8_t>;
|
---|
419 | template class FP<int64_t*,int8_t*>;
|
---|
420 | template class FP<int64_t*,uint8_t>;
|
---|
421 | template class FP<int64_t*,uint8_t*>;
|
---|
422 | template class FP<int64_t*,int16_t>;
|
---|
423 | template class FP<int64_t*,int16_t*>;
|
---|
424 | template class FP<int64_t*,uint16_t>;
|
---|
425 | template class FP<int64_t*,uint16_t*>;
|
---|
426 | template class FP<int64_t*,int32_t>;
|
---|
427 | template class FP<int64_t*,int32_t*>;
|
---|
428 | template class FP<int64_t*,uint32_t>;
|
---|
429 | template class FP<int64_t*,uint32_t*>;
|
---|
430 | template class FP<int64_t*,int64_t>;
|
---|
431 | template class FP<int64_t*,int64_t*>;
|
---|
432 | template class FP<int64_t*,uint64_t>;
|
---|
433 | template class FP<int64_t*,uint64_t*>;
|
---|
434 | template class FP<int64_t*,bool>;
|
---|
435 | template class FP<int64_t*,bool*>;
|
---|
436 | template class FP<int64_t*,float>;
|
---|
437 | template class FP<int64_t*,float*>;
|
---|
438 | template class FP<int64_t*,double>;
|
---|
439 | template class FP<int64_t*,double*>;
|
---|
440 |
|
---|
441 | template class FP<uint64_t,char>;
|
---|
442 | template class FP<uint64_t,char*>;
|
---|
443 | template class FP<uint64_t,int8_t>;
|
---|
444 | template class FP<uint64_t,int8_t*>;
|
---|
445 | template class FP<uint64_t,uint8_t>;
|
---|
446 | template class FP<uint64_t,uint8_t*>;
|
---|
447 | template class FP<uint64_t,int16_t>;
|
---|
448 | template class FP<uint64_t,int16_t*>;
|
---|
449 | template class FP<uint64_t,uint16_t>;
|
---|
450 | template class FP<uint64_t,uint16_t*>;
|
---|
451 | template class FP<uint64_t,int32_t>;
|
---|
452 | template class FP<uint64_t,int32_t*>;
|
---|
453 | template class FP<uint64_t,uint32_t>;
|
---|
454 | template class FP<uint64_t,uint32_t*>;
|
---|
455 | template class FP<uint64_t,int64_t>;
|
---|
456 | template class FP<uint64_t,int64_t*>;
|
---|
457 | template class FP<uint64_t,uint64_t>;
|
---|
458 | template class FP<uint64_t,uint64_t*>;
|
---|
459 | template class FP<uint64_t,bool>;
|
---|
460 | template class FP<uint64_t,bool*>;
|
---|
461 | template class FP<uint64_t,float>;
|
---|
462 | template class FP<uint64_t,float*>;
|
---|
463 | template class FP<uint64_t,double>;
|
---|
464 | template class FP<uint64_t,double*>;
|
---|
465 |
|
---|
466 | template class FP<uint64_t*,char>;
|
---|
467 | template class FP<uint64_t*,char*>;
|
---|
468 | template class FP<uint64_t*,int8_t>;
|
---|
469 | template class FP<uint64_t*,int8_t*>;
|
---|
470 | template class FP<uint64_t*,uint8_t>;
|
---|
471 | template class FP<uint64_t*,uint8_t*>;
|
---|
472 | template class FP<uint64_t*,int16_t>;
|
---|
473 | template class FP<uint64_t*,int16_t*>;
|
---|
474 | template class FP<uint64_t*,uint16_t>;
|
---|
475 | template class FP<uint64_t*,uint16_t*>;
|
---|
476 | template class FP<uint64_t*,int32_t>;
|
---|
477 | template class FP<uint64_t*,int32_t*>;
|
---|
478 | template class FP<uint64_t*,uint32_t>;
|
---|
479 | template class FP<uint64_t*,uint32_t*>;
|
---|
480 | template class FP<uint64_t*,int64_t>;
|
---|
481 | template class FP<uint64_t*,int64_t*>;
|
---|
482 | template class FP<uint64_t*,uint64_t>;
|
---|
483 | template class FP<uint64_t*,uint64_t*>;
|
---|
484 | template class FP<uint64_t*,bool>;
|
---|
485 | template class FP<uint64_t*,bool*>;
|
---|
486 | template class FP<uint64_t*,float>;
|
---|
487 | template class FP<uint64_t*,float*>;
|
---|
488 | template class FP<uint64_t*,double>;
|
---|
489 | template class FP<uint64_t*,double*>;
|
---|
490 |
|
---|
491 | template class FP<float,char>;
|
---|
492 | template class FP<float,char*>;
|
---|
493 | template class FP<float,int8_t>;
|
---|
494 | template class FP<float,int8_t*>;
|
---|
495 | template class FP<float,uint8_t>;
|
---|
496 | template class FP<float,uint8_t*>;
|
---|
497 | template class FP<float,int16_t>;
|
---|
498 | template class FP<float,int16_t*>;
|
---|
499 | template class FP<float,uint16_t>;
|
---|
500 | template class FP<float,uint16_t*>;
|
---|
501 | template class FP<float,int32_t>;
|
---|
502 | template class FP<float,int32_t*>;
|
---|
503 | template class FP<float,uint32_t>;
|
---|
504 | template class FP<float,uint32_t*>;
|
---|
505 | template class FP<float,int64_t>;
|
---|
506 | template class FP<float,int64_t*>;
|
---|
507 | template class FP<float,uint64_t>;
|
---|
508 | template class FP<float,uint64_t*>;
|
---|
509 | template class FP<float,bool>;
|
---|
510 | template class FP<float,bool*>;
|
---|
511 | template class FP<float,float>;
|
---|
512 | template class FP<float,float*>;
|
---|
513 | template class FP<float,double>;
|
---|
514 | template class FP<float,double*>;
|
---|
515 |
|
---|
516 | template class FP<float*,char>;
|
---|
517 | template class FP<float*,char*>;
|
---|
518 | template class FP<float*,int8_t>;
|
---|
519 | template class FP<float*,int8_t*>;
|
---|
520 | template class FP<float*,uint8_t>;
|
---|
521 | template class FP<float*,uint8_t*>;
|
---|
522 | template class FP<float*,int16_t>;
|
---|
523 | template class FP<float*,int16_t*>;
|
---|
524 | template class FP<float*,uint16_t>;
|
---|
525 | template class FP<float*,uint16_t*>;
|
---|
526 | template class FP<float*,int32_t>;
|
---|
527 | template class FP<float*,int32_t*>;
|
---|
528 | template class FP<float*,uint32_t>;
|
---|
529 | template class FP<float*,uint32_t*>;
|
---|
530 | template class FP<float*,int64_t>;
|
---|
531 | template class FP<float*,int64_t*>;
|
---|
532 | template class FP<float*,uint64_t>;
|
---|
533 | template class FP<float*,uint64_t*>;
|
---|
534 | template class FP<float*,bool>;
|
---|
535 | template class FP<float*,bool*>;
|
---|
536 | template class FP<float*,float>;
|
---|
537 | template class FP<float*,float*>;
|
---|
538 | template class FP<float*,double>;
|
---|
539 | template class FP<float*,double*>;
|
---|
540 |
|
---|
541 | template class FP<double,char>;
|
---|
542 | template class FP<double,char*>;
|
---|
543 | template class FP<double,int8_t>;
|
---|
544 | template class FP<double,int8_t*>;
|
---|
545 | template class FP<double,uint8_t>;
|
---|
546 | template class FP<double,uint8_t*>;
|
---|
547 | template class FP<double,int16_t>;
|
---|
548 | template class FP<double,int16_t*>;
|
---|
549 | template class FP<double,uint16_t>;
|
---|
550 | template class FP<double,uint16_t*>;
|
---|
551 | template class FP<double,int32_t>;
|
---|
552 | template class FP<double,int32_t*>;
|
---|
553 | template class FP<double,uint32_t>;
|
---|
554 | template class FP<double,uint32_t*>;
|
---|
555 | template class FP<double,int64_t>;
|
---|
556 | template class FP<double,int64_t*>;
|
---|
557 | template class FP<double,uint64_t>;
|
---|
558 | template class FP<double,uint64_t*>;
|
---|
559 | template class FP<double,bool>;
|
---|
560 | template class FP<double,bool*>;
|
---|
561 | template class FP<double,float>;
|
---|
562 | template class FP<double,float*>;
|
---|
563 | template class FP<double,double>;
|
---|
564 | template class FP<double,double*>;
|
---|
565 |
|
---|
566 | template class FP<double*,char>;
|
---|
567 | template class FP<double*,char*>;
|
---|
568 | template class FP<double*,int8_t>;
|
---|
569 | template class FP<double*,int8_t*>;
|
---|
570 | template class FP<double*,uint8_t>;
|
---|
571 | template class FP<double*,uint8_t*>;
|
---|
572 | template class FP<double*,int16_t>;
|
---|
573 | template class FP<double*,int16_t*>;
|
---|
574 | template class FP<double*,uint16_t>;
|
---|
575 | template class FP<double*,uint16_t*>;
|
---|
576 | template class FP<double*,int32_t>;
|
---|
577 | template class FP<double*,int32_t*>;
|
---|
578 | template class FP<double*,uint32_t>;
|
---|
579 | template class FP<double*,uint32_t*>;
|
---|
580 | template class FP<double*,int64_t>;
|
---|
581 | template class FP<double*,int64_t*>;
|
---|
582 | template class FP<double*,uint64_t>;
|
---|
583 | template class FP<double*,uint64_t*>;
|
---|
584 | template class FP<double*,bool>;
|
---|
585 | template class FP<double*,bool*>;
|
---|
586 | template class FP<double*,float>;
|
---|
587 | template class FP<double*,float*>;
|
---|
588 | template class FP<double*,double>;
|
---|
589 | template class FP<double*,double*>;
|
---|
590 |
|
---|
591 | template class FP<char, char>;
|
---|
592 | template class FP<char, char*>;
|
---|
593 | template class FP<char, const char*>;
|
---|
594 |
|
---|
595 | template class FP<char*, char>;
|
---|
596 | template class FP<char*, char*>;
|
---|
597 | template class FP<char*, const char*>;
|
---|
598 |
|
---|
599 |
|
---|
600 |
|
---|