File indexing completed on 2025-08-03 08:19:36
0001
0002
0003
0004
0005
0006
0007
0008
0009 #ifndef GTL_GTL_H
0010 #define GTL_GTL_H
0011
0012 #include <GTL/version.h>
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027
0028
0029
0030
0031
0032 #define GTL_CONCAT(x, y) x##y
0033 #define GTL_FORALL_VAR(y) GTL_CONCAT(GTL_FORALL_VAR, y)
0034
0035 #define GTL_FORALL(elem, cont, iter_t, iter) \
0036 if ((cont).iter##begin() != (cont).iter##end()) \
0037 (elem) = *((cont).iter##begin()); \
0038 for (iter_t GTL_FORALL_VAR(__LINE__) = (cont).iter##begin(); \
0039 GTL_FORALL_VAR(__LINE__) != (cont).iter##end(); \
0040 (elem) = (++GTL_FORALL_VAR(__LINE__)) == \
0041 (cont).iter##end() ? (elem) : *GTL_FORALL_VAR(__LINE__))
0042
0043
0044
0045
0046
0047
0048
0049
0050
0051
0052 #define __GTL_USE_NAMESPACES
0053
0054 #ifdef __GNUC__
0055
0056 # define __GTL_GCC
0057
0058 # if __GNUC__ == 2 && __GNUC_MINOR__ >= 8
0059
0060 # undef __GTL_USE_NAMESPACES
0061
0062 # elif __GNUC__ < 3
0063
0064 # error "Need at least version 2.8.0 of GCC to compile GTL."
0065
0066 # endif
0067
0068
0069
0070
0071
0072
0073
0074 # if __GNUC__ >= 4
0075 # undef _GLIBCXX_DEBUG
0076 # endif
0077 #endif
0078
0079
0080
0081
0082
0083 #ifdef _MSC_VER
0084
0085 # if _MSC_VER >= 1400
0086
0087 # define _HAS_ITERATOR_DEBUGGING 0
0088 # define _CRT_SECURE_NO_DEPRECATE 1
0089 # define _SECURE_SCL 0
0090
0091 # endif
0092
0093 # if _MSC_VER >= 1100
0094
0095 # define __GTL_USE_NAMESPACES
0096 # define __GTL_MSVCC
0097
0098 # pragma warning( disable : 4786 )
0099 # pragma warning( disable : 4251 )
0100
0101 # if defined(GTL_STATIC)
0102 # define GTL_EXTERN
0103 # elif defined(GTL_EXPORTS)
0104 # define GTL_EXTERN __declspec(dllexport)
0105 # else
0106 # define GTL_EXTERN __declspec(dllimport)
0107 # endif
0108
0109 # else
0110
0111 # error "Need at least version 5.0 of MS Visual C++ to compile GTL."
0112
0113 # endif
0114 #else
0115
0116 # define GTL_EXTERN
0117
0118 #endif
0119
0120
0121
0122
0123
0124 #ifdef __GTL_USE_NAMESPACES
0125
0126 # define __GTL_BEGIN_NAMESPACE namespace GTL {
0127 # define __GTL_END_NAMESPACE }
0128
0129 #else
0130
0131 # define __GTL_BEGIN_NAMESPACE
0132 # define __GTL_END_NAMESPACE
0133
0134 #endif
0135
0136
0137
0138
0139
0140 #ifdef __GTL_USE_NAMESPACES
0141
0142 namespace GTL {};
0143 using namespace GTL;
0144
0145
0146
0147 #include