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