MrSID Decode SDK for Raster Reference Manual
9.5.1.4427
|
00001 /* $Id$ */ 00002 /* ////////////////////////////////////////////////////////////////////////// 00003 // // 00004 // This code is Copyright (c) 2004 LizardTech, Inc, 1008 Western Avenue, // 00005 // Suite 200, Seattle, WA 98104. Unauthorized use or distribution // 00006 // prohibited. Access to and use of this code is permitted only under // 00007 // license from LizardTech, Inc. Portions of the code are protected by // 00008 // US and foreign patents and other filings. All Rights Reserved. // 00009 // // 00011 /* PUBLIC */ 00012 00022 #ifndef LT_DEFINE_H 00023 #define LT_DEFINE_H 00024 00025 #include "lt_platform.h" 00026 00027 #if defined(LT_COMPILER_MS) 00028 #pragma warning(push,4) 00029 #endif 00030 00031 00036 00037 #if defined(__cplusplus) 00038 00039 #define LT_CPLUSPLUS 00040 00041 #define LT_DISALLOW_COPY_CONSTRUCTOR(classname) \ 00042 private: \ 00043 classname(const classname &); \ 00044 classname &operator=(const classname &) 00045 00046 #endif 00047 00048 /*}@*/ 00049 00050 00055 00056 #if defined(__cplusplus) && \ 00057 ( defined(LT_COMPILER_MS) || \ 00058 defined(LT_COMPILER_GNU) || \ 00059 defined(LT_COMPILER_SUN) || \ 00060 defined(_USE_NAMESPACE_) ) 00061 00062 #define LT_NAMESPACE_SUPPORT 00063 #else 00064 00065 #undef LT_NAMESPACE_SUPPORT 00066 #endif 00067 00068 #ifdef LT_NAMESPACE_SUPPORT 00069 00070 #define LT_BEGIN_NAMESPACE( theNameSpace ) namespace theNameSpace { 00071 00072 #define LT_END_NAMESPACE( theNameSpace ) } 00073 00075 #define LT_BEGIN_NAMELESS_NAMESPACE namespace { 00076 00077 #define LT_END_NAMELESS_NAMESPACE } 00078 00080 #define LT_USE_NAMESPACE( theNameSpace ) using namespace theNameSpace; 00081 00082 #define LT_USE_NAME( theName ) using theName; 00083 #else 00084 #define LT_BEGIN_NAMESPACE( theNameSpace ) 00085 #define LT_END_NAMESPACE( theNameSpace ) 00086 00087 #define LT_BEGIN_NAMELESS_NAMESPACE 00088 #define LT_END_NAMELESS_NAMESPACE 00089 00090 #define LT_USE_NAMESPACE( theNameSpace ) 00091 #define LT_USE_NAME( theName ) 00092 #endif 00093 00094 // (note this is the same model that is used in lidar/Base.h, 00095 // except we say "USING" instead of "USE") 00096 #define LT_BEGIN_LIZARDTECH_NAMESPACE namespace LizardTech { 00097 #define LT_END_LIZARDTECH_NAMESPACE } 00098 #define LT_USING_LIZARDTECH_NAMESPACE using namespace LizardTech; 00099 00107 00108 #if (defined(LT_OS_WIN) && defined(_DEBUG)) 00109 00110 #define LT_DEBUG 00111 #endif 00112 00120 00122 #define LT_STRINGIFY(x) #x 00123 00124 #define LT_XSTRINGIFY(x) LT_STRINGIFY(x) 00125 00127 #define LT_MIN(A,B) ((A) < (B) ? (A) : (B)) 00128 00129 #define LT_MAX(A,B) ((A) > (B) ? (A) : (B)) 00130 00141 #define LT_STATUSSTRING_ADD(NUM,STR) 00142 00146 #if defined(LT_COMPILER_MS) 00147 #pragma warning(pop) 00148 #endif 00149 00150 00151 /* globally disable spurious VC++ warning resulting from use of templates */ 00152 #ifdef LT_COMPILER_MS 00153 #pragma warning(disable:4786) 00154 #endif 00155 00156 /* WinCE does not support the concept of a "current working directory" 00157 All file paths are relative to root. Emulator-based validation 00158 uses this macro to work around this limitation */ 00159 #ifdef LT_OS_WINCE 00160 #define WINCE_STORAGECARD "/Storage Card/" 00161 #else 00162 #define WINCE_STORAGECARD "" 00163 #endif 00164 00165 00166 /* other includes to provide users of lt_define.h */ 00167 #include "lt_types.h" 00168 00169 #endif /* LT_DEFINE_H */