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>
26 #define PQXX_MOVE(value) (PGSTD::move(value))
28 #define PQXX_MOVE(value) (value)
43 #if defined(min) || defined(max)
44 #error "Oops: min() and/or max() are defined as preprocessor macros.\
45 Define NOMINMAX macro before including any system headers!"
53 #define PQXX_NOVTABLE __declspec(novtable)
59 #include "pqxx/config-public-compiler.h"
62 #ifdef PQXX_BROKEN_ITERATOR
77 template<
typename Cat,
81 typename Ref=T&>
struct iterator
83 typedef Cat iterator_category;
85 typedef Dist difference_type;
87 typedef Ref reference;
92 #endif // PQXX_BROKEN_ITERATOR
94 #ifndef PQXX_HAVE_CHAR_TRAITS
124 #if defined(__SUNPRO_CC)
125 #if __SUNPRO_CC_COMPAT < 5
126 #error "This compiler version is not capable of building libpqxx."
127 #endif // __SUNPRO_CC_COMPAT < 5
128 #define PQXX_PRIVATE __hidden
129 #endif // __SUNPRO_CC
133 #if defined(__DECCXX_VER)
134 #define __USE_STD_IOSTREAM
135 #endif // __DECCXX_VER
137 #if defined(__GNUC__) && defined(PQXX_HAVE_GCC_CONST)
138 #define PQXX_CONST __attribute__ ((const))
143 #if defined(__GNUC__) && defined(PQXX_HAVE_GCC_DEPRECATED)
144 #define PQXX_DEPRECATED __attribute__ ((deprecated))
146 #define PQXX_DEPRECATED
149 #if defined(__GNUC__) && defined(PQXX_HAVE_GCC_NORETURN)
150 #define PQXX_NORETURN __attribute__ ((noreturn))
152 #define PQXX_NORETURN
155 #if defined(__GNUC__) && defined(PQXX_HAVE_GCC_PURE)
156 #define PQXX_PURE __attribute__ ((pure))
171 #if !defined(PQXX_LIBEXPORT) && defined(PQXX_SHARED)
172 #define PQXX_LIBEXPORT __declspec(dllimport)
173 #endif // !PQXX_LIBEXPORT && PQXX_SHARED
180 #error If you're using Visual C++, you'll need at least version 7 (.NET)
181 #elif _MSC_VER < 1310
183 #undef PQXX_HAVE_REVERSE_ITERATOR
184 #define PQXX_NO_PARTIAL_CLASS_TEMPLATE_SPECIALISATION
185 #define PQXX_TYPENAME
186 #endif // _MSC_VER < 1310
192 #if defined(PQXX_AUTOLINK)
193 #if defined(PQXX_PQ_STATIC)
195 #pragma comment(lib, "libpqd")
197 #pragma comment(lib, "libpq")
201 #pragma comment(lib, "libpqddll")
203 #pragma comment(lib, "libpqdll")
215 #if defined(PQXX_AUTOLINK) && !defined(PQXX_INTERNAL)
218 #pragma comment(lib, "libpqxxD")
220 #pragma comment(lib, "libpqxx")
222 #else // !PQXX_SHARED
224 #pragma comment(lib, "libpqxx_staticD")
226 #pragma comment(lib, "libpqxx_static")
244 #define PQXX_QUIET_DESTRUCTORS
249 #ifndef PQXX_LIBEXPORT
250 #define PQXX_LIBEXPORT
258 #ifndef PQXX_TYPENAME
259 #define PQXX_TYPENAME typename
262 #ifndef PQXX_NOVTABLE
263 #define PQXX_NOVTABLE