You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							463 lines
						
					
					
						
							16 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							463 lines
						
					
					
						
							16 KiB
						
					
					
				
								/* /////////////////////////////////////////////////////////////////////////
							 | 
						|
								 * File:        stlsoft/internal/_undefs.h
							 | 
						|
								 *
							 | 
						|
								 * Purpose:     The #undefs for stlsoft/stlsoft.h.
							 | 
						|
								 *
							 | 
						|
								 * Created:     1st December 2003
							 | 
						|
								 * Updated:     10th August 2009
							 | 
						|
								 *
							 | 
						|
								 * Home:        http://stlsoft.org/
							 | 
						|
								 *
							 | 
						|
								 * Copyright (c) 2003-2009, Matthew Wilson and Synesis Software
							 | 
						|
								 * All rights reserved.
							 | 
						|
								 *
							 | 
						|
								 * Redistribution and use in source and binary forms, with or without
							 | 
						|
								 * modification, are permitted provided that the following conditions are met:
							 | 
						|
								 *
							 | 
						|
								 * - Redistributions of source code must retain the above copyright notice, this
							 | 
						|
								 *   list of conditions and the following disclaimer.
							 | 
						|
								 * - Redistributions in binary form must reproduce the above copyright notice,
							 | 
						|
								 *   this list of conditions and the following disclaimer in the documentation
							 | 
						|
								 *   and/or other materials provided with the distribution.
							 | 
						|
								 * - Neither the name(s) of Matthew Wilson and Synesis Software nor the names of
							 | 
						|
								 *   any contributors may be used to endorse or promote products derived from
							 | 
						|
								 *   this software without specific prior written permission.
							 | 
						|
								 *
							 | 
						|
								 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
							 | 
						|
								 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
							 | 
						|
								 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
							 | 
						|
								 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
							 | 
						|
								 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
							 | 
						|
								 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
							 | 
						|
								 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
							 | 
						|
								 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
							 | 
						|
								 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
							 | 
						|
								 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
							 | 
						|
								 * POSSIBILITY OF SUCH DAMAGE.
							 | 
						|
								 *
							 | 
						|
								 * ////////////////////////////////////////////////////////////////////// */
							 | 
						|
								
							 | 
						|
								
							 | 
						|
								#ifndef STLSOFT_INCL_STLSOFT_H_STLSOFT
							 | 
						|
								# error This file must not be included independently of stlsoft/stlsoft.h
							 | 
						|
								#endif /* !STLSOFT_INCL_STLSOFT_H_STLSOFT */
							 | 
						|
								
							 | 
						|
								/** \file stlsoft/internal/_undefs.h
							 | 
						|
								 *
							 | 
						|
								 * The \#undefs for stlsoft/stlsoft.h.
							 | 
						|
								 * (\ref group__library__internal)
							 | 
						|
								 */
							 | 
						|
								
							 | 
						|
								#ifdef STLSOFT_INCL_H_STLSOFT__UNDEFS
							 | 
						|
								# error This file cannot be included more than once in any compilation unit
							 | 
						|
								#endif /* STLSOFT_INCL_H_STLSOFT__UNDEFS */
							 | 
						|
								
							 | 
						|
								/* ////////////////////////////////////////////////////////////////////// */
							 | 
						|
								
							 | 
						|
								#ifndef STLSOFT_DOCUMENTATION_SKIP_SECTION
							 | 
						|
								# define STLSOFT_VER_H_STLSOFT__UNDEFS_MAJOR    2
							 | 
						|
								# define STLSOFT_VER_H_STLSOFT__UNDEFS_MINOR    8
							 | 
						|
								# define STLSOFT_VER_H_STLSOFT__UNDEFS_REVISION 1
							 | 
						|
								# define STLSOFT_VER_H_STLSOFT__UNDEFS_EDIT     27
							 | 
						|
								#endif /* !STLSOFT_DOCUMENTATION_SKIP_SECTION */
							 | 
						|
								
							 | 
						|
								/* /////////////////////////////////////////////////////////////////////////
							 | 
						|
								 * Auto-generation and compatibility
							 | 
						|
								 */
							 | 
						|
								
							 | 
						|
								/*
							 | 
						|
								[<[STLSOFT-AUTO:NO-UNITTEST]>]
							 | 
						|
								[<[STLSOFT-AUTO:NO-DOCFILELABEL]>]
							 | 
						|
								*/
							 | 
						|
								
							 | 
						|
								/* /////////////////////////////////////////////////////////////////////////
							 | 
						|
								 * #undefs
							 | 
						|
								 */
							 | 
						|
								
							 | 
						|
								/* Messaging
							 | 
						|
								 *
							 | 
						|
								 * Discriminated symbol is STLSOFT_CF_PRAGMA_MESSAGE_SUPPORT
							 | 
						|
								 */
							 | 
						|
								
							 | 
						|
								#ifdef STLSOFT_CF_PRAGMA_MESSAGE_SUPPORT
							 | 
						|
								# define STLSOFT_CF_PRAGMA_MESSAGE_SUPPORT
							 | 
						|
								#endif /* STLSOFT_CF_PRAGMA_MESSAGE_SUPPORT */
							 | 
						|
								
							 | 
						|
								/* Template support.
							 | 
						|
								 *
							 | 
						|
								 * Discriminated symbol is STLSOFT_CF_TEMPLATE_SUPPORT
							 | 
						|
								 */
							 | 
						|
								
							 | 
						|
								#ifdef STLSOFT_CF_TEMPLATE_SUPPORT
							 | 
						|
								# undef STLSOFT_CF_TEMPLATE_SUPPORT
							 | 
						|
								#endif /* STLSOFT_CF_TEMPLATE_SUPPORT */
							 | 
						|
								
							 | 
						|
								/* Variadic Macros
							 | 
						|
								 *
							 | 
						|
								 * Discriminated symbol is STLSOFT_CF_SUPPORTS_VARIADIC_MACROS
							 | 
						|
								 */
							 | 
						|
								
							 | 
						|
								#ifdef STLSOFT_CF_SUPPORTS_VARIADIC_MACROS
							 | 
						|
								# define STLSOFT_CF_SUPPORTS_VARIADIC_MACROS
							 | 
						|
								#endif /* STLSOFT_CF_SUPPORTS_VARIADIC_MACROS */
							 | 
						|
								
							 | 
						|
								/* Exception signature support.
							 | 
						|
								 *
							 | 
						|
								 * Discriminated symbol is STLSOFT_CF_EXCEPTION_SIGNATURE_SUPPORT
							 | 
						|
								 */
							 | 
						|
								#ifdef STLSOFT_CF_EXCEPTION_SIGNATURE_SUPPORT
							 | 
						|
								# undef STLSOFT_CF_EXCEPTION_SIGNATURE_SUPPORT
							 | 
						|
								#endif /* STLSOFT_CF_EXCEPTION_SIGNATURE_SUPPORT */
							 | 
						|
								
							 | 
						|
								/* Native bool support.
							 | 
						|
								 *
							 | 
						|
								 * Discriminated symbol is STLSOFT_CF_NATIVE_BOOL_SUPPORT
							 | 
						|
								 */
							 | 
						|
								#ifdef STLSOFT_CF_NATIVE_BOOL_SUPPORT
							 | 
						|
								# undef STLSOFT_CF_NATIVE_BOOL_SUPPORT
							 | 
						|
								#endif /* STLSOFT_CF_NATIVE_BOOL_SUPPORT */
							 | 
						|
								
							 | 
						|
								/* Native / typedef'd wchar_t support.
							 | 
						|
								 *
							 | 
						|
								 * Discriminated symbols are STLSOFT_CF_NATIVE_WCHAR_T_SUPPORT
							 | 
						|
								 *                           STLSOFT_CF_TYPEDEF_WCHAR_T_SUPPORT
							 | 
						|
								 *
							 | 
						|
								 * Implementation symbol is STLSOFT_NATIVE_WCHAR_T
							 | 
						|
								 */
							 | 
						|
								#ifdef STLSOFT_CF_NATIVE_WCHAR_T_SUPPORT
							 | 
						|
								# undef STLSOFT_CF_NATIVE_WCHAR_T_SUPPORT
							 | 
						|
								#endif /* STLSOFT_CF_NATIVE_WCHAR_T_SUPPORT */
							 | 
						|
								
							 | 
						|
								#ifdef STLSOFT_CF_TYPEDEF_WCHAR_T_SUPPORT
							 | 
						|
								# undef STLSOFT_CF_TYPEDEF_WCHAR_T_SUPPORT
							 | 
						|
								#endif /* STLSOFT_CF_TYPEDEF_WCHAR_T_SUPPORT */
							 | 
						|
								
							 | 
						|
								#ifdef STLSOFT_NATIVE_WCHAR_T
							 | 
						|
								# undef STLSOFT_NATIVE_WCHAR_T
							 | 
						|
								#endif /* STLSOFT_NATIVE_WCHAR_T */
							 | 
						|
								
							 | 
						|
								/* 8-bit, 16-bit, 32-bit, 64-bit type support
							 | 
						|
								 */
							 | 
						|
								
							 | 
						|
								#ifdef STLSOFT_CF_8BIT_INT_SUPPORT
							 | 
						|
								# undef STLSOFT_CF_8BIT_INT_SUPPORT
							 | 
						|
								#endif /* STLSOFT_CF_8BIT_INT_SUPPORT */
							 | 
						|
								
							 | 
						|
								#ifdef STLSOFT_SI08_T_BASE_TYPE
							 | 
						|
								# undef STLSOFT_SI08_T_BASE_TYPE
							 | 
						|
								#endif /* STLSOFT_SI08_T_BASE_TYPE */
							 | 
						|
								#ifdef STLSOFT_UI08_T_BASE_TYPE
							 | 
						|
								# undef STLSOFT_UI08_T_BASE_TYPE
							 | 
						|
								#endif /* STLSOFT_UI08_T_BASE_TYPE */
							 | 
						|
								
							 | 
						|
								#ifdef STLSOFT_CF_16BIT_INT_SUPPORT
							 | 
						|
								# undef STLSOFT_CF_16BIT_INT_SUPPORT
							 | 
						|
								#endif /* STLSOFT_CF_16BIT_INT_SUPPORT */
							 | 
						|
								
							 | 
						|
								#ifdef STLSOFT_SI16_T_BASE_TYPE
							 | 
						|
								# undef STLSOFT_SI16_T_BASE_TYPE
							 | 
						|
								#endif /* STLSOFT_SI16_T_BASE_TYPE */
							 | 
						|
								#ifdef STLSOFT_UI16_T_BASE_TYPE
							 | 
						|
								# undef STLSOFT_UI16_T_BASE_TYPE
							 | 
						|
								#endif /* STLSOFT_UI16_T_BASE_TYPE */
							 | 
						|
								
							 | 
						|
								#ifdef STLSOFT_CF_32BIT_INT_SUPPORT
							 | 
						|
								# undef STLSOFT_CF_32BIT_INT_SUPPORT
							 | 
						|
								#endif /* STLSOFT_CF_32BIT_INT_SUPPORT */
							 | 
						|
								
							 | 
						|
								#ifdef STLSOFT_SI32_T_BASE_TYPE
							 | 
						|
								# undef STLSOFT_SI32_T_BASE_TYPE
							 | 
						|
								#endif /* STLSOFT_SI32_T_BASE_TYPE */
							 | 
						|
								#ifdef STLSOFT_UI32_T_BASE_TYPE
							 | 
						|
								# undef STLSOFT_UI32_T_BASE_TYPE
							 | 
						|
								#endif /* STLSOFT_UI32_T_BASE_TYPE */
							 | 
						|
								
							 | 
						|
								#ifdef STLSOFT_CF_64BIT_INT_SUPPORT
							 | 
						|
								# undef STLSOFT_CF_64BIT_INT_SUPPORT
							 | 
						|
								#endif /* STLSOFT_CF_64BIT_INT_SUPPORT */
							 | 
						|
								
							 | 
						|
								#ifdef STLSOFT_SI64_T_BASE_TYPE
							 | 
						|
								# undef STLSOFT_SI64_T_BASE_TYPE
							 | 
						|
								#endif /* STLSOFT_SI64_T_BASE_TYPE */
							 | 
						|
								#ifdef STLSOFT_UI64_T_BASE_TYPE
							 | 
						|
								# undef STLSOFT_UI64_T_BASE_TYPE
							 | 
						|
								#endif /* STLSOFT_UI64_T_BASE_TYPE */
							 | 
						|
								
							 | 
						|
								/* Distinct type support
							 | 
						|
								 *
							 | 
						|
								 */
							 | 
						|
								
							 | 
						|
								#ifdef STLSOFT_CF_INT_DISTINCT_INT_TYPE
							 | 
						|
								# undef STLSOFT_CF_INT_DISTINCT_INT_TYPE
							 | 
						|
								#endif /* STLSOFT_CF_INT_DISTINCT_INT_TYPE */
							 | 
						|
								
							 | 
						|
								#ifdef STLSOFT_CF_LONG_DISTINCT_INT_TYPE
							 | 
						|
								# undef STLSOFT_CF_LONG_DISTINCT_INT_TYPE
							 | 
						|
								#endif /* STLSOFT_CF_LONG_DISTINCT_INT_TYPE */
							 | 
						|
								
							 | 
						|
								/* #ifdef STLSOFT_CF_NATIVE_INT_8_ */
							 | 
						|
								
							 | 
						|
								/* Compiler supports member constants.
							 | 
						|
								 *
							 | 
						|
								 * Discriminated symbol is STLSOFT_CF_MEMBER_CONSTANT_SUPPORT
							 | 
						|
								 */
							 | 
						|
								#ifdef STLSOFT_CF_MEMBER_CONSTANT_SUPPORT
							 | 
						|
								# undef STLSOFT_CF_MEMBER_CONSTANT_SUPPORT
							 | 
						|
								#endif /* STLSOFT_CF_MEMBER_CONSTANT_SUPPORT */
							 | 
						|
								
							 | 
						|
								/* Compiler supports static assert.
							 | 
						|
								 *
							 | 
						|
								 * Discriminated symbol is STLSOFT_CF_STATIC_ASSERT_SUPPORT
							 | 
						|
								 */
							 | 
						|
								#ifdef STLSOFT_CF_STATIC_ASSERT_SUPPORT
							 | 
						|
								# undef STLSOFT_CF_STATIC_ASSERT_SUPPORT
							 | 
						|
								#endif /* STLSOFT_CF_STATIC_ASSERT_SUPPORT */
							 | 
						|
								
							 | 
						|
								/* Function signature requires full-qualification.
							 | 
						|
								 *
							 | 
						|
								 * Discriminated symbol is STLSOFT_CF_FUNCTION_SIGNATURE_FULL_ARG_QUALIFICATION_REQUIRED
							 | 
						|
								 */
							 | 
						|
								#ifdef STLSOFT_CF_FUNCTION_SIGNATURE_FULL_ARG_QUALIFICATION_REQUIRED
							 | 
						|
								# undef STLSOFT_CF_FUNCTION_SIGNATURE_FULL_ARG_QUALIFICATION_REQUIRED
							 | 
						|
								#endif /* STLSOFT_CF_FUNCTION_SIGNATURE_FULL_ARG_QUALIFICATION_REQUIRED */
							 | 
						|
								
							 | 
						|
								/* RTTI support.
							 | 
						|
								 *
							 | 
						|
								 * Discriminated symbol is STLSOFT_CF_RTTI_SUPPORT
							 | 
						|
								 */
							 | 
						|
								#ifdef STLSOFT_CF_RTTI_SUPPORT
							 | 
						|
								# undef STLSOFT_CF_RTTI_SUPPORT
							 | 
						|
								#endif /* STLSOFT_CF_RTTI_SUPPORT */
							 | 
						|
								
							 | 
						|
								/* Exception support.
							 | 
						|
								 *
							 | 
						|
								 * Discriminated symbol is STLSOFT_CF_EXCEPTION_SUPPORT
							 | 
						|
								 */
							 | 
						|
								#ifdef STLSOFT_CF_EXCEPTION_SUPPORT
							 | 
						|
								# undef STLSOFT_CF_EXCEPTION_SUPPORT
							 | 
						|
								#endif /* STLSOFT_CF_EXCEPTION_SUPPORT */
							 | 
						|
								
							 | 
						|
								/* Template class default fundamental type argument support
							 | 
						|
								 *
							 | 
						|
								 * Discriminated symbol is STLSOFT_CF_TEMPLATE_CLASS_DEFAULT_FUNDAMENTAL_ARGUMENT_SUPPORT
							 | 
						|
								 *
							 | 
						|
								 * Microsoft Visual C++ 4.2 does not support template default fundamental type arguments.
							 | 
						|
								 */
							 | 
						|
								#ifdef STLSOFT_CF_TEMPLATE_CLASS_DEFAULT_FUNDAMENTAL_ARGUMENT_SUPPORT
							 | 
						|
								# undef STLSOFT_CF_TEMPLATE_CLASS_DEFAULT_FUNDAMENTAL_ARGUMENT_SUPPORT
							 | 
						|
								#endif /* STLSOFT_CF_TEMPLATE_CLASS_DEFAULT_FUNDAMENTAL_ARGUMENT_SUPPORT */
							 | 
						|
								
							 | 
						|
								/* Template class default class type argument support
							 | 
						|
								 *
							 | 
						|
								 * Discriminated symbol is STLSOFT_CF_TEMPLATE_CLASS_DEFAULT_CLASS_ARGUMENT_SUPPORT
							 | 
						|
								 *
							 | 
						|
								 * Microsoft Visual C++ 4.2 does not support template default class type arguments.
							 | 
						|
								 */
							 | 
						|
								#ifdef STLSOFT_CF_TEMPLATE_CLASS_DEFAULT_CLASS_ARGUMENT_SUPPORT
							 | 
						|
								# undef STLSOFT_CF_TEMPLATE_CLASS_DEFAULT_CLASS_ARGUMENT_SUPPORT
							 | 
						|
								#endif /* STLSOFT_CF_TEMPLATE_CLASS_DEFAULT_CLASS_ARGUMENT_SUPPORT */
							 | 
						|
								
							 | 
						|
								/* Member functions can appear as template parameters
							 | 
						|
								 *
							 | 
						|
								 * Discriminated symbol is STLSOFT_CF_MEM_FUNC_AS_TEMPLATE_PARAM_SUPPORT
							 | 
						|
								 */
							 | 
						|
								#ifdef STLSOFT_CF_MEM_FUNC_AS_TEMPLATE_PARAM_SUPPORT
							 | 
						|
								# undef STLSOFT_CF_MEM_FUNC_AS_TEMPLATE_PARAM_SUPPORT
							 | 
						|
								#endif /* STLSOFT_CF_MEM_FUNC_AS_TEMPLATE_PARAM_SUPPORT */
							 | 
						|
								
							 | 
						|
								/* Member function template support.
							 | 
						|
								 *
							 | 
						|
								 * Discriminated symbol is STLSOFT_CF_MEMBER_TEMPLATE_FUNCTION_SUPPORT
							 | 
						|
								 */
							 | 
						|
								#ifdef STLSOFT_CF_MEMBER_TEMPLATE_FUNCTION_SUPPORT
							 | 
						|
								# undef STLSOFT_CF_MEMBER_TEMPLATE_FUNCTION_SUPPORT
							 | 
						|
								#endif // STLSOFT_CF_MEMBER_TEMPLATE_FUNCTION_SUPPORT
							 | 
						|
								
							 | 
						|
								/* Member constructor template support.
							 | 
						|
								 *
							 | 
						|
								 * Discriminated symbol is STLSOFT_CF_MEMBER_TEMPLATE_CTOR_SUPPORT
							 | 
						|
								 */
							 | 
						|
								#ifdef STLSOFT_CF_MEMBER_TEMPLATE_CTOR_SUPPORT
							 | 
						|
								# undef STLSOFT_CF_MEMBER_TEMPLATE_CTOR_SUPPORT
							 | 
						|
								#endif // STLSOFT_CF_MEMBER_TEMPLATE_CTOR_SUPPORT
							 | 
						|
								
							 | 
						|
								/* Member template range method support.
							 | 
						|
								 *
							 | 
						|
								 * Discriminated symbol is STLSOFT_CF_MEMBER_TEMPLATE_RANGE_METHOD_SUPPORT
							 | 
						|
								 */
							 | 
						|
								#ifdef STLSOFT_CF_MEMBER_TEMPLATE_RANGE_METHOD_SUPPORT
							 | 
						|
								# undef STLSOFT_CF_MEMBER_TEMPLATE_RANGE_METHOD_SUPPORT
							 | 
						|
								#endif // STLSOFT_CF_MEMBER_TEMPLATE_RANGE_METHOD_SUPPORT
							 | 
						|
								
							 | 
						|
								/* Member template class support.
							 | 
						|
								 *
							 | 
						|
								 * Discriminated symbol is STLSOFT_CF_MEMBER_TEMPLATE_CLASS_SUPPORT
							 | 
						|
								 */
							 | 
						|
								#ifdef STLSOFT_CF_MEMBER_TEMPLATE_CLASS_SUPPORT
							 | 
						|
								# undef STLSOFT_CF_MEMBER_TEMPLATE_CLASS_SUPPORT
							 | 
						|
								#endif // STLSOFT_CF_MEMBER_TEMPLATE_CLASS_SUPPORT
							 | 
						|
								
							 | 
						|
								/* Template specialisation syntax support
							 | 
						|
								 *
							 | 
						|
								 * Discriminated symbol is STLSOFT_CF_TEMPLATE_SPECIALISATION_SYNTAX
							 | 
						|
								 */
							 | 
						|
								#ifdef STLSOFT_CF_TEMPLATE_SPECIALISATION_SYNTAX
							 | 
						|
								# undef STLSOFT_CF_TEMPLATE_SPECIALISATION_SYNTAX
							 | 
						|
								#endif /* STLSOFT_CF_TEMPLATE_SPECIALISATION_SYNTAX */
							 | 
						|
								
							 | 
						|
								/* Template partial specialisation support.
							 | 
						|
								 *
							 | 
						|
								 * Discriminated symbol is STLSOFT_CF_TEMPLATE_PARTIAL_SPECIALISATION_SUPPORT
							 | 
						|
								 */
							 | 
						|
								#ifdef STLSOFT_CF_TEMPLATE_PARTIAL_SPECIALISATION_SUPPORT
							 | 
						|
								# undef STLSOFT_CF_TEMPLATE_PARTIAL_SPECIALISATION_SUPPORT
							 | 
						|
								#endif // STLSOFT_CF_TEMPLATE_PARTIAL_SPECIALISATION_SUPPORT
							 | 
						|
								
							 | 
						|
								/* Template out-of-class function specialisation support.
							 | 
						|
								 *
							 | 
						|
								 * Discriminated symbol is STLSOFT_CF_TEMPLATE_OUTOFCLASSFN_QUALIFIED_TYPE_SUPPORT
							 | 
						|
								 */
							 | 
						|
								#ifdef STLSOFT_CF_TEMPLATE_OUTOFCLASSFN_QUALIFIED_TYPE_SUPPORT
							 | 
						|
								# undef STLSOFT_CF_TEMPLATE_OUTOFCLASSFN_QUALIFIED_TYPE_SUPPORT
							 | 
						|
								#endif /* STLSOFT_CF_TEMPLATE_OUTOFCLASSFN_QUALIFIED_TYPE_SUPPORT */
							 | 
						|
								
							 | 
						|
								/* Standard library STL elements in std namespace.
							 | 
						|
								 *
							 | 
						|
								 * Discriminated symbol is STLSOFT_CF_std_NAMESPACE
							 | 
						|
								 */
							 | 
						|
								#ifdef STLSOFT_CF_std_NAMESPACE
							 | 
						|
								# undef STLSOFT_CF_std_NAMESPACE
							 | 
						|
								#endif /* STLSOFT_CF_std_NAMESPACE */
							 | 
						|
								
							 | 
						|
								/* std::char_traits available.
							 | 
						|
								 *
							 | 
						|
								 * Discriminated symbol is STLSOFT_CF_std_char_traits_AVAILABLE
							 | 
						|
								 */
							 | 
						|
								#ifdef STLSOFT_CF_std_char_traits_AVAILABLE
							 | 
						|
								# undef STLSOFT_CF_std_char_traits_AVAILABLE
							 | 
						|
								#endif /* STLSOFT_CF_std_char_traits_AVAILABLE */
							 | 
						|
								
							 | 
						|
								/* explicit keyword support
							 | 
						|
								 *
							 | 
						|
								 * Discriminated symbol is STLSOFT_CF_EXPLICIT_KEYWORD_SUPPORT
							 | 
						|
								 */
							 | 
						|
								#ifdef STLSOFT_CF_EXPLICIT_KEYWORD_SUPPORT
							 | 
						|
								# undef STLSOFT_CF_EXPLICIT_KEYWORD_SUPPORT
							 | 
						|
								#endif /* STLSOFT_CF_EXPLICIT_KEYWORD_SUPPORT */
							 | 
						|
								
							 | 
						|
								/* mutable keyword support
							 | 
						|
								 *
							 | 
						|
								 * Discriminated symbol is STLSOFT_CF_MUTABLE_KEYWORD_SUPPORT
							 | 
						|
								 */
							 | 
						|
								#ifdef STLSOFT_CF_MUTABLE_KEYWORD_SUPPORT
							 | 
						|
								# undef STLSOFT_CF_MUTABLE_KEYWORD_SUPPORT
							 | 
						|
								#endif /* STLSOFT_CF_MUTABLE_KEYWORD_SUPPORT */
							 | 
						|
								
							 | 
						|
								/* typename keyword support
							 | 
						|
								 *
							 | 
						|
								 * Discriminated symbols are STLSOFT_CF_TYPENAME_PARAM_KEYWORD_SUPPORT,
							 | 
						|
								 * STLSOFT_CF_TYPENAME_TYPE_KEYWORD_SUPPORT,
							 | 
						|
								 * STLSOFT_CF_TYPENAME_TYPE_DEF_KEYWORD_SUPPORT
							 | 
						|
								 * STLSOFT_CF_TYPENAME_TYPE_MIL_KEYWORD_SUPPORT and
							 | 
						|
								 * STLSOFT_CF_TYPENAME_TYPE_RET_KEYWORD_SUPPORT
							 | 
						|
								 *
							 | 
						|
								 * The typename keyword is actually used for two distinct purposes: the
							 | 
						|
								 * generic type placeholder in template parameter specifications, and the
							 | 
						|
								 * stipulation to compilers that a particular template derived construct
							 | 
						|
								 * is a type, rather than a member or operation.
							 | 
						|
								 *
							 | 
						|
								 * These two uses have varying support on different compilers, hence the
							 | 
						|
								 * STLSoft libraries utilise the ss_typename_param_k pseudo keyword for the
							 | 
						|
								 * first purpose, and the ss_typename_type_k pseudo keyword for the second.
							 | 
						|
								 *
							 | 
						|
								 * In addition, some compilers cannot handle the use of typename as a type
							 | 
						|
								 * qualifier in a template default parameter, so we further define the keyword
							 | 
						|
								 * ss_typename_type_def_k. And some cannot handle it in a constructor
							 | 
						|
								 * initialiser list, for which ss_typename_type_mil_k is defined.
							 | 
						|
								 */
							 | 
						|
								#ifdef STLSOFT_CF_TYPENAME_PARAM_KEYWORD_SUPPORT
							 | 
						|
								# undef STLSOFT_CF_TYPENAME_PARAM_KEYWORD_SUPPORT
							 | 
						|
								#endif /* STLSOFT_CF_TYPENAME_PARAM_KEYWORD_SUPPORT */
							 | 
						|
								
							 | 
						|
								#ifdef STLSOFT_CF_TYPENAME_TYPE_KEYWORD_SUPPORT
							 | 
						|
								# undef STLSOFT_CF_TYPENAME_TYPE_KEYWORD_SUPPORT
							 | 
						|
								#endif /* STLSOFT_CF_TYPENAME_TYPE_KEYWORD_SUPPORT */
							 | 
						|
								
							 | 
						|
								#ifdef STLSOFT_CF_TYPENAME_TYPE_DEF_KEYWORD_SUPPORT
							 | 
						|
								# undef STLSOFT_CF_TYPENAME_TYPE_DEF_KEYWORD_SUPPORT
							 | 
						|
								#endif /* STLSOFT_CF_TYPENAME_TYPE_DEF_KEYWORD_SUPPORT */
							 | 
						|
								
							 | 
						|
								#ifdef STLSOFT_CF_TYPENAME_TYPE_MIL_KEYWORD_SUPPORT
							 | 
						|
								# undef STLSOFT_CF_TYPENAME_TYPE_MIL_KEYWORD_SUPPORT
							 | 
						|
								#endif /* STLSOFT_CF_TYPENAME_TYPE_MIL_KEYWORD_SUPPORT */
							 | 
						|
								
							 | 
						|
								#ifdef STLSOFT_CF_TYPENAME_TYPE_RET_KEYWORD_SUPPORT
							 | 
						|
								# undef STLSOFT_CF_TYPENAME_TYPE_RET_KEYWORD_SUPPORT
							 | 
						|
								#endif /* STLSOFT_CF_TYPENAME_TYPE_RET_KEYWORD_SUPPORT */
							 | 
						|
								
							 | 
						|
								/* Move constructor support
							 | 
						|
								 *
							 | 
						|
								 * Discriminated symbol is STLSOFT_CF_MOVE_CONSTRUCTOR_SUPPORT
							 | 
						|
								 */
							 | 
						|
								#ifdef STLSOFT_CF_MOVE_CONSTRUCTOR_SUPPORT
							 | 
						|
								# undef STLSOFT_CF_MOVE_CONSTRUCTOR_SUPPORT
							 | 
						|
								#endif /* STLSOFT_CF_MOVE_CONSTRUCTOR_SUPPORT */
							 | 
						|
								
							 | 
						|
								/* Koening Lookup support
							 | 
						|
								 *
							 | 
						|
								 * Discriminated symbol is STLSOFT_CF_ADL_LOOKUP_SUPPORT
							 | 
						|
								 */
							 | 
						|
								#ifdef STLSOFT_CF_ADL_LOOKUP_SUPPORT
							 | 
						|
								# undef STLSOFT_CF_ADL_LOOKUP_SUPPORT
							 | 
						|
								#endif /* STLSOFT_CF_ADL_LOOKUP_SUPPORT */
							 | 
						|
								
							 | 
						|
								/* Template template support
							 | 
						|
								 *
							 | 
						|
								 * Discriminated symbol is STLSOFT_CF_TEMPLATE_TEMPLATE_SUPPORT
							 | 
						|
								 */
							 | 
						|
								#ifdef STLSOFT_CF_TEMPLATE_TEMPLATE_SUPPORT
							 | 
						|
								# undef STLSOFT_CF_TEMPLATE_TEMPLATE_SUPPORT
							 | 
						|
								#endif /* STLSOFT_CF_TEMPLATE_TEMPLATE_SUPPORT */
							 | 
						|
								
							 | 
						|
								
							 | 
						|
								#ifdef STLSOFT_CF_STATIC_ARRAY_SIZE_DETERMINATION_SUPPORT
							 | 
						|
								# undef STLSOFT_CF_STATIC_ARRAY_SIZE_DETERMINATION_SUPPORT
							 | 
						|
								#endif /* STLSOFT_CF_STATIC_ARRAY_SIZE_DETERMINATION_SUPPORT */
							 | 
						|
								
							 | 
						|
								#ifdef STLSOFT_CF_VENEER_SUPPORT
							 | 
						|
								# undef STLSOFT_CF_VENEER_SUPPORT
							 | 
						|
								#endif /* STLSOFT_CF_VENEER_SUPPORT */
							 | 
						|
								
							 | 
						|
								#ifdef STLSOFT_CF_TEMPLATE_SHIMS_NOT_SUPPORTED
							 | 
						|
								# undef STLSOFT_CF_TEMPLATE_SHIMS_NOT_SUPPORTED
							 | 
						|
								#endif /* STLSOFT_CF_TEMPLATE_SHIMS_NOT_SUPPORTED */
							 | 
						|
								
							 | 
						|
								#ifdef STLSOFT_CF_NEGATIVE_MODULUS_POSITIVE_GIVES_NEGATIVE_RESULT
							 | 
						|
								# undef STLSOFT_CF_NEGATIVE_MODULUS_POSITIVE_GIVES_NEGATIVE_RESULT
							 | 
						|
								#endif /* STLSOFT_CF_NEGATIVE_MODULUS_POSITIVE_GIVES_NEGATIVE_RESULT */
							 | 
						|
								
							 | 
						|
								#ifdef STLSOFT_CF_OPERATOR_BOOL_AS_OPERATOR_POINTER_TO_MEMBER_SUPPORT
							 | 
						|
								# undef STLSOFT_CF_OPERATOR_BOOL_AS_OPERATOR_POINTER_TO_MEMBER_SUPPORT
							 | 
						|
								#endif /* STLSOFT_CF_OPERATOR_BOOL_AS_OPERATOR_POINTER_TO_MEMBER_SUPPORT */
							 | 
						|
								
							 | 
						|
								#ifdef STLSOFT_CF_OPERATOR_NOT_VIA_OPERATOR_POINTER_TO_MEMBER_SUPPORT
							 | 
						|
								# undef STLSOFT_CF_OPERATOR_NOT_VIA_OPERATOR_POINTER_TO_MEMBER_SUPPORT
							 | 
						|
								#endif /* STLSOFT_CF_OPERATOR_NOT_VIA_OPERATOR_POINTER_TO_MEMBER_SUPPORT */
							 | 
						|
								
							 | 
						|
								#ifdef STLSOFT_CF_FASTCALL_SUPPORTED
							 | 
						|
								# undef STLSOFT_CF_FASTCALL_SUPPORTED
							 | 
						|
								#endif /* STLSOFT_CF_FASTCALL_SUPPORTED */
							 | 
						|
								
							 | 
						|
								#ifdef STLSOFT_CF_STDCALL_SUPPORTED
							 | 
						|
								# undef STLSOFT_CF_STDCALL_SUPPORTED
							 | 
						|
								#endif /* STLSOFT_CF_STDCALL_SUPPORTED */
							 | 
						|
								
							 | 
						|
								#ifdef STSLSOFT_INLINE_ASM_SUPPORTED
							 | 
						|
								# undef STSLSOFT_INLINE_ASM_SUPPORTED
							 | 
						|
								#endif /* STSLSOFT_INLINE_ASM_SUPPORTED */
							 | 
						|
								
							 | 
						|
								#ifdef STSLSOFT_ASM_IN_INLINE_SUPPORTED
							 | 
						|
								# undef STSLSOFT_ASM_IN_INLINE_SUPPORTED
							 | 
						|
								#endif /* STSLSOFT_ASM_IN_INLINE_SUPPORTED */
							 | 
						|
								
							 | 
						|
								/* ///////////////////////////// end of file //////////////////////////// */
							 |