00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef PQXX_COMPILER_H
00019 #define PQXX_COMPILER_H
00020
00021
00022
00023 #include "pqxx/config-internal-compiler.h"
00024
00025
00026 #include "pqxx/config-internal-libpq.h"
00027
00028
00029 #include "pqxx/config-internal-autotools.h"
00030
00031 #ifdef _WIN32
00032 #ifdef LIBPQXXDLL_EXPORTS
00033 #undef PQXX_LIBEXPORT
00034 #define PQXX_LIBEXPORT __declspec(dllexport)
00035
00036 #define PQXX_PRIVATE
00037 #endif // LIBPQXXDLL_EXPORTS
00038 #elif defined(__GNUC__) && defined(PQXX_HAVE_GCC_VISIBILITY) // !_WIN32
00039 #define PQXX_LIBEXPORT __attribute__ ((visibility("default")))
00040 #define PQXX_PRIVATE __attribute__ ((visibility("hidden")))
00041 #endif // __GNUC__ && PQXX_HAVE_GCC_VISIBILITY
00042
00043
00044 #include "pqxx/libcompiler.h"
00045
00046 #ifdef PQXX_HAVE_LIMITS
00047 #include <limits>
00048 #else // PQXX_HAVE_LIMITS
00049 #include <climits>
00050 namespace PGSTD
00051 {
00053 template<typename T> struct numeric_limits
00054 {
00055 static T max() throw ();
00056 static T min() throw ();
00057 };
00058 template<> inline long numeric_limits<long>::max() throw () {return LONG_MAX;}
00059 template<> inline long numeric_limits<long>::min() throw () {return LONG_MIN;}
00060 }
00061 #endif // PQXX_HAVE_LIMITS
00062
00063 #endif
00064