C/C++ User's Journal STLSoft - ... Robust, Lightweight, Cross-platform, Template Software ... ATLSTL - where the Standard Template Library meets the Active Template Library COMSTL - where the Standard Template Library meets the Component Object Model
Synesis Software InetSTL - where the Standard Template Library meets the Internet UNIXSTL - Template Software for the UNIX Operating System WinSTL - where the Standard Template Library meets the Win32 API

Main Page   Modules   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members   Related Pages  

/include/recls_compiler.h

Go to the documentation of this file.
00001 /* 
00002  * File:        recls_compiler.h
00003  *
00004  * Purpose:     Compiler discrimination for the recls API.
00005  *
00006  * Created:     15th August 2003
00007  * Updated:     4th March 2005
00008  *
00009  * Home:        http://recls.org/
00010  *
00011  * Copyright 2003-2005, Matthew Wilson and Synesis Software
00012  * All rights reserved.
00013  *
00014  * Redistribution and use in source and binary forms, with or without 
00015  * modification, are permitted provided that the following conditions are met:
00016  *
00017  * - Redistributions of source code must retain the above copyright notice, this
00018  *   list of conditions and the following disclaimer. 
00019  * - Redistributions in binary form must reproduce the above copyright notice,
00020  *   this list of conditions and the following disclaimer in the documentation
00021  *   and/or other materials provided with the distribution.
00022  * - Neither the name(s) of Matthew Wilson and Synesis Software nor the names of
00023  *   any contributors may be used to endorse or promote products derived from
00024  *   this software without specific prior written permission.
00025  *
00026  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
00027  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
00028  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
00029  * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
00030  * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
00031  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
00032  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
00033  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
00034  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
00035  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
00036  * POSSIBILITY OF SUCH DAMAGE.
00037  *
00038  * 
00039 
00040 
00041 #ifndef RECLS_INCL_H_RECLS_COMPILER
00042 #define RECLS_INCL_H_RECLS_COMPILER
00043 
00044 /* File version */
00045 #ifndef RECLS_DOCUMENTATION_SKIP_SECTION
00046 # define RECLS_VER_H_RECLS_COMPILER_MAJOR       3
00047 # define RECLS_VER_H_RECLS_COMPILER_MINOR       0
00048 # define RECLS_VER_H_RECLS_COMPILER_REVISION    3
00049 # define RECLS_VER_H_RECLS_COMPILER_EDIT        14
00050 #endif /* !RECLS_DOCUMENTATION_SKIP_SECTION */
00051 
00054 /* 
00055  * Compiler detection
00056  */
00057 
00058 #if defined(__COMO__)
00059 # define RECLS_COMPILER_IS_COMO
00060 #elif defined(__BORLANDC__)
00061 # define RECLS_COMPILER_IS_BORLAND
00062 #elif defined(_CH_)
00063 # define RECLS_COMPILER_IS_CH
00064 #elif defined(__DMC__)
00065 # define RECLS_COMPILER_IS_DMC
00066 #elif defined(__GNUC__)
00067 # define RECLS_COMPILER_IS_GCC
00068 #elif defined(__INTEL_COMPILER)
00069 # define RECLS_COMPILER_IS_INTEL
00070 #elif defined(__MWERKS__)
00071 # define RECLS_COMPILER_IS_MWERKS
00072 #elif defined(__VECTORC)
00073 # define RECLS_COMPILER_IS_VECTORC
00074 #elif defined(__WATCOMC__)
00075 # define RECLS_COMPILER_IS_WATCOM
00076 #elif defined(_MSC_VER)
00077 # define RECLS_COMPILER_IS_MSVC
00078 #else
00079 # error Compiler not recognised
00080 #endif /* compiler */
00081 
00082 /* 
00083  * Includes
00084  */
00085 
00086 #if defined(RECLS_COMPILER_IS_BORLAND)
00087 # include "recls_compiler_borland.h"
00088 #elif defined(RECLS_COMPILER_IS_CH)
00089 # include "recls_compiler_ch.h"
00090 #elif defined(RECLS_COMPILER_IS_COMO)
00091 # include "recls_compiler_como.h"
00092 #elif defined(RECLS_COMPILER_IS_DMC)
00093 # include "recls_compiler_dmc.h"
00094 #elif defined(RECLS_COMPILER_IS_GCC)
00095 # include "recls_compiler_gcc.h"
00096 #elif defined(RECLS_COMPILER_IS_INTEL)
00097 # include "recls_compiler_intel.h"
00098 #elif defined(RECLS_COMPILER_IS_MSVC)
00099 # include "recls_compiler_msvc.h"
00100 #elif defined(RECLS_COMPILER_IS_MWERKS)
00101 # include "recls_compiler_mwerks.h"
00102 #elif defined(RECLS_COMPILER_IS_VECTORC)
00103 # include "recls_compiler_vectorc.h"
00104 #elif defined(RECLS_COMPILER_IS_WATCOM)
00105 # include "recls_compiler_watcom.h"
00106 #else
00107 # error Compiler not recognised. recls recognises Borland, CodeWarrior, Digital Mars, GCC, Intel, Visual C++ and Watcom.
00108 #endif /* compiler */
00109 
00110 /* 
00111  * Calling convention
00112  */
00113 
00120 #define RECLS_CALLCONV_NULL
00121 #if defined(RECLS_OVERRIDE_PLATFORM)
00122 # ifndef RECLS_CALLCONV_CDECL
00123 #  define RECLS_CALLCONV_CDECL
00124 # endif /* !RECLS_CALLCONV_CDECL */
00125 # ifndef RECLS_CALLCONV_STDDECL
00126 #  define RECLS_CALLCONV_STDDECL
00127 # endif /* !RECLS_CALLCONV_STDDECL */
00128 # ifndef RECLS_CALLCONV_FASTDECL
00129 #  define RECLS_CALLCONV_FASTDECL
00130 # endif /* !RECLS_CALLCONV_FASTDECL */
00131 # ifndef RECLS_CALLCONV_DEFAULT
00132 #  define RECLS_CALLCONV_DEFAULT
00133 # endif /* !RECLS_CALLCONV_DEFAULT */
00134 #elif defined(RECLS_DOCUMENTATION_SKIP_SECTION)
00135 # define RECLS_CALLCONV_CDECL
00136 # define RECLS_CALLCONV_STDDECL
00137 # define RECLS_CALLCONV_FASTDECL
00138 # define RECLS_CALLCONV_DEFAULT
00139 #elif defined(RECLS_PLATFORM_IS_WIN32)
00140 # define RECLS_CALLCONV_CDECL               __cdecl
00141 # define RECLS_CALLCONV_STDDECL             __stdcall
00142 # define RECLS_CALLCONV_FASTDECL            __fastcall
00143 # define RECLS_CALLCONV_DEFAULT             __cdecl
00144 #elif defined(RECLS_PLATFORM_IS_WIN16)
00145 # define RECLS_CALLCONV_CDECL               _cdecl
00146 # define RECLS_CALLCONV_STDDECL             _pascal
00147 # define RECLS_CALLCONV_FASTDECL            _pascal
00148 # define RECLS_CALLCONV_DEFAULT             _cdecl
00149 #elif defined(RECLS_PLATFORM_IS_UNIX)
00150 # define RECLS_CALLCONV_CDECL
00151 # define RECLS_CALLCONV_STDDECL
00152 # define RECLS_CALLCONV_FASTDECL
00153 # define RECLS_CALLCONV_DEFAULT
00154 #else
00155 # error Platform not recognised
00156 #endif /* __SYNSOFT_VAL_OS_WIN16 */
00157 
00158 /* 
00159  * Namespace
00160  */
00161 
00162 #if !defined(RECLS_NO_NAMESPACE)
00163 namespace recls
00164 {
00165 #endif /* !RECLS_NO_NAMESPACE */
00166 
00167 /* 
00168  * Typedefs
00169  */
00170 
00172 typedef unsigned int        recls_bool_t;
00173 
00174 /* 
00175  * Namespace typedefs
00176  */
00177 
00178 #if !defined(RECLS_NO_NAMESPACE)
00179 typedef recls_sint8_t       sint8_t;
00180 typedef recls_uint8_t       uint8_t;
00181 
00182 typedef recls_sint16_t      sint16_t;
00183 typedef recls_uint16_t      uint16_t;
00184 
00185 typedef recls_sint32_t      sint32_t;
00186 typedef recls_uint32_t      uint32_t;
00187 
00188 typedef recls_sint64_t      sint64_t;
00189 typedef recls_uint64_t      uint64_t;
00190 
00191 typedef recls_bool_t        bool_t;
00192 #endif /* !RECLS_NO_NAMESPACE */
00193 
00194 /* 
00195  * Constants and definitions
00196  */
00197 
00198 /* 
00199  * Namespace
00200  */
00201 
00202 #if !defined(RECLS_NO_NAMESPACE)
00203 } /* namespace recls */
00204 #endif /* !RECLS_NO_NAMESPACE */
00205 
00206 /* 
00207 
00208 #endif /* !RECLS_INCL_H_RECLS_COMPILER */
00209 
00210 /* 

recls Library documentation Synesis Software Pty Ltd, 2001-2005