1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>MySQL++ Reference Manual</title>
<meta http-equiv="Content-type" content="text/html;charset=iso-8859-1">
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head>
<body>
<!-- Generated by Doxygen 1.8.5 -->
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main Page</span></a></li>
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="files.html"><span>File List</span></a></li>
<li><a href="globals.html"><span>File Members</span></a></li>
</ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">common.h</div> </div>
</div><!--header-->
<div class="contents">
<a href="common_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment">/***********************************************************************</span></div>
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> Copyright (c) 1998 by Kevin Atkinson, (c) 1999-2001 by MySQL AB,</span></div>
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment"> (c) 2004-2009 by Educational Technology Resources, Inc., and</span></div>
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment"> (c) 2009 by Warren Young. Others may also hold copyrights on code</span></div>
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment"> in this file. See the CREDITS.txt file in the top directory of the</span></div>
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="comment"> distribution for details.</span></div>
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="comment"></span></div>
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment"> This file is part of MySQL++.</span></div>
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment"></span></div>
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment"> MySQL++ is free software; you can redistribute it and/or modify it</span></div>
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="comment"> under the terms of the GNU Lesser General Public License as published</span></div>
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="comment"> by the Free Software Foundation; either version 2.1 of the License, or</span></div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="comment"> (at your option) any later version.</span></div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="comment"></span></div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="comment"> MySQL++ is distributed in the hope that it will be useful, but WITHOUT</span></div>
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="comment"> ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or</span></div>
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="comment"> FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public</span></div>
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="comment"> License for more details.</span></div>
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="comment"></span></div>
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="comment"> You should have received a copy of the GNU Lesser General Public</span></div>
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="comment"> License along with MySQL++; if not, write to the Free Software</span></div>
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="comment"> Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301</span></div>
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="comment"> USA</span></div>
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="comment">***********************************************************************/</span></div>
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> </div>
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="preprocessor">#if !defined(MYSQLPP_COMMON_H)</span></div>
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor"></span><span class="preprocessor">#define MYSQLPP_COMMON_H</span></div>
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="preprocessor"></span></div>
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="preprocessor">#if !defined(DOXYGEN_IGNORE)</span></div>
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="preprocessor"></span><span class="comment">// Doxygen will not generate documentation for the following stuff.</span></div>
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> </div>
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="comment">// Enable SSQLS by default. Turned off below on platforms where we</span></div>
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="comment">// know it doesn't work.</span></div>
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="preprocessor">#define MYSQLPP_SSQLS_COMPATIBLE</span></div>
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="preprocessor"></span></div>
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="comment">// For all platforms but Visual C++ 2003, the following macro is just</span></div>
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="comment">// an alias for "*this". It needs a more complicated definition on</span></div>
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="comment">// VC++ 2003 to work around an error in the overloaded operator lookup</span></div>
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="comment">// logic. For an explanation of the problem, see:</span></div>
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="comment">// http://groups.google.com/group/microsoft.public.vc.stl/browse_thread/thread/9a68d84644e64f15</span></div>
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="preprocessor">#define MYSQLPP_QUERY_THISPTR *this</span></div>
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="preprocessor"></span></div>
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="comment">// Work out major platform-specific stuff here.</span></div>
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> <span class="preprocessor">#if defined(__WIN32__) || defined(_WIN32)</span></div>
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="preprocessor"></span><span class="preprocessor"># define MYSQLPP_PLATFORM_WINDOWS</span></div>
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span> <span class="preprocessor"></span> <span class="comment">// Windows compiler support. Tested with Microsoft Visual C++,</span></div>
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  <span class="comment">// Borland C++ Builder, and MinGW GCC.</span></div>
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> </div>
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  <span class="comment">// Don't let windows.h (via Connector/C) #define min/max</span></div>
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> <span class="preprocessor"> #define NOMINMAX</span></div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span> <span class="preprocessor"></span></div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  <span class="comment">// Stuff for Visual C++ only</span></div>
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> <span class="preprocessor"># if defined(_MSC_VER)</span></div>
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span> <span class="preprocessor"></span><span class="preprocessor"># define MYSQLPP_PLATFORM_VISUAL_CPP</span></div>
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span> <span class="preprocessor"></span> <span class="comment">// MS *still* doesn't ship stdint.h, through VC++ 2008 at least.</span></div>
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  <span class="comment">// This means we have to take a wild guess at appropriate</span></div>
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  <span class="comment">// integer types in lib/sql_types.h. See test/inttypes.cpp for</span></div>
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  <span class="comment">// tests that check whether we've guessed well.</span></div>
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> <span class="preprocessor"># define MYSQLPP_NO_STDINT_H</span></div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> <span class="preprocessor"></span><span class="preprocessor"># if _MSC_VER < 1400</span></div>
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> <span class="preprocessor"></span> <span class="comment">// Workarounds for limitations of VC++ 2003 that are fixed</span></div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  <span class="comment">// in 2005 and later.</span></div>
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> <span class="preprocessor"># undef MYSQLPP_QUERY_THISPTR</span></div>
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> <span class="preprocessor"></span><span class="preprocessor"># define MYSQLPP_QUERY_THISPTR dynamic_cast<std::ostream&>(*this)</span></div>
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> <span class="preprocessor"></span><span class="preprocessor"># undef MYSQLPP_SSQLS_COMPATIBLE</span></div>
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> <span class="preprocessor"></span><span class="preprocessor"># elif !defined(_STLP_VERSION) && !defined(_STLP_VERSION_STR)</span></div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> <span class="preprocessor"></span> <span class="comment">// VC++ 2005 or newer and not using STLport, so #define</span></div>
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  <span class="comment">// portability flags indicating features we can use from</span></div>
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  <span class="comment">// the compiler's native RTL.</span></div>
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span> <span class="preprocessor"># define MYSQLPP_HAVE_LOCALTIME_S</span></div>
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span> <span class="preprocessor"></span><span class="preprocessor"># define MYSQLPP_HAVE_STD__NOINIT</span></div>
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> <span class="preprocessor"></span><span class="preprocessor"># endif</span></div>
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> <span class="preprocessor"></span></div>
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  <span class="comment">// Disable complaints about STL data members: VC++ believes</span></div>
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  <span class="comment">// these need to be __declspec(dllexport) for some reason.</span></div>
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> <span class="preprocessor"># pragma warning(disable: 4251)</span></div>
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span> <span class="preprocessor"></span> <span class="comment">// Disable complaint that VC++ doesn't grok throw specs</span></div>
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> <span class="preprocessor"># pragma warning(disable: 4290)</span></div>
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> <span class="preprocessor"></span> <span class="comment">// Disable whining about using 'this' as a member initializer on VC++.</span></div>
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> <span class="preprocessor"># pragma warning(disable: 4355)</span></div>
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> <span class="preprocessor"></span> <span class="comment">// Disable whining about implicit conversions to bool</span></div>
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> <span class="preprocessor"># pragma warning(disable: 4800)</span></div>
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> <span class="preprocessor"></span> <span class="comment">// Disable nagging about new "secure" functions like strncpy_s()</span></div>
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span> <span class="preprocessor"># pragma warning(disable: 4996)</span></div>
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> <span class="preprocessor"></span> <span class="comment">// Call _snprintf() for VC++ version of snprintf() function</span></div>
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span> <span class="preprocessor"># define snprintf _snprintf</span></div>
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span> <span class="preprocessor"></span><span class="preprocessor"># endif</span></div>
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> <span class="preprocessor"></span></div>
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  <span class="comment">// Define DLL import/export tags for Windows compilers, where we build</span></div>
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  <span class="comment">// the library into a DLL, for LGPL license compatibility reasons.</span></div>
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  <span class="comment">// (This is based on a similar mechanism in wxWindows.)</span></div>
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span> </div>
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span> <span class="preprocessor"> #ifdef MYSQLPP_MAKING_DLL</span></div>
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> <span class="preprocessor"></span> <span class="comment">// When making the DLL, export tagged symbols, so they appear</span></div>
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  <span class="comment">// in the import library.</span></div>
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span> <span class="preprocessor"> #define MYSQLPP_EXPORT __declspec(dllexport)</span></div>
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span> <span class="preprocessor"></span><span class="preprocessor"> #elif !defined(MYSQLPP_NO_DLL)</span></div>
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span> <span class="preprocessor"></span> <span class="comment">// We must be _using_ the DLL, so import symbols instead.</span></div>
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span> <span class="preprocessor"> #define MYSQLPP_EXPORT __declspec(dllimport)</span></div>
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span> <span class="preprocessor"></span><span class="preprocessor"> #else</span></div>
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span> <span class="preprocessor"></span> <span class="comment">// Not making a DLL at all, so no-op these declspecs</span></div>
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span> <span class="preprocessor"> #define MYSQLPP_EXPORT</span></div>
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> <span class="preprocessor"></span><span class="preprocessor"> #endif</span></div>
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span> <span class="preprocessor"></span></div>
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  <span class="comment">// We need to use the DOS/Windows path separator here</span></div>
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span> <span class="preprocessor"> #define MYSQLPP_PATH_SEPARATOR '\\'</span></div>
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span> <span class="preprocessor"></span><span class="preprocessor">#else</span></div>
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span> <span class="preprocessor"></span> <span class="comment">// If not VC++, MinGW, or Xcode, we assume we're on a system using</span></div>
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  <span class="comment">// autoconf, so bring in the config.h file it wrote containing the</span></div>
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  <span class="comment">// config test results. Only do this during the library build, and</span></div>
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  <span class="comment">// even then, not if included from a MySQL++ header file, since</span></div>
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  <span class="comment">// config.h cannot be safely installed with the other headers.</span></div>
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span> <span class="preprocessor"># if defined(MYSQLPP_NOT_HEADER) && !defined(MYSQLPP_XCODE)</span></div>
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span> <span class="preprocessor"></span><span class="preprocessor"># include "config.h"</span></div>
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span> <span class="preprocessor"># endif</span></div>
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span> <span class="preprocessor"></span></div>
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  <span class="comment">// Make DLL stuff a no-op on this platform.</span></div>
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span> <span class="preprocessor"> #define MYSQLPP_EXPORT</span></div>
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span> <span class="preprocessor"></span></div>
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  <span class="comment">// Assume POSIX path separator</span></div>
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span> <span class="preprocessor"> #define MYSQLPP_PATH_SEPARATOR '/'</span></div>
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span> <span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span> <span class="preprocessor"></span></div>
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span> <span class="preprocessor">#if defined(MYSQLPP_MYSQL_HEADERS_BURIED)</span></div>
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span> <span class="preprocessor"></span><span class="preprocessor"># include <mysql/mysql_version.h></span></div>
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span> <span class="preprocessor">#else</span></div>
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span> <span class="preprocessor"></span><span class="preprocessor"># include <mysql_version.h></span></div>
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span> <span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span> <span class="preprocessor"></span></div>
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span> <span class="keyword">namespace </span>mysqlpp {</div>
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span> </div>
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span> <span class="keyword">const</span> <span class="keywordtype">bool</span> use_exceptions = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span> </div>
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span> <span class="keyword">enum</span> sql_cmp_type { sql_use_compare };</div>
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span> </div>
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span> <span class="preprocessor">#if !defined(DOXYGEN_IGNORE)</span></div>
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span> <span class="preprocessor"></span><span class="comment">// Figure out how to get large integer support on this system. Suppress</span></div>
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span> <span class="comment">// refman documentation for these typedefs, as they're system-dependent.</span></div>
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span> <span class="preprocessor">#if defined(MYSQLPP_NO_LONG_LONGS)</span></div>
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span> <span class="preprocessor"></span><span class="comment">// Alias "longlong" and "ulonglong" to the regular "long" counterparts</span></div>
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span> <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> ulonglong;</div>
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span> <span class="keyword">typedef</span> <span class="keywordtype">long</span> longlong;</div>
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span> <span class="preprocessor">#elif defined(_MSC_VER)</span></div>
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span> <span class="preprocessor"></span><span class="comment">// It's VC++, so we'll use Microsoft's 64-bit integer types</span></div>
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span> <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> __int64 ulonglong;</div>
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span> <span class="keyword">typedef</span> __int64 longlong;</div>
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span> <span class="preprocessor">#else</span></div>
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span> <span class="preprocessor"></span><span class="comment">// No better idea, so assume the C99 convention. If your compiler</span></div>
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span> <span class="comment">// doesn't support this, please provide a patch to extend this ifdef, or</span></div>
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span> <span class="comment">// define MYSQLPP_NO_LONG_LONGS.</span></div>
<div class="line"><a name="l00160"></a><span class="lineno"> 160</span> <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <span class="keywordtype">long</span> ulonglong;</div>
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span> <span class="keyword">typedef</span> <span class="keywordtype">long</span> <span class="keywordtype">long</span> longlong;</div>
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span> <span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span> <span class="preprocessor"></span><span class="preprocessor">#endif // !defined(DOXYGEN_IGNORE)</span></div>
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span> <span class="preprocessor"></span></div>
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span> <span class="preprocessor">#if !defined(MYSQLPP_NO_UNSIGNED_INT_TYPES)</span></div>
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span> <span class="preprocessor"></span><span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> ulong;</div>
<div class="line"><a name="l00172"></a><span class="lineno"> 172</span> <span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span> <span class="preprocessor"></span></div>
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span> } <span class="comment">// end namespace mysqlpp</span></div>
<div class="line"><a name="l00175"></a><span class="lineno"> 175</span> </div>
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span> <span class="comment">// The MySQL headers define these macros, which is completely wrong in a</span></div>
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span> <span class="comment">// C++ project. Undo the damage.</span></div>
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span> <span class="preprocessor">#undef min</span></div>
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span> <span class="preprocessor"></span><span class="preprocessor">#undef max</span></div>
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span> <span class="preprocessor"></span></div>
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span> <span class="preprocessor">#endif // !defined(DOXYGEN_IGNORE)</span></div>
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span> <span class="preprocessor"></span></div>
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span> </div>
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span> <span class="comment">// Now that we've defined all the stuff above, we can pull in the full</span></div>
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span> <span class="comment">// MySQL header. Basically, the above largely replaces MySQL's my_global.h</span></div>
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span> <span class="comment">// while actually working with C++. This is why we disobey the MySQL</span></div>
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span> <span class="comment">// developer docs, which recommend including my_global.h before mysql.h.</span></div>
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span> <span class="preprocessor">#if defined(MYSQLPP_MYSQL_HEADERS_BURIED)</span></div>
<div class="line"><a name="l00189"></a><span class="lineno"> 189</span> <span class="preprocessor"></span><span class="preprocessor"># include <mysql/mysql.h></span></div>
<div class="line"><a name="l00190"></a><span class="lineno"> 190</span> <span class="preprocessor">#else</span></div>
<div class="line"><a name="l00191"></a><span class="lineno"> 191</span> <span class="preprocessor"></span><span class="preprocessor"># include <mysql.h></span></div>
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span> <span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00193"></a><span class="lineno"> 193</span> <span class="preprocessor"></span></div>
<div class="line"><a name="l00194"></a><span class="lineno"> 194</span> <span class="preprocessor">#endif // !defined(MYSQLPP_COMMON_H)</span></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Wed Mar 18 2015 18:55:03 for MySQL++ by  <a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.5
</small></address>
</body>
</html>
|