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.
387 lines
16 KiB
387 lines
16 KiB
/* /////////////////////////////////////////////////////////////////////////
|
|
* File: pantheios/pantheios.hpp
|
|
*
|
|
* Purpose: Primary header file for Pantheios
|
|
*
|
|
* Created: 21st June 2005
|
|
* Updated: 9th January 2011
|
|
*
|
|
* Home: http://www.pantheios.org/
|
|
*
|
|
* Copyright (c) 2005-2011, Matthew Wilson and Synesis Software
|
|
* Copyright (c) 1999-2005, Synesis Software and Matthew Wilson
|
|
* 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.
|
|
*
|
|
* ////////////////////////////////////////////////////////////////////// */
|
|
|
|
|
|
/** \file pantheios/pantheios.hpp
|
|
*
|
|
* [C++ only] Primary header file for the
|
|
* \ref group__application_layer_interface, and included in all
|
|
* C++ compilation units.
|
|
*
|
|
* Users should include this file to ensure that the Pantheios library is
|
|
* automatically initialised, and to access
|
|
* the \ref group__application_layer_interface.
|
|
*/
|
|
|
|
#ifndef PANTHEIOS_INCL_PANTHEIOS_HPP_PANTHEIOS
|
|
#define PANTHEIOS_INCL_PANTHEIOS_HPP_PANTHEIOS
|
|
|
|
/* /////////////////////////////////////////////////////////////////////////
|
|
* Version information
|
|
*/
|
|
|
|
#ifndef PANTHEIOS_DOCUMENTATION_SKIP_SECTION
|
|
# define PANTHEIOS_VER_PANTHEIOS_HPP_PANTHEIOS_MAJOR 3
|
|
# define PANTHEIOS_VER_PANTHEIOS_HPP_PANTHEIOS_MINOR 9
|
|
# define PANTHEIOS_VER_PANTHEIOS_HPP_PANTHEIOS_REVISION 2
|
|
# define PANTHEIOS_VER_PANTHEIOS_HPP_PANTHEIOS_EDIT 102
|
|
#endif /* !PANTHEIOS_DOCUMENTATION_SKIP_SECTION */
|
|
|
|
/* /////////////////////////////////////////////////////////////////////////
|
|
* Includes
|
|
*/
|
|
|
|
/* Main Pantheios Header */
|
|
#ifndef PANTHEIOS_INCL_PANTHEIOS_H_PANTHEIOS
|
|
# include <pantheios/pantheios.h>
|
|
#endif /* !PANTHEIOS_INCL_PANTHEIOS_H_PANTHEIOS */
|
|
|
|
#ifndef __cplusplus
|
|
# error pantheios/pantheios.hpp is only valid in C++ compilation units
|
|
#endif /* !__cplusplus */
|
|
|
|
/* Required to validate the parameters are not integral types */
|
|
#ifndef STLSOFT_INCL_STLSOFT_META_HPP_IS_FUNDAMENTAL_TYPE
|
|
# include <stlsoft/meta/is_fundamental_type.hpp>
|
|
#endif /* !STLSOFT_INCL_STLSOFT_META_HPP_IS_FUNDAMENTAL_TYPE */
|
|
|
|
/* Now select various headers to bring in string access shims */
|
|
#ifndef STLSOFT_INCL_STLSOFT_SHIMS_ACCESS_STRING_H_FWD
|
|
# include <stlsoft/shims/access/string/fwd.h>
|
|
#endif /* !STLSOFT_INCL_STLSOFT_SHIMS_ACCESS_STRING_H_FWD */
|
|
|
|
/* Backwards-compatibility */
|
|
#ifndef PANTHEIOS_DOCUMENTATION_SKIP_SECTION
|
|
# if defined(PANTHEIOS_NO_INCLUDE_STLSOFT_SHIM_ACCESS_SHIMS) && \
|
|
!defined(PANTHEIOS_NO_INCLUDE_STLSOFT_STRING_ACCESS)
|
|
# ifdef STLSOFT_CF_PRAGMA_MESSAGE_SUPPORT
|
|
# pragma messsage("The symbol PANTHEIOS_NO_INCLUDE_STLSOFT_SHIM_ACCESS_SHIMS is deprecated, and support for it will be removed before 1.0.1. Please use PANTHEIOS_NO_INCLUDE_STLSOFT_STRING_ACCESS instead.")
|
|
# endif /* STLSOFT_CF_PRAGMA_MESSAGE_SUPPORT */
|
|
# define PANTHEIOS_NO_INCLUDE_STLSOFT_STRING_ACCESS
|
|
# endif /* PANTHEIOS_NO_INCLUDE_STLSOFT_SHIM_ACCESS_SHIMS && !PANTHEIOS_NO_INCLUDE_STLSOFT_STRING_ACCESS */
|
|
#endif /* !PANTHEIOS_DOCUMENTATION_SKIP_SECTION */
|
|
|
|
|
|
|
|
#ifdef PANTHEIOS_CUSTOM_SHIM_INCLUDE
|
|
# include PANTHEIOS_CUSTOM_SHIM_INCLUDE
|
|
#else /* ? PANTHEIOS_CUSTOM_SHIM_INCLUDE */
|
|
# if !defined(PANTHEIOS_NO_INCLUDE_STLSOFT_STRING_ACCESS)
|
|
# ifndef STLSOFT_INCL_STLSOFT_SHIMS_ACCESS_HPP_STRING
|
|
# include <stlsoft/shims/access/string.hpp>
|
|
# endif /* !STLSOFT_INCL_STLSOFT_SHIMS_ACCESS_HPP_STRING */
|
|
# ifndef STLSOFT_INCL_STLSOFT_SHIMS_ACCESS_STRING_STD_HPP_TIME
|
|
# include <stlsoft/shims/access/string/std/time.hpp>
|
|
# endif /* !STLSOFT_INCL_STLSOFT_SHIMS_ACCESS_STRING_STD_HPP_TIME */
|
|
|
|
|
|
# ifdef PANTHEIOS_NO_INCLUDE_OS_AND_3PTYLIB_STRING_ACCESS
|
|
# define PANTHEIOS_NO_INCLUDE_ACESTL_STRING_ACCESS
|
|
# define PANTHEIOS_NO_INCLUDE_ATLSTL_STRING_ACCESS
|
|
# define PANTHEIOS_NO_INCLUDE_COMSTL_STRING_ACCESS
|
|
# define PANTHEIOS_NO_INCLUDE_MFCSTL_STRING_ACCESS
|
|
# define PANTHEIOS_NO_INCLUDE_PLATFORMSTL_STRING_ACCESS
|
|
# define PANTHEIOS_NO_INCLUDE_UNIXSTL_STRING_ACCESS
|
|
# define PANTHEIOS_NO_INCLUDE_WINSTL_STRING_ACCESS
|
|
# define PANTHEIOS_NO_INCLUDE_WTLSTL_STRING_ACCESS
|
|
# endif /* PANTHEIOS_NO_INCLUDE_OS_AND_3PTYLIB_STRING_ACCESS */
|
|
|
|
/* Include shims for MFC, if
|
|
*
|
|
* - it's not been proscribed, by PANTHEIOS_NO_INCLUDE_MFCSTL_STRING_ACCESS, and either
|
|
* - it's been explicitly requested, by PANTHEIOS_FORCE_INCLUDE_MFCSTL_STRING_ACCESS, or
|
|
* - _AFX and _MFC_VER are defined
|
|
*/
|
|
# if !defined(PANTHEIOS_NO_INCLUDE_MFCSTL_STRING_ACCESS) && \
|
|
( defined(PANTHEIOS_FORCE_INCLUDE_MFCSTL_STRING_ACCESS) || \
|
|
defined(_AFXDLL) || \
|
|
( defined(_AFX) && \
|
|
defined(_MFC_VER)))
|
|
# ifndef MFCSTL_INCL_MFCSTL_SHIMS_ACCESS_HPP_STRING
|
|
# include <mfcstl/shims/access/string.hpp>
|
|
# endif /* !MFCSTL_INCL_MFCSTL_SHIMS_ACCESS_HPP_STRING */
|
|
# endif /* MFC */
|
|
|
|
/* Include shims for ATL, if
|
|
*
|
|
* - it's not been proscribed, by PANTHEIOS_NO_INCLUDE_ATLSTL_STRING_ACCESS, and either
|
|
* - it's been explicitly requested, by PANTHEIOS_FORCE_INCLUDE_ATLSTL_STRING_ACCESS, or
|
|
* - _ATL and _ATL_VER are defined
|
|
*/
|
|
# if !defined(PANTHEIOS_NO_INCLUDE_ATLSTL_STRING_ACCESS) && \
|
|
( defined(PANTHEIOS_FORCE_INCLUDE_ATLSTL_STRING_ACCESS) || \
|
|
( defined(_ATL) && \
|
|
defined(_ATL_VER)))
|
|
# ifndef ATLSTL_INCL_ATLSTL_SHIMS_ACCESS_HPP_STRING
|
|
# include <atlstl/shims/access/string.hpp>
|
|
# endif /* !ATLSTL_INCL_ATLSTL_SHIMS_ACCESS_HPP_STRING */
|
|
# endif /* ATL */
|
|
|
|
/* Include shims for COM, if
|
|
*
|
|
* - it's not been proscribed, by PANTHEIOS_NO_INCLUDE_COMSTL_STRING_ACCESS, and either
|
|
* - it's been explicitly requested, by PANTHEIOS_FORCE_INCLUDE_COMSTL_STRING_ACCESS, or
|
|
* - WIN32/WIN64 is defined
|
|
*/
|
|
# if !defined(PANTHEIOS_NO_INCLUDE_COMSTL_STRING_ACCESS) && \
|
|
( defined(PANTHEIOS_FORCE_INCLUDE_COMSTL_STRING_ACCESS) || \
|
|
defined(WIN32) || \
|
|
defined(WIN64))
|
|
# ifndef COMSTL_INCL_COMSTL_SHIMS_ACCESS_HPP_STRING
|
|
# include <comstl/shims/access/string.hpp>
|
|
# endif /* !COMSTL_INCL_COMSTL_SHIMS_ACCESS_HPP_STRING */
|
|
# endif /* COM */
|
|
|
|
/* Include shims for UNIX, if
|
|
*
|
|
* - it's not been proscribed, by PANTHEIOS_NO_INCLUDE_UNIXSTL_STRING_ACCESS, and either
|
|
* - it's been explicitly requested, by PANTHEIOS_FORCE_INCLUDE_UNIXSTL_STRING_ACCESS, or
|
|
* - unix, __unix, __unix__ or UNIX is defined
|
|
*/
|
|
# if !defined(PANTHEIOS_NO_INCLUDE_UNIXSTL_STRING_ACCESS) && \
|
|
( defined(PANTHEIOS_FORCE_INCLUDE_UNIXSTL_STRING_ACCESS) || \
|
|
( defined(unix) || \
|
|
defined(__unix) || \
|
|
defined(__unix__) || \
|
|
defined(UNIX)))
|
|
# ifndef UNIXSTL_INCL_UNIXSTL_SHIMS_ACCESS_HPP_STRING
|
|
# include <unixstl/shims/access/string.hpp>
|
|
# endif /* !UNIXSTL_INCL_UNIXSTL_SHIMS_ACCESS_HPP_STRING */
|
|
# endif /* UNIX */
|
|
|
|
/* Include shims for Windows, if
|
|
*
|
|
* - it's not been proscribed, by PANTHEIOS_NO_INCLUDE_WINSTL_STRING_ACCESS, and either
|
|
* - it's been explicitly requested, by PANTHEIOS_FORCE_INCLUDE_WINSTL_STRING_ACCESS, or
|
|
* - WIN32/WIN64 is defined
|
|
*/
|
|
# if !defined(PANTHEIOS_NO_INCLUDE_WINSTL_STRING_ACCESS) && \
|
|
( defined(PANTHEIOS_FORCE_INCLUDE_WINSTL_STRING_ACCESS) || \
|
|
defined(WIN32) || \
|
|
defined(WIN64))
|
|
# ifndef WINSTL_INCL_WINSTL_SHIMS_ACCESS_HPP_STRING
|
|
# include <winstl/shims/access/string.hpp>
|
|
# endif /* !WINSTL_INCL_WINSTL_SHIMS_ACCESS_HPP_STRING */
|
|
# ifndef WINSTL_INCL_WINSTL_SHIMS_ACCESS_STRING_HPP_TIME
|
|
# include <winstl/shims/access/string/time.hpp>
|
|
# endif /* !WINSTL_INCL_WINSTL_SHIMS_ACCESS_STRING_HPP_TIME */
|
|
# endif /* Win */
|
|
|
|
# endif /* !PANTHEIOS_NO_INCLUDE_STLSOFT_STRING_ACCESS */
|
|
#endif /* PANTHEIOS_CUSTOM_SHIM_INCLUDE */
|
|
|
|
/* /////////////////////////////////////////////////////////////////////////
|
|
* GCC bug
|
|
*/
|
|
|
|
/* NOTE: We must include <pantheios/inserters.hpp> here, as GCC is a bit
|
|
* thick about its two-phase name lookup when resolving shim functions for
|
|
* the Pantheios inserter types integer, pointer and real.
|
|
*/
|
|
|
|
#if defined(STLSOFT_COMPILER_IS_GCC) && \
|
|
__GNUC__ < 4
|
|
//# include <pantheios/inserters.hpp>
|
|
#endif /* compiler */
|
|
|
|
/* /////////////////////////////////////////////////////////////////////////
|
|
* Namespace
|
|
*/
|
|
|
|
#if !defined(PANTHEIOS_NO_NAMESPACE)
|
|
namespace pantheios
|
|
{
|
|
#endif /* !PANTHEIOS_NO_NAMESPACE */
|
|
|
|
/* /////////////////////////////////////////////////////////////////////////
|
|
* C++ API components
|
|
*
|
|
* To suppress all generated functions, define the preprocessor symbol
|
|
* PANTHEIOS_NO_GENERATED_FUNCTIONS
|
|
*
|
|
* To suppress all log() generated functions, define the preprocessor
|
|
* symbol
|
|
* PANTHEIOS_NO_LOG_FUNCTIONS
|
|
*
|
|
* To suppress all log-specific generated functions (i.e. log_DEBUG(),
|
|
* log_CRITICAL(), etc.), define the preprocessor symbol
|
|
* <code>PANTHEIOS_NO_LOG_SEV_FUNCTIONS</code>. Note: if the symbol
|
|
* <code>PANTHEIOS_NO_STOCK_LEVELS</code> is defined, then
|
|
* <code>PANTHEIOS_NO_LOG_SEV_FUNCTIONS</code> will be defined
|
|
* automatically.
|
|
*/
|
|
|
|
#ifdef PANTHEIOS_NO_STOCK_LEVELS
|
|
# ifndef PANTHEIOS_NO_LOG_SEV_FUNCTIONS
|
|
# define PANTHEIOS_NO_LOG_SEV_FUNCTIONS
|
|
# endif /* !PANTHEIOS_NO_LOG_SEV_FUNCTIONS */
|
|
#endif /* PANTHEIOS_NO_STOCK_LEVELS */
|
|
|
|
#ifdef PANTHEIOS_INVOKE_SHIM_PAIR_
|
|
# undef PANTHEIOS_INVOKE_SHIM_PAIR_
|
|
#endif /* PANTHEIOS_INVOKE_SHIM_PAIR_ */
|
|
|
|
#ifdef PANTHEIOS_VALIDATE_TYPE_NOT_FUNDAMENTAL_
|
|
# undef PANTHEIOS_VALIDATE_TYPE_NOT_FUNDAMENTAL_
|
|
#endif /* PANTHEIOS_VALIDATE_TYPE_NOT_FUNDAMENTAL_ */
|
|
|
|
/* /////////////////////////////////////////////////////////////////////////
|
|
* Compiler compatibility
|
|
*/
|
|
|
|
/* The Digital Mars and GCC compilers both exhibit strange behaviour (bugs?)
|
|
* with respect to the invocation of shims.
|
|
*
|
|
* - DMC++ requires explicit qualification, even in the presence of a
|
|
* (local) using declaration
|
|
* - GCC requires a local using declaration and *must not* have explicit
|
|
* qualification.
|
|
*
|
|
* - all other compilers work fine without any using declaration and with
|
|
* explicit qualification.
|
|
*
|
|
* As currently defined, we follow the GCC way (which works for all other
|
|
* compilers, except DMC++), and explicitly qualify for DMC++.
|
|
*
|
|
*/
|
|
|
|
#ifndef PANTHEIOS_DOCUMENTATION_SKIP_SECTION
|
|
|
|
# ifdef PANTHEIOS_INVOKE_c_str_data_
|
|
# undef PANTHEIOS_INVOKE_c_str_data_
|
|
# endif /* PANTHEIOS_INVOKE_c_str_data_ */
|
|
# ifdef PANTHEIOS_INVOKE_c_str_len_
|
|
# undef PANTHEIOS_INVOKE_c_str_len_
|
|
# endif /* PANTHEIOS_INVOKE_c_str_len_ */
|
|
# ifdef PANTHEIOS_INVOKE_c_str_ptr_
|
|
# undef PANTHEIOS_INVOKE_c_str_ptr_
|
|
# endif /* PANTHEIOS_INVOKE_c_str_ptr_ */
|
|
# ifdef PANTHEIOS_INVOKE_SHIM_PAIR_
|
|
# undef PANTHEIOS_INVOKE_SHIM_PAIR_
|
|
# endif /* PANTHEIOS_INVOKE_SHIM_PAIR_ */
|
|
# ifdef PANTHEIOS_c_str_data_name_
|
|
# undef PANTHEIOS_c_str_data_name_
|
|
# endif /* PANTHEIOS_c_str_data_name_ */
|
|
|
|
# ifdef PANTHEIOS_USE_WIDE_STRINGS
|
|
# define PANTHEIOS_c_str_data_name_ c_str_data_w
|
|
# define PANTHEIOS_c_str_len_name_ c_str_len_w
|
|
# define PANTHEIOS_c_str_ptr_name_ c_str_ptr_w
|
|
# else /* ? PANTHEIOS_USE_WIDE_STRINGS */
|
|
# define PANTHEIOS_c_str_data_name_ c_str_data_a
|
|
# define PANTHEIOS_c_str_len_name_ c_str_len_a
|
|
# define PANTHEIOS_c_str_ptr_name_ c_str_ptr_a
|
|
# endif /* PANTHEIOS_USE_WIDE_STRINGS */
|
|
|
|
# if defined(STLSOFT_COMPILER_IS_DMC)
|
|
# define PANTHEIOS_DECLARE_SHIM_PAIR_() ((void)0)
|
|
# define PANTHEIOS_INVOKE_SHIM_PAIR_(x) stlsoft::PANTHEIOS_c_str_len_name_(x), stlsoft::PANTHEIOS_c_str_data_name_(x)
|
|
# elif defined(STLSOFT_COMPILER_IS_GCC)
|
|
# define PANTHEIOS_DECLARE_SHIM_PAIR_() using ::stlsoft::PANTHEIOS_c_str_data_name_; using ::stlsoft::PANTHEIOS_c_str_len_name_
|
|
# define PANTHEIOS_INVOKE_SHIM_PAIR_(x) PANTHEIOS_c_str_len_name_(x), PANTHEIOS_c_str_data_name_(x)
|
|
# else /* ? compiler */
|
|
# define PANTHEIOS_DECLARE_SHIM_PAIR_() using ::stlsoft::PANTHEIOS_c_str_data_name_; using ::stlsoft::PANTHEIOS_c_str_len_name_
|
|
# define PANTHEIOS_INVOKE_SHIM_PAIR_(x) PANTHEIOS_c_str_len_name_(x), PANTHEIOS_c_str_data_name_(x)
|
|
# endif /* compiler */
|
|
|
|
# define PANTHEIOS_VALIDATE_TYPE_NOT_FUNDAMENTAL_(t) STLSOFT_STATIC_ASSERT(0 == stlsoft::is_fundamental_type<t>::value)
|
|
|
|
#endif /* !PANTHEIOS_DOCUMENTATION_SKIP_SECTION */
|
|
|
|
#ifndef PANTHEIOS_NO_GENERATED_FUNCTIONS
|
|
# ifndef PANTHEIOS_DOCUMENTATION_SKIP_SECTION
|
|
namespace internal
|
|
{
|
|
# include "./internal/generated/log_dispatch_functions.h"
|
|
# include "./internal/generated/log_dispatch_functions.hpp"
|
|
} /* namespace internal */
|
|
# endif /* !PANTHEIOS_DOCUMENTATION_SKIP_SECTION */
|
|
# if !defined(PANTHEIOS_NO_LOG_FUNCTIONS)
|
|
# include "./internal/generated/log_functions.hpp" // log(s), log(s, s) etc etc
|
|
# endif /* !PANTHEIOS_NO_LOG_FUNCTIONS */
|
|
# if !defined(PANTHEIOS_NO_LOG_SEV_FUNCTIONS)
|
|
# include "./internal/generated/log_sev_functions.hpp" // log_ALERT() overloads, log_ERROR() overloads, etc.
|
|
# endif /* !PANTHEIOS_NO_LOG_SEV_FUNCTIONS */
|
|
#endif /* !PANTHEIOS_NO_GENERATED_FUNCTIONS */
|
|
|
|
#undef PANTHEIOS_INVOKE_SHIM_PAIR_
|
|
|
|
/* /////////////////////////////////////////////////////////////////////////
|
|
* Namespace
|
|
*/
|
|
|
|
#if !defined(PANTHEIOS_NO_NAMESPACE)
|
|
} /* namespace pantheios */
|
|
#endif /* !PANTHEIOS_NO_NAMESPACE */
|
|
|
|
/* /////////////////////////////////////////////////////////////////////////
|
|
* Auto-initialisation
|
|
*
|
|
* Except when making a DLL, this is automatic, unless PANTHEIOS_NO_AUTO_INIT
|
|
* is defined.
|
|
*
|
|
* To force it for a DLL, define PANTHEIOS_FORCE_AUTO_INIT
|
|
*/
|
|
|
|
#if defined(__DLL__) /* Borland, with -WD */ || \
|
|
defined(_WINDLL) /* VC++, defined by user/wizard */ || \
|
|
defined(_USRDLL) /* VC++, defined by user/wizard */
|
|
# define PANTHEIOS_NO_AUTO_INIT
|
|
#endif /* dynamic library */
|
|
|
|
#if defined(PANTHEIOS_FORCE_AUTO_INIT) || \
|
|
!defined(PANTHEIOS_NO_AUTO_INIT)
|
|
# include "./internal/initialiser.hpp" // Schwarz counter initialisation
|
|
#endif /* PANTHEIOS_FORCE_AUTO_INIT || !PANTHEIOS_NO_AUTO_INIT */
|
|
|
|
/* /////////////////////////////////////////////////////////////////////////
|
|
* Inclusion
|
|
*/
|
|
|
|
#ifdef STLSOFT_PPF_pragma_once_SUPPORT
|
|
# pragma once
|
|
#endif /* STLSOFT_PPF_pragma_once_SUPPORT */
|
|
|
|
/* ////////////////////////////////////////////////////////////////////// */
|
|
|
|
#endif /* !PANTHEIOS_INCL_PANTHEIOS_HPP_PANTHEIOS */
|
|
|
|
/* ///////////////////////////// end of file //////////////////////////// */
|