00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef PQXX_LIBCOMPILER_H
00018 #define PQXX_LIBCOMPILER_H
00019
00020
00021 #include "pqxx/libconfig.h"
00022
00023 #ifdef PQXX_BROKEN_ITERATOR
00024 namespace PGSTD
00025 {
00027 template<typename Cat,
00028 typename T,
00029 typename Dist,
00030 typename Ptr=T*,
00031 typename Ref=T&> struct iterator
00032 {
00033 typedef Cat iterator_category;
00034 typedef T value_type;
00035 typedef Dist difference_type;
00036 typedef Ptr pointer;
00037 typedef Ref reference;
00038 };
00039 }
00040 #else
00041 #include <iterator>
00042 #endif // PQXX_BROKEN_ITERATOR
00043
00044 #ifndef HAVE_CHAR_TRAITS
00045 namespace PGSTD
00046 {
00048 template<typename CHAR> struct char_traits {};
00050 template<> struct char_traits<char>
00051 {
00052 typedef int int_type;
00053 typedef size_t pos_type;
00054 typedef ptrdiff_t off_type;
00055
00056 static int_type eof() { return -1; }
00057 };
00058 }
00059 #endif
00060
00061
00062 #ifdef _WIN32
00063
00064 #ifdef _MSC_VER
00065 #if _MSC_VER < 1300
00066 #error If you're using Visual C++, you'll need at least version 7 (VC.NET)
00067 #endif // _MSC_VER < 1300
00068
00069
00070 #if _MSC_VER < 1310
00071 #define PQXX_WORKAROUND_VC7
00072 #define PQXX_NO_PARTIAL_CLASS_TEMPLATE_SPECIALISATION
00073 #define PQXX_TYPENAME
00074 #endif // _MSC_VER < 1310
00075 #pragma warning (disable: 4290)
00076 #pragma warning (disable: 4786)
00077 #pragma warning (disable: 4251 4275 4273)
00078 #pragma comment(lib, "libpqdll")
00079 #if !defined(PQXX_LIBEXPORT) && !defined(_LIB)
00080 #define PQXX_LIBEXPORT __declspec(dllimport)
00081 #endif // PQXX_LIBEXPORT _LIB
00082 #endif // _MSC_VER
00083 #endif // _WIN32
00084
00085
00086 #ifndef PQXX_LIBEXPORT
00087 #define PQXX_LIBEXPORT
00088 #endif
00089
00090
00091 #ifndef PQXX_TYPENAME
00092 #define PQXX_TYPENAME typename
00093 #endif
00094
00095 #endif
00096