MrSID Decode SDK for Raster Reference Manual  9.1.0.4045
lt_define.h
Go to the documentation of this file.
1 /* $Id$ */
2 /* //////////////////////////////////////////////////////////////////////////
3 // //
4 // This code is Copyright (c) 2004 LizardTech, Inc, 1008 Western Avenue, //
5 // Suite 200, Seattle, WA 98104. Unauthorized use or distribution //
6 // prohibited. Access to and use of this code is permitted only under //
7 // license from LizardTech, Inc. Portions of the code are protected by //
8 // US and foreign patents and other filings. All Rights Reserved. //
9 // //
11 /* PUBLIC */
12 
22 #ifndef LT_DEFINE_H
23 #define LT_DEFINE_H
24 
25 #include "lt_platform.h"
26 
27 #if defined(LT_COMPILER_MS)
28  #pragma warning(push,4)
29 #endif
30 
31 
36 
37 #if defined(__cplusplus)
38 
39  #define LT_CPLUSPLUS
40 
41  #define LT_DISALLOW_COPY_CONSTRUCTOR(classname) \
42  private: \
43  classname(const classname &); \
44  classname &operator=(const classname &)
45 
46 #endif
47 
48 /*}@*/
49 
50 
55 
56 #if defined(__cplusplus) && \
57  ( defined(LT_COMPILER_MS) || \
58  defined(LT_COMPILER_GNU) || \
59  defined(LT_COMPILER_SUN) || \
60  defined(_USE_NAMESPACE_) )
61 
62  #define LT_NAMESPACE_SUPPORT
63 #else
64 
65  #undef LT_NAMESPACE_SUPPORT
66 #endif
67 
68 #ifdef LT_NAMESPACE_SUPPORT
69 
70  #define LT_BEGIN_NAMESPACE( theNameSpace ) namespace theNameSpace {
71 
72  #define LT_END_NAMESPACE( theNameSpace ) }
73 
75  #define LT_BEGIN_NAMELESS_NAMESPACE namespace {
76 
77  #define LT_END_NAMELESS_NAMESPACE }
78 
80  #define LT_USE_NAMESPACE( theNameSpace ) using namespace theNameSpace;
81 
82  #define LT_USE_NAME( theName ) using theName;
83 #else
84  #define LT_BEGIN_NAMESPACE( theNameSpace )
85  #define LT_END_NAMESPACE( theNameSpace )
86 
87  #define LT_BEGIN_NAMELESS_NAMESPACE
88  #define LT_END_NAMELESS_NAMESPACE
89 
90  #define LT_USE_NAMESPACE( theNameSpace )
91  #define LT_USE_NAME( theName )
92 #endif
93 
94 // (note this is the same model that is used in lidar/Base.h,
95 // except we say "USING" instead of "USE")
96 #define LT_BEGIN_LIZARDTECH_NAMESPACE namespace LizardTech {
97 #define LT_END_LIZARDTECH_NAMESPACE }
98 #define LT_USING_LIZARDTECH_NAMESPACE using namespace LizardTech;
99 
107 
108 #if (defined(LT_OS_WIN) && defined(_DEBUG))
109 
110  #define LT_DEBUG
111 #endif
112 
120 
122 #define LT_STRINGIFY(x) #x
123 
124 #define LT_XSTRINGIFY(x) LT_STRINGIFY(x)
125 
127 #define LT_MIN(A,B) ((A) < (B) ? (A) : (B))
128 
129 #define LT_MAX(A,B) ((A) > (B) ? (A) : (B))
130 
141 #define LT_STATUSSTRING_ADD(NUM,STR)
142 
146 #if defined(LT_COMPILER_MS)
147  #pragma warning(pop)
148 #endif
149 
150 
151 /* globally disable spurious VC++ warning resulting from use of templates */
152 #ifdef LT_COMPILER_MS
153  #pragma warning(disable:4786)
154 #endif
155 
156 /* WinCE does not support the concept of a "current working directory"
157  All file paths are relative to root. Emulator-based validation
158  uses this macro to work around this limitation */
159 #ifdef LT_OS_WINCE
160 #define WINCE_STORAGECARD "/Storage Card/"
161 #else
162 #define WINCE_STORAGECARD ""
163 #endif
164 
165 
166 /* other includes to provide users of lt_define.h */
167 #include "lt_types.h"
168 
169 #endif /* LT_DEFINE_H */
Preprocessor symbols for canonical identification of OS, architecture, and compiler.
Declaration of standard types and limits in a C-interface.

LizardTech