MrSID Decode SDK for Raster Reference Manual  9.5.4.4709
lt_define.h
Go to the documentation of this file.
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 */