17 #ifndef PQXX_H_COMPILER_PUBLIC
18 #define PQXX_H_COMPILER_PUBLIC
20 #ifdef PQXX_HAVE_BOOST_SMART_PTR
21 #include <boost/smart_ptr.hpp>
36 #if defined(min) || defined(max)
37 #error "Oops: min() and/or max() are defined as preprocessor macros.\
38 Define NOMINMAX macro before including any system headers!"
46 #define PQXX_NOVTABLE __declspec(novtable)
52 #include "pqxx/config-public-compiler.h"
55 #ifdef PQXX_BROKEN_ITERATOR
70 template<
typename Cat,
74 typename Ref=T&>
struct iterator
76 typedef Cat iterator_category;
78 typedef Dist difference_type;
80 typedef Ref reference;
85 #endif // PQXX_BROKEN_ITERATOR
87 #ifndef PQXX_HAVE_CHAR_TRAITS
117 #if defined(__SUNPRO_CC)
118 #if __SUNPRO_CC_COMPAT < 5
119 #error "This compiler version is not capable of building libpqxx."
120 #endif // __SUNPRO_CC_COMPAT < 5
121 #define PQXX_PRIVATE __hidden
122 #endif // __SUNPRO_CC
126 #if defined(__DECCXX_VER)
127 #define __USE_STD_IOSTREAM
128 #endif // __DECCXX_VER
130 #if defined(__GNUC__) && defined(PQXX_HAVE_GCC_DEPRECATED)
131 #define PQXX_DEPRECATED __attribute__ ((deprecated))
133 #define PQXX_DEPRECATED
145 #if !defined(PQXX_LIBEXPORT) && defined(PQXX_SHARED)
146 #define PQXX_LIBEXPORT __declspec(dllimport)
147 #endif // !PQXX_LIBEXPORT && PQXX_SHARED
154 #error If you're using Visual C++, you'll need at least version 7 (.NET)
155 #elif _MSC_VER < 1310
157 #undef PQXX_HAVE_REVERSE_ITERATOR
158 #define PQXX_NO_PARTIAL_CLASS_TEMPLATE_SPECIALISATION
159 #define PQXX_TYPENAME
160 #endif // _MSC_VER < 1310
166 #if defined(PQXX_AUTOLINK)
167 #if defined(PQXX_PQ_STATIC)
169 #pragma comment(lib, "libpqd")
171 #pragma comment(lib, "libpq")
175 #pragma comment(lib, "libpqddll")
177 #pragma comment(lib, "libpqdll")
189 #if defined(PQXX_AUTOLINK) && !defined(PQXX_INTERNAL)
192 #pragma comment(lib, "libpqxxD")
194 #pragma comment(lib, "libpqxx")
196 #else // !PQXX_SHARED
198 #pragma comment(lib, "libpqxx_staticD")
200 #pragma comment(lib, "libpqxx_static")
218 #define PQXX_QUIET_DESTRUCTORS
223 #ifndef PQXX_LIBEXPORT
224 #define PQXX_LIBEXPORT
232 #ifndef PQXX_TYPENAME
233 #define PQXX_TYPENAME typename
236 #ifndef PQXX_NOVTABLE
237 #define PQXX_NOVTABLE