101 #ifndef INCLUDED_eahave_H
102 #define INCLUDED_eahave_H
105 #include <EABase/eabase.h>
108 #if defined(EA_PRAGMA_ONCE_SUPPORTED)
114 #if !defined(EA_HAVE_EXTENSIONS_FEATURE) && !defined(EA_NO_HAVE_EXTENSIONS_FEATURE)
115 #define EA_HAVE_EXTENSIONS_FEATURE 1
122 #if !defined(EA_HAVE_DINKUMWARE_CPP_LIBRARY) && !defined(EA_NO_HAVE_DINKUMWARE_CPP_LIBRARY)
123 #if defined(__cplusplus)
124 EA_DISABLE_ALL_VC_WARNINGS()
126 EA_RESTORE_ALL_VC_WARNINGS()
129 #if defined(__cplusplus) && defined(_CPPLIB_VER)
130 #define EA_HAVE_DINKUMWARE_CPP_LIBRARY 1
132 #define EA_NO_HAVE_DINKUMWARE_CPP_LIBRARY 1
137 #if !defined(EA_HAVE_LIBSTDCPP_LIBRARY) && !defined(EA_NO_HAVE_LIBSTDCPP_LIBRARY)
138 #if defined(__GLIBCXX__)
139 #define EA_HAVE_LIBSTDCPP_LIBRARY 1
141 #define EA_NO_HAVE_LIBSTDCPP_LIBRARY 1
146 #if !defined(EA_HAVE_LIBCPP_LIBRARY) && !defined(EA_NO_HAVE_LIBCPP_LIBRARY)
147 #if EA_HAS_INCLUDE_AVAILABLE
148 #if EA_HAS_INCLUDE(<__config>)
149 #define EA_HAVE_LIBCPP_LIBRARY 1
153 #if !defined(EA_HAVE_LIBCPP_LIBRARY)
154 #define EA_NO_HAVE_LIBCPP_LIBRARY 1
162 #if !defined(EA_HAVE_SYS_TYPES_H) && !defined(EA_NO_HAVE_SYS_TYPES_H)
163 #define EA_HAVE_SYS_TYPES_H 1
167 #if !defined(EA_HAVE_IO_H) && !defined(EA_NO_HAVE_IO_H)
169 #if defined(EA_PLATFORM_MICROSOFT)
170 #define EA_HAVE_IO_H 1
172 #define EA_NO_HAVE_IO_H 1
177 #if !defined(EA_HAVE_INTTYPES_H) && !defined(EA_NO_HAVE_INTTYPES_H)
178 #if !defined(EA_PLATFORM_MICROSOFT)
179 #define EA_HAVE_INTTYPES_H 1
181 #define EA_NO_HAVE_INTTYPES_H 1
186 #if !defined(EA_HAVE_UNISTD_H) && !defined(EA_NO_HAVE_UNISTD_H)
187 #if defined(EA_PLATFORM_UNIX)
188 #define EA_HAVE_UNISTD_H 1
190 #define EA_NO_HAVE_UNISTD_H 1
195 #if !defined(EA_HAVE_SYS_TIME_H) && !defined(EA_NO_HAVE_SYS_TIME_H)
196 #if !defined(EA_PLATFORM_MICROSOFT) && !defined(_CPPLIB_VER)
197 #define EA_HAVE_SYS_TIME_H 1
199 #define EA_NO_HAVE_SYS_TIME_H 1
204 #if !defined(EA_HAVE_SYS_PTRACE_H) && !defined(EA_NO_HAVE_SYS_PTRACE_H)
205 #if defined(EA_PLATFORM_UNIX) && !defined(__CYGWIN__) && (defined(EA_PLATFORM_DESKTOP) || defined(EA_PLATFORM_SERVER))
206 #define EA_HAVE_SYS_PTRACE_H 1
208 #define EA_NO_HAVE_SYS_PTRACE_H 1
213 #if !defined(EA_HAVE_SYS_STAT_H) && !defined(EA_NO_HAVE_SYS_STAT_H)
214 #if (defined(EA_PLATFORM_UNIX) && !(defined(EA_PLATFORM_SONY) && defined(EA_PLATFORM_CONSOLE))) || defined(__APPLE__) || defined(EA_PLATFORM_ANDROID)
215 #define EA_HAVE_SYS_STAT_H 1
217 #define EA_NO_HAVE_SYS_STAT_H 1
222 #if !defined(EA_HAVE_LOCALE_H) && !defined(EA_NO_HAVE_LOCALE_H)
223 #define EA_HAVE_LOCALE_H 1
227 #if !defined(EA_HAVE_SIGNAL_H) && !defined(EA_NO_HAVE_SIGNAL_H)
228 #if !defined(EA_PLATFORM_BSD) && !defined(EA_PLATFORM_SONY) && !defined(CS_UNDEFINED_STRING)
229 #define EA_HAVE_SIGNAL_H 1
231 #define EA_NO_HAVE_SIGNAL_H 1
236 #if !defined(EA_HAVE_SYS_SIGNAL_H) && !defined(EA_NO_HAVE_SYS_SIGNAL_H)
237 #if defined(EA_PLATFORM_BSD) || defined(EA_PLATFORM_SONY)
238 #define EA_HAVE_SYS_SIGNAL_H 1
240 #define EA_NO_HAVE_SYS_SIGNAL_H 1
245 #if !defined(EA_HAVE_PTHREAD_H) && !defined(EA_NO_HAVE_PTHREAD_H)
246 #if defined(EA_PLATFORM_UNIX) || defined(EA_PLATFORM_APPLE) || defined(EA_PLATFORM_POSIX)
247 #define EA_HAVE_PTHREAD_H 1
249 #define EA_NO_HAVE_PTHREAD_H 1
254 #if !defined(EA_HAVE_WCHAR_H) && !defined(EA_NO_HAVE_WCHAR_H)
255 #if defined(EA_PLATFORM_DESKTOP) && defined(EA_PLATFORM_UNIX) && defined(EA_PLATFORM_SONY) && defined(EA_PLATFORM_APPLE)
256 #define EA_HAVE_WCHAR_H 1
258 #define EA_NO_HAVE_WCHAR_H 1
263 #if !defined(EA_HAVE_MALLOC_H) && !defined(EA_NO_HAVE_MALLOC_H)
264 #if defined(_MSC_VER) || defined(__MINGW32__)
265 #define EA_HAVE_MALLOC_H 1
267 #define EA_NO_HAVE_MALLOC_H 1
272 #if !defined(EA_HAVE_ALLOCA_H) && !defined(EA_NO_HAVE_ALLOCA_H)
273 #if !defined(EA_HAVE_MALLOC_H) && !defined(EA_PLATFORM_SONY)
274 #define EA_HAVE_ALLOCA_H 1
276 #define EA_NO_HAVE_ALLOCA_H 1
281 #if !defined(EA_HAVE_EXECINFO_H) && !defined(EA_NO_HAVE_EXECINFO_H)
282 #if (defined(EA_PLATFORM_LINUX) || defined(EA_PLATFORM_OSX)) && !defined(EA_PLATFORM_ANDROID)
283 #define EA_HAVE_EXECINFO_H 1
285 #define EA_NO_HAVE_EXECINFO_H 1
290 #if !defined(EA_HAVE_SEMAPHORE_H) && !defined(EA_NO_HAVE_SEMAPHORE_H)
291 #if defined(EA_PLATFORM_UNIX)
292 #define EA_HAVE_SEMAPHORE_H 1
294 #define EA_NO_HAVE_SEMAPHORE_H 1
299 #if !defined(EA_HAVE_DIRENT_H) && !defined(EA_NO_HAVE_DIRENT_H)
300 #if defined(EA_PLATFORM_UNIX) && !defined(EA_PLATFORM_CONSOLE)
301 #define EA_HAVE_DIRENT_H 1
303 #define EA_NO_HAVE_DIRENT_H 1
308 #if !defined(EA_HAVE_CPP11_CONTAINERS) && !defined(EA_NO_HAVE_CPP11_CONTAINERS)
309 #if defined(EA_HAVE_DINKUMWARE_CPP_LIBRARY) && (_CPPLIB_VER >= 520)
310 #define EA_HAVE_CPP11_CONTAINERS 1
311 #elif defined(EA_COMPILER_CPP11_ENABLED) && defined(EA_HAVE_LIBSTDCPP_LIBRARY) && defined(EA_COMPILER_GNUC) && (EA_COMPILER_VERSION >= 4004)
312 #define EA_HAVE_CPP11_CONTAINERS 1
313 #elif defined(EA_HAVE_LIBCPP_LIBRARY) && (_LIBCPP_VERSION >= 1)
314 #define EA_HAVE_CPP11_CONTAINERS 1
316 #define EA_NO_HAVE_CPP11_CONTAINERS 1
321 #if !defined(EA_HAVE_CPP11_ATOMIC) && !defined(EA_NO_HAVE_CPP11_ATOMIC)
322 #if defined(EA_HAVE_DINKUMWARE_CPP_LIBRARY) && (_CPPLIB_VER >= 540)
323 #define EA_HAVE_CPP11_ATOMIC 1
324 #elif defined(EA_COMPILER_CPP11_ENABLED) && defined(EA_HAVE_LIBSTDCPP_LIBRARY) && defined(EA_COMPILER_GNUC) && (EA_COMPILER_VERSION >= 4007)
325 #define EA_HAVE_CPP11_ATOMIC 1
326 #elif defined(EA_HAVE_LIBCPP_LIBRARY) && (_LIBCPP_VERSION >= 1)
327 #define EA_HAVE_CPP11_ATOMIC 1
329 #define EA_NO_HAVE_CPP11_ATOMIC 1
334 #if !defined(EA_HAVE_CPP11_CONDITION_VARIABLE) && !defined(EA_NO_HAVE_CPP11_CONDITION_VARIABLE)
335 #if defined(EA_HAVE_DINKUMWARE_CPP_LIBRARY) && (_CPPLIB_VER >= 540)
336 #define EA_HAVE_CPP11_CONDITION_VARIABLE 1
337 #elif defined(EA_COMPILER_CPP11_ENABLED) && defined(EA_HAVE_LIBSTDCPP_LIBRARY) && defined(EA_COMPILER_GNUC) && (EA_COMPILER_VERSION >= 4007)
338 #define EA_HAVE_CPP11_CONDITION_VARIABLE 1
339 #elif defined(EA_HAVE_LIBCPP_LIBRARY) && (_LIBCPP_VERSION >= 1)
340 #define EA_HAVE_CPP11_CONDITION_VARIABLE 1
342 #define EA_NO_HAVE_CPP11_CONDITION_VARIABLE 1
347 #if !defined(EA_HAVE_CPP11_MUTEX) && !defined(EA_NO_HAVE_CPP11_MUTEX)
348 #if defined(EA_HAVE_DINKUMWARE_CPP_LIBRARY) && (_CPPLIB_VER >= 540)
349 #define EA_HAVE_CPP11_MUTEX 1
350 #elif defined(EA_COMPILER_CPP11_ENABLED) && defined(EA_HAVE_LIBSTDCPP_LIBRARY) && defined(EA_COMPILER_GNUC) && (EA_COMPILER_VERSION >= 4007)
351 #define EA_HAVE_CPP11_MUTEX 1
352 #elif defined(EA_HAVE_LIBCPP_LIBRARY) && (_LIBCPP_VERSION >= 1)
353 #define EA_HAVE_CPP11_MUTEX 1
355 #define EA_NO_HAVE_CPP11_MUTEX 1
360 #if !defined(EA_HAVE_CPP11_THREAD) && !defined(EA_NO_HAVE_CPP11_THREAD)
361 #if defined(EA_HAVE_DINKUMWARE_CPP_LIBRARY) && (_CPPLIB_VER >= 540)
362 #define EA_HAVE_CPP11_THREAD 1
363 #elif defined(EA_COMPILER_CPP11_ENABLED) && defined(EA_HAVE_LIBSTDCPP_LIBRARY) && defined(EA_COMPILER_GNUC) && (EA_COMPILER_VERSION >= 4007)
364 #define EA_HAVE_CPP11_THREAD 1
365 #elif defined(EA_HAVE_LIBCPP_LIBRARY) && (_LIBCPP_VERSION >= 1)
366 #define EA_HAVE_CPP11_THREAD 1
368 #define EA_NO_HAVE_CPP11_THREAD 1
373 #if !defined(EA_HAVE_CPP11_FUTURE) && !defined(EA_NO_HAVE_CPP11_FUTURE)
374 #if defined(EA_HAVE_DINKUMWARE_CPP_LIBRARY) && (_CPPLIB_VER >= 540)
375 #define EA_HAVE_CPP11_FUTURE 1
376 #elif defined(EA_COMPILER_CPP11_ENABLED) && defined(EA_HAVE_LIBSTDCPP_LIBRARY) && defined(EA_COMPILER_GNUC) && (EA_COMPILER_VERSION >= 4005)
377 #define EA_HAVE_CPP11_FUTURE 1
378 #elif defined(EA_HAVE_LIBCPP_LIBRARY) && (_LIBCPP_VERSION >= 1)
379 #define EA_HAVE_CPP11_FUTURE 1
381 #define EA_NO_HAVE_CPP11_FUTURE 1
387 #if !defined(EA_HAVE_CPP11_TYPE_TRAITS) && !defined(EA_NO_HAVE_CPP11_TYPE_TRAITS)
388 #if defined(EA_HAVE_DINKUMWARE_CPP_LIBRARY) && (_CPPLIB_VER >= 540)
389 #define EA_HAVE_CPP11_TYPE_TRAITS 1
390 #elif defined(EA_COMPILER_CPP11_ENABLED) && defined(EA_HAVE_LIBSTDCPP_LIBRARY) && defined(EA_COMPILER_GNUC) && (EA_COMPILER_VERSION >= 4007)
391 #define EA_HAVE_CPP11_TYPE_TRAITS 1
392 #elif defined(EA_HAVE_LIBCPP_LIBRARY) && (_LIBCPP_VERSION >= 1)
393 #define EA_HAVE_CPP11_TYPE_TRAITS 1
395 #define EA_NO_HAVE_CPP11_TYPE_TRAITS 1
400 #if !defined(EA_HAVE_CPP11_TUPLES) && !defined(EA_NO_HAVE_CPP11_TUPLES)
401 #if defined(EA_HAVE_DINKUMWARE_CPP_LIBRARY) && (_CPPLIB_VER >= 520)
402 #define EA_HAVE_CPP11_TUPLES 1
403 #elif defined(EA_COMPILER_CPP11_ENABLED) && defined(EA_HAVE_LIBSTDCPP_LIBRARY) && defined(EA_COMPILER_GNUC) && (EA_COMPILER_VERSION >= 4003)
404 #define EA_HAVE_CPP11_TUPLES 1
405 #elif defined(EA_HAVE_LIBCPP_LIBRARY) && (_LIBCPP_VERSION >= 1)
406 #define EA_HAVE_CPP11_TUPLES 1
408 #define EA_NO_HAVE_CPP11_TUPLES 1
413 #if !defined(EA_HAVE_CPP11_REGEX) && !defined(EA_NO_HAVE_CPP11_REGEX)
414 #if defined(EA_HAVE_DINKUMWARE_CPP_LIBRARY) && (_CPPLIB_VER >= 540) && (defined(_HAS_EXCEPTIONS) && _HAS_EXCEPTIONS)
415 #define EA_HAVE_CPP11_REGEX 1
416 #elif defined(EA_COMPILER_CPP11_ENABLED) && defined(EA_HAVE_LIBSTDCPP_LIBRARY) && defined(EA_COMPILER_GNUC) && (EA_COMPILER_VERSION >= 4003)
417 #define EA_HAVE_CPP11_REGEX 1
418 #elif defined(EA_HAVE_LIBCPP_LIBRARY) && (_LIBCPP_VERSION >= 1)
419 #define EA_HAVE_CPP11_REGEX 1
421 #define EA_NO_HAVE_CPP11_REGEX 1
426 #if !defined(EA_HAVE_CPP11_RANDOM) && !defined(EA_NO_HAVE_CPP11_RANDOM)
427 #if defined(EA_HAVE_DINKUMWARE_CPP_LIBRARY) && (_CPPLIB_VER >= 520)
428 #define EA_HAVE_CPP11_RANDOM 1
429 #elif defined(EA_COMPILER_CPP11_ENABLED) && defined(EA_HAVE_LIBSTDCPP_LIBRARY) && defined(EA_COMPILER_GNUC) && (EA_COMPILER_VERSION >= 4005)
430 #define EA_HAVE_CPP11_RANDOM 1
431 #elif defined(EA_HAVE_LIBCPP_LIBRARY) && (_LIBCPP_VERSION >= 1)
432 #define EA_HAVE_CPP11_RANDOM 1
434 #define EA_NO_HAVE_CPP11_RANDOM 1
439 #if !defined(EA_HAVE_CPP11_CHRONO) && !defined(EA_NO_HAVE_CPP11_CHRONO)
440 #if defined(EA_HAVE_DINKUMWARE_CPP_LIBRARY) && (_CPPLIB_VER >= 540)
441 #define EA_HAVE_CPP11_CHRONO 1
442 #elif defined(EA_COMPILER_CPP11_ENABLED) && defined(EA_HAVE_LIBSTDCPP_LIBRARY) && defined(EA_COMPILER_GNUC) && (EA_COMPILER_VERSION >= 4007)
443 #define EA_HAVE_CPP11_CHRONO 1
444 #elif defined(EA_HAVE_LIBCPP_LIBRARY) && (_LIBCPP_VERSION >= 1)
445 #define EA_HAVE_CPP11_CHRONO 1
447 #define EA_NO_HAVE_CPP11_CHRONO 1
452 #if !defined(EA_HAVE_CPP11_SCOPED_ALLOCATOR) && !defined(EA_NO_HAVE_CPP11_SCOPED_ALLOCATOR)
453 #if defined(EA_HAVE_DINKUMWARE_CPP_LIBRARY) && (_CPPLIB_VER >= 540)
454 #define EA_HAVE_CPP11_SCOPED_ALLOCATOR 1
455 #elif defined(EA_COMPILER_CPP11_ENABLED) && defined(EA_HAVE_LIBSTDCPP_LIBRARY) && defined(EA_COMPILER_GNUC) && (EA_COMPILER_VERSION >= 4007)
456 #define EA_HAVE_CPP11_SCOPED_ALLOCATOR 1
457 #elif defined(EA_HAVE_LIBCPP_LIBRARY) && (_LIBCPP_VERSION >= 1)
458 #define EA_HAVE_CPP11_SCOPED_ALLOCATOR 1
460 #define EA_NO_HAVE_CPP11_SCOPED_ALLOCATOR 1
465 #if !defined(EA_HAVE_CPP11_INITIALIZER_LIST) && !defined(EA_NO_HAVE_CPP11_INITIALIZER_LIST)
466 #if defined(EA_HAVE_DINKUMWARE_CPP_LIBRARY) && (_CPPLIB_VER >= 520) && !defined(EA_COMPILER_NO_INITIALIZER_LISTS)
467 #define EA_HAVE_CPP11_INITIALIZER_LIST 1
468 #elif defined(EA_COMPILER_CPP11_ENABLED) && defined(EA_HAVE_LIBSTDCPP_LIBRARY) && defined(EA_COMPILER_CLANG) && (EA_COMPILER_VERSION >= 301) && !defined(EA_COMPILER_NO_INITIALIZER_LISTS) && !defined(EA_PLATFORM_APPLE)
469 #define EA_HAVE_CPP11_INITIALIZER_LIST 1
470 #elif defined(EA_COMPILER_CPP11_ENABLED) && defined(EA_HAVE_LIBCPP_LIBRARY) && defined(EA_COMPILER_CLANG) && (EA_COMPILER_VERSION >= 301) && !defined(EA_COMPILER_NO_INITIALIZER_LISTS) && !defined(EA_PLATFORM_APPLE)
471 #define EA_HAVE_CPP11_INITIALIZER_LIST 1
472 #elif defined(EA_COMPILER_CPP11_ENABLED) && defined(EA_HAVE_LIBSTDCPP_LIBRARY) && defined(EA_COMPILER_GNUC) && (EA_COMPILER_VERSION >= 4004) && !defined(EA_COMPILER_NO_INITIALIZER_LISTS) && !defined(EA_PLATFORM_APPLE)
473 #define EA_HAVE_CPP11_INITIALIZER_LIST 1
474 #elif defined(EA_HAVE_LIBCPP_LIBRARY) && (_LIBCPP_VERSION >= 1) && !defined(EA_COMPILER_NO_INITIALIZER_LISTS)
475 #define EA_HAVE_CPP11_INITIALIZER_LIST 1
477 #define EA_NO_HAVE_CPP11_INITIALIZER_LIST 1
482 #if !defined(EA_HAVE_CPP11_SYSTEM_ERROR) && !defined(EA_NO_HAVE_CPP11_SYSTEM_ERROR)
483 #if defined(EA_HAVE_DINKUMWARE_CPP_LIBRARY) && (_CPPLIB_VER >= 520) && !(defined(_HAS_CPP0X) && _HAS_CPP0X)
484 #define EA_HAVE_CPP11_SYSTEM_ERROR 1
485 #elif defined(EA_COMPILER_CPP11_ENABLED) && defined(EA_HAVE_LIBSTDCPP_LIBRARY) && defined(EA_COMPILER_CLANG) && (EA_COMPILER_VERSION >= 301) && !defined(EA_PLATFORM_APPLE)
486 #define EA_HAVE_CPP11_SYSTEM_ERROR 1
487 #elif defined(EA_COMPILER_CPP11_ENABLED) && defined(EA_HAVE_LIBSTDCPP_LIBRARY) && defined(EA_COMPILER_GNUC) && (EA_COMPILER_VERSION >= 4004) && !defined(EA_PLATFORM_APPLE)
488 #define EA_HAVE_CPP11_SYSTEM_ERROR 1
489 #elif defined(EA_HAVE_LIBCPP_LIBRARY) && (_LIBCPP_VERSION >= 1)
490 #define EA_HAVE_CPP11_SYSTEM_ERROR 1
492 #define EA_NO_HAVE_CPP11_SYSTEM_ERROR 1
497 #if !defined(EA_HAVE_CPP11_CODECVT) && !defined(EA_NO_HAVE_CPP11_CODECVT)
498 #if defined(EA_HAVE_DINKUMWARE_CPP_LIBRARY) && (_CPPLIB_VER >= 520)
499 #define EA_HAVE_CPP11_CODECVT 1
504 #elif defined(EA_HAVE_LIBCPP_LIBRARY) && (_LIBCPP_VERSION >= 1)
505 #define EA_HAVE_CPP11_CODECVT 1
507 #define EA_NO_HAVE_CPP11_CODECVT 1
512 #if !defined(EA_HAVE_CPP11_TYPEINDEX) && !defined(EA_NO_HAVE_CPP11_TYPEINDEX)
513 #if defined(EA_HAVE_DINKUMWARE_CPP_LIBRARY) && (_CPPLIB_VER >= 520)
514 #define EA_HAVE_CPP11_TYPEINDEX 1
515 #elif defined(EA_COMPILER_CPP11_ENABLED) && defined(EA_HAVE_LIBSTDCPP_LIBRARY) && defined(EA_COMPILER_GNUC) && (EA_COMPILER_VERSION >= 4006)
516 #define EA_HAVE_CPP11_TYPEINDEX 1
517 #elif defined(EA_HAVE_LIBCPP_LIBRARY) && (_LIBCPP_VERSION >= 1)
518 #define EA_HAVE_CPP11_TYPEINDEX 1
520 #define EA_NO_HAVE_CPP11_TYPEINDEX 1
529 #if !defined(EA_HAVE_mkstemps_DECL) && !defined(EA_NO_HAVE_mkstemps_DECL)
530 #if defined(EA_PLATFORM_APPLE) || defined(CS_UNDEFINED_STRING)
531 #define EA_HAVE_mkstemps_DECL 1
533 #define EA_NO_HAVE_mkstemps_DECL 1
537 #if !defined(EA_HAVE_gettimeofday_DECL) && !defined(EA_NO_HAVE_gettimeofday_DECL)
538 #if defined(EA_PLATFORM_POSIX)
539 #define EA_HAVE_gettimeofday_DECL 1
541 #define EA_NO_HAVE_gettimeofday_DECL 1
545 #if !defined(EA_HAVE_strcasecmp_DECL) && !defined(EA_NO_HAVE_strcasecmp_DECL)
546 #if !defined(EA_PLATFORM_MICROSOFT)
547 #define EA_HAVE_strcasecmp_DECL 1
548 #define EA_HAVE_strncasecmp_DECL 1
550 #define EA_HAVE_stricmp_DECL 1
551 #define EA_HAVE_strnicmp_DECL 1
555 #if !defined(EA_HAVE_mmap_DECL) && !defined(EA_NO_HAVE_mmap_DECL)
556 #if defined(EA_PLATFORM_POSIX)
557 #define EA_HAVE_mmap_DECL 1
559 #define EA_NO_HAVE_mmap_DECL 1
563 #if !defined(EA_HAVE_fopen_DECL) && !defined(EA_NO_HAVE_fopen_DECL)
564 #define EA_HAVE_fopen_DECL 1
567 #if !defined(EA_HAVE_ISNAN) && !defined(EA_NO_HAVE_ISNAN)
568 #if defined(EA_PLATFORM_MICROSOFT) && !defined(EA_PLATFORM_MINGW)
569 #define EA_HAVE_ISNAN(x) _isnan(x)
570 #define EA_HAVE_ISINF(x) !_finite(x)
571 #elif defined(EA_PLATFORM_APPLE)
572 #define EA_HAVE_ISNAN(x) std::isnan(x)
573 #define EA_HAVE_ISINF(x) std::isinf(x)
574 #elif defined(EA_PLATFORM_ANDROID)
575 #define EA_HAVE_ISNAN(x) __builtin_isnan(x)
576 #define EA_HAVE_ISINF(x) __builtin_isinf(x)
577 #elif defined(__GNUC__) && defined(__CYGWIN__)
578 #define EA_HAVE_ISNAN(x) __isnand(x)
579 #define EA_HAVE_ISINF(x) __isinfd(x)
581 #define EA_HAVE_ISNAN(x) std::isnan(x)
582 #define EA_HAVE_ISINF(x) std::isinf(x)
586 #if !defined(EA_HAVE_itoa_DECL) && !defined(EA_NO_HAVE_itoa_DECL)
587 #if defined(EA_COMPILER_MSVC)
588 #define EA_HAVE_itoa_DECL 1
590 #define EA_NO_HAVE_itoa_DECL 1
594 #if !defined(EA_HAVE_nanosleep_DECL) && !defined(EA_NO_HAVE_nanosleep_DECL)
595 #if (defined(EA_PLATFORM_UNIX) && !defined(EA_PLATFORM_SONY)) || defined(EA_PLATFORM_IPHONE) || defined(EA_PLATFORM_OSX) || defined(EA_PLATFORM_SONY) || defined(CS_UNDEFINED_STRING)
596 #define EA_HAVE_nanosleep_DECL 1
598 #define EA_NO_HAVE_nanosleep_DECL 1
602 #if !defined(EA_HAVE_utime_DECL) && !defined(EA_NO_HAVE_utime_DECL)
603 #if defined(EA_PLATFORM_MICROSOFT)
604 #define EA_HAVE_utime_DECL _utime
605 #elif EA_PLATFORM_UNIX
606 #define EA_HAVE_utime_DECL utime
608 #define EA_NO_HAVE_utime_DECL 1
612 #if !defined(EA_HAVE_ftruncate_DECL) && !defined(EA_NO_HAVE_ftruncate_DECL)
613 #if !defined(__MINGW32__)
614 #define EA_HAVE_ftruncate_DECL 1
616 #define EA_NO_HAVE_ftruncate_DECL 1
620 #if !defined(EA_HAVE_localtime_DECL) && !defined(EA_NO_HAVE_localtime_DECL)
621 #define EA_HAVE_localtime_DECL 1
624 #if !defined(EA_HAVE_pthread_getattr_np_DECL) && !defined(EA_NO_HAVE_pthread_getattr_np_DECL)
625 #if defined(EA_PLATFORM_LINUX)
626 #define EA_HAVE_pthread_getattr_np_DECL 1
628 #define EA_NO_HAVE_pthread_getattr_np_DECL 1
636 #if !defined(EA_HAVE_WCHAR_IMPL) && !defined(EA_NO_HAVE_WCHAR_IMPL)
637 #if defined(EA_PLATFORM_DESKTOP)
638 #define EA_HAVE_WCHAR_IMPL 1
640 #define EA_NO_HAVE_WCHAR_IMPL 1
644 #if !defined(EA_HAVE_getenv_IMPL) && !defined(EA_NO_HAVE_getenv_IMPL)
645 #if (defined(EA_PLATFORM_DESKTOP) || defined(EA_PLATFORM_UNIX)) && !defined(EA_PLATFORM_WINRT)
646 #define EA_HAVE_getenv_IMPL 1
648 #define EA_NO_HAVE_getenv_IMPL 1
652 #if !defined(EA_HAVE_setenv_IMPL) && !defined(EA_NO_HAVE_setenv_IMPL)
653 #if defined(EA_PLATFORM_UNIX) && defined(EA_PLATFORM_POSIX)
654 #define EA_HAVE_setenv_IMPL 1
656 #define EA_NO_HAVE_setenv_IMPL 1
660 #if !defined(EA_HAVE_unsetenv_IMPL) && !defined(EA_NO_HAVE_unsetenv_IMPL)
661 #if defined(EA_PLATFORM_UNIX) && defined(EA_PLATFORM_POSIX)
662 #define EA_HAVE_unsetenv_IMPL 1
664 #define EA_NO_HAVE_unsetenv_IMPL 1
668 #if !defined(EA_HAVE_putenv_IMPL) && !defined(EA_NO_HAVE_putenv_IMPL)
669 #if (defined(EA_PLATFORM_DESKTOP) || defined(EA_PLATFORM_UNIX)) && !defined(EA_PLATFORM_WINRT)
670 #define EA_HAVE_putenv_IMPL 1
672 #define EA_NO_HAVE_putenv_IMPL 1
676 #if !defined(EA_HAVE_time_IMPL) && !defined(EA_NO_HAVE_time_IMPL)
677 #define EA_HAVE_time_IMPL 1
678 #define EA_HAVE_clock_IMPL 1
682 #if !defined(EA_HAVE_fopen_IMPL) && !defined(EA_NO_HAVE_fopen_IMPL)
683 #define EA_HAVE_fopen_IMPL 1
687 #if !defined(EA_HAVE_inet_ntop_IMPL) && !defined(EA_NO_HAVE_inet_ntop_IMPL)
688 #if (defined(EA_PLATFORM_UNIX) || defined(EA_PLATFORM_POSIX)) && !defined(EA_PLATFORM_SONY) && !defined(CS_UNDEFINED_STRING)
689 #define EA_HAVE_inet_ntop_IMPL 1
690 #define EA_HAVE_inet_pton_IMPL 1
692 #define EA_NO_HAVE_inet_ntop_IMPL 1
693 #define EA_NO_HAVE_inet_pton_IMPL 1
698 #if !defined(EA_HAVE_clock_gettime_IMPL) && !defined(EA_NO_HAVE_clock_gettime_IMPL)
699 #if defined(EA_PLATFORM_LINUX) || defined(__CYGWIN__) || (defined(_POSIX_TIMERS) && (_POSIX_TIMERS > 0)) || (defined(EA_PLATFORM_POSIX) && defined(_CPPLIB_VER) )
700 #define EA_HAVE_clock_gettime_IMPL 1
702 #define EA_NO_HAVE_clock_gettime_IMPL 1
706 #if !defined(EA_HAVE_getcwd_IMPL) && !defined(EA_NO_HAVE_getcwd_IMPL)
707 #if (defined(EA_PLATFORM_DESKTOP) || defined(EA_PLATFORM_UNIX)) && !defined(EA_PLATFORM_ANDROID) && !defined(EA_PLATFORM_WINRT)
708 #define EA_HAVE_getcwd_IMPL 1
710 #define EA_NO_HAVE_getcwd_IMPL 1
714 #if !defined(EA_HAVE_tmpnam_IMPL) && !defined(EA_NO_HAVE_tmpnam_IMPL)
715 #if (defined(EA_PLATFORM_DESKTOP) || defined(EA_PLATFORM_UNIX)) && !defined(EA_PLATFORM_ANDROID)
716 #define EA_HAVE_tmpnam_IMPL 1
718 #define EA_NO_HAVE_tmpnam_IMPL 1
724 #if !defined(EA_HAVE_nullptr_IMPL) && !defined(EA_NO_HAVE_nullptr_IMPL)
725 #if defined(EA_COMPILER_NO_NULLPTR)
726 #define EA_NO_HAVE_nullptr_IMPL 1
728 #define EA_HAVE_nullptr_IMPL 1
735 #if !defined(EA_HAVE_nullptr_t_IMPL) && !defined(EA_NO_HAVE_nullptr_t_IMPL)
736 #if defined(EA_COMPILER_CPP11_ENABLED)
738 #if defined(_MSC_VER) && (_MSC_VER >= 1600) && defined(EA_HAVE_DINKUMWARE_CPP_LIBRARY)
739 #define EA_HAVE_nullptr_t_IMPL 1
741 #elif defined(EA_HAVE_LIBCPP_LIBRARY)
742 #define EA_HAVE_nullptr_t_IMPL 1
744 #elif defined(EA_HAVE_LIBSTDCPP_LIBRARY)
746 #if (__GLIBCXX__ >= 20110325) && (__GLIBCXX__ != 20120702) && (__GLIBCXX__ != 20110428)
747 #define EA_HAVE_nullptr_t_IMPL 1
749 #define EA_NO_HAVE_nullptr_t_IMPL 1
753 #elif defined(__clang__)
754 #define EA_HAVE_nullptr_t_IMPL 1
757 #elif defined(EA_COMPILER_GNUC) && (EA_COMPILER_VERSION >= 4006)
758 #define EA_HAVE_nullptr_t_IMPL 1
761 #elif defined(__EDG_VERSION__) && (__EDG_VERSION__ >= 403)
762 #define EA_HAVE_nullptr_t_IMPL 1
765 #define EA_NO_HAVE_nullptr_t_IMPL 1
768 #define EA_NO_HAVE_nullptr_t_IMPL 1
773 #if !defined(EA_HAVE_std_terminate_IMPL) && !defined(EA_NO_HAVE_std_terminate_IMPL)
774 #if !defined(EA_PLATFORM_IPHONE) && !defined(EA_PLATFORM_ANDROID)
775 #define EA_HAVE_std_terminate_IMPL 1
777 #define EA_NO_HAVE_std_terminate_IMPL 1
782 #if !defined(EA_HAVE_CPP11_ITERATOR_IMPL) && !defined(EA_NO_HAVE_CPP11_ITERATOR_IMPL)
783 #if defined(EA_HAVE_DINKUMWARE_CPP_LIBRARY) && (_CPPLIB_VER >= 520) && !(defined(_HAS_CPP0X) && _HAS_CPP0X)
784 #define EA_HAVE_CPP11_ITERATOR_IMPL 1
785 #elif defined(EA_COMPILER_CPP11_ENABLED) && defined(EA_HAVE_LIBSTDCPP_LIBRARY) && defined(EA_COMPILER_GNUC) && (EA_COMPILER_VERSION >= 4006)
786 #define EA_HAVE_CPP11_ITERATOR_IMPL 1
787 #elif defined(EA_HAVE_LIBCPP_LIBRARY) && (_LIBCPP_VERSION >= 1)
788 #define EA_HAVE_CPP11_ITERATOR_IMPL 1
790 #define EA_NO_HAVE_CPP11_ITERATOR_IMPL 1
795 #if !defined(EA_HAVE_CPP11_SMART_POINTER_IMPL) && !defined(EA_NO_HAVE_CPP11_SMART_POINTER_IMPL)
796 #if defined(EA_HAVE_DINKUMWARE_CPP_LIBRARY) && (_CPPLIB_VER >= 520) && !(defined(_HAS_CPP0X) && _HAS_CPP0X)
797 #define EA_HAVE_CPP11_SMART_POINTER_IMPL 1
798 #elif defined(EA_COMPILER_CPP11_ENABLED) && defined(EA_HAVE_LIBSTDCPP_LIBRARY) && defined(EA_COMPILER_GNUC) && (EA_COMPILER_VERSION >= 4004)
799 #define EA_HAVE_CPP11_SMART_POINTER_IMPL 1
800 #elif defined(EA_HAVE_LIBCPP_LIBRARY) && (_LIBCPP_VERSION >= 1)
801 #define EA_HAVE_CPP11_SMART_POINTER_IMPL 1
803 #define EA_NO_HAVE_CPP11_SMART_POINTER_IMPL 1
808 #if !defined(EA_HAVE_CPP11_FUNCTIONAL_IMPL) && !defined(EA_NO_HAVE_CPP11_FUNCTIONAL_IMPL)
809 #if defined(EA_HAVE_DINKUMWARE_CPP_LIBRARY) && (_CPPLIB_VER >= 520) && !(defined(_HAS_CPP0X) && _HAS_CPP0X)
810 #define EA_HAVE_CPP11_FUNCTIONAL_IMPL 1
811 #elif defined(EA_COMPILER_CPP11_ENABLED) && defined(EA_HAVE_LIBSTDCPP_LIBRARY) && defined(EA_COMPILER_GNUC) && (EA_COMPILER_VERSION >= 4004)
812 #define EA_HAVE_CPP11_FUNCTIONAL_IMPL 1
813 #elif defined(EA_HAVE_LIBCPP_LIBRARY) && (_LIBCPP_VERSION >= 1)
814 #define EA_HAVE_CPP11_FUNCTIONAL_IMPL 1
816 #define EA_NO_HAVE_CPP11_FUNCTIONAL_IMPL 1
821 #if !defined(EA_HAVE_CPP11_EXCEPTION_IMPL) && !defined(EA_NO_HAVE_CPP11_EXCEPTION_IMPL)
822 #if defined(EA_HAVE_DINKUMWARE_CPP_LIBRARY) && (_CPPLIB_VER >= 520) && !(defined(_HAS_CPP0X) && _HAS_CPP0X)
823 #define EA_HAVE_CPP11_EXCEPTION_IMPL 1
824 #elif defined(EA_COMPILER_CPP11_ENABLED) && defined(EA_HAVE_LIBSTDCPP_LIBRARY) && defined(EA_COMPILER_GNUC) && (EA_COMPILER_VERSION >= 4004)
825 #define EA_HAVE_CPP11_EXCEPTION_IMPL 1
826 #elif defined(EA_HAVE_LIBCPP_LIBRARY) && (_LIBCPP_VERSION >= 1)
827 #define EA_HAVE_CPP11_EXCEPTION_IMPL 1
829 #define EA_NO_HAVE_CPP11_EXCEPTION_IMPL 1
869 #ifdef EABASE_USER_HAVE_HEADER
870 #include EABASE_USER_HAVE_HEADER