diff --git a/include/boost/assert.hpp b/include/boost/assert.hpp new file mode 100644 index 0000000..3a501dc --- /dev/null +++ b/include/boost/assert.hpp @@ -0,0 +1,52 @@ +#ifndef BOOST_ASSERT_HPP_INCLUDED +#define BOOST_ASSERT_HPP_INCLUDED + +#if _MSC_VER >= 1020 +#pragma once +#endif + +// +// boost/assert.hpp +// +// Copyright (c) 2001, 2002 Peter Dimov and Multi Media Ltd. +// +// Permission to copy, use, modify, sell and distribute this software +// is granted provided this copyright notice appears in all copies. +// This software is provided "as is" without express or implied +// warranty, and with no claim as to its suitability for any purpose. +// + +// +// When BOOST_DEBUG is not defined, it defaults to 0 (off) +// for backward compatibility with programs that do not +// define a boost_error handler +// +// After a reasonable transition period, the default can be +// changed to something more appropriate. +// + +#ifndef BOOST_DEBUG +#define BOOST_DEBUG 0 +#endif + +bool boost_error(char const * expr, char const * func, char const * file, long line); + +#if BOOST_DEBUG + +#include +#include + +#ifndef BOOST_ASSERT + +# define BOOST_ASSERT(expr) ((expr) || !boost_error(#expr, BOOST_CURRENT_FUNCTION, __FILE__, __LINE__) || (assert(expr), true)) + +#endif // #ifndef BOOST_ASSERT + +#else // #if BOOST_DEBUG + +#undef BOOST_ASSERT +#define BOOST_ASSERT(expr) ((void)0) + +#endif // #ifdef BOOST_DEBUG + +#endif // #ifndef BOOST_ASSERT_HPP_INCLUDED diff --git a/include/boost/checked_delete.hpp b/include/boost/checked_delete.hpp new file mode 100644 index 0000000..ad11d58 --- /dev/null +++ b/include/boost/checked_delete.hpp @@ -0,0 +1,73 @@ +#ifndef BOOST_CHECKED_DELETE_HPP_INCLUDED +#define BOOST_CHECKED_DELETE_HPP_INCLUDED + +#if _MSC_VER >= 1020 +#pragma once +#endif + +// +// boost/checked_delete.hpp +// +// Copyright (c) 1999, 2000, 2001, 2002 boost.org +// +// Permission to copy, use, modify, sell and distribute this software +// is granted provided this copyright notice appears in all copies. +// This software is provided "as is" without express or implied +// warranty, and with no claim as to its suitability for any purpose. +// + +namespace boost +{ + +// verify that types are complete for increased safety + +template< typename T > inline void checked_delete(T * x) +{ + typedef char type_must_be_complete[sizeof(T)]; + delete x; +} + +template< typename T > inline void checked_array_delete(T * x) +{ + typedef char type_must_be_complete[sizeof(T)]; + delete [] x; +} + +template struct checked_deleter +{ + typedef void result_type; + typedef T * argument_type; + + void operator()(T * x) + { + checked_delete(x); + } +}; + +// checked_deleter is needed by shared_ptr::reset(0) + +template<> struct checked_deleter +{ + typedef void result_type; + typedef void * argument_type; + + void operator()(void * x) + { + ::operator delete(x); // avoid g++ warning + } +}; + +template struct checked_array_deleter +{ + typedef void result_type; + typedef T * argument_type; + + void operator()(T * x) + { + checked_array_delete(x); + } +}; + +} // namespace boost + +#endif // #ifndef BOOST_CHECKED_DELETE_HPP_INCLUDED diff --git a/include/boost/current_function.hpp b/include/boost/current_function.hpp new file mode 100644 index 0000000..e44e26b --- /dev/null +++ b/include/boost/current_function.hpp @@ -0,0 +1,56 @@ +#ifndef BOOST_CURRENT_FUNCTION_HPP_INCLUDED +#define BOOST_CURRENT_FUNCTION_HPP_INCLUDED + +#if _MSC_VER >= 1020 +#pragma once +#endif + +// +// boost/current_function.hpp - BOOST_CURRENT_FUNCTION +// +// Copyright (c) 2002 Peter Dimov and Multi Media Ltd. +// +// Permission to copy, use, modify, sell and distribute this software +// is granted provided this copyright notice appears in all copies. +// This software is provided "as is" without express or implied +// warranty, and with no claim as to its suitability for any purpose. +// + +namespace boost +{ + +namespace detail +{ + +void current_function_helper() +{ + +#if defined(__GNUC__) + +# define BOOST_CURRENT_FUNCTION __PRETTY_FUNCTION__ + +#elif defined(__FUNCSIG__) + +# define BOOST_CURRENT_FUNCTION __FUNCSIG__ + +#elif defined(__BORLANDC__) + +# define BOOST_CURRENT_FUNCTION __FUNC__ + +#elif defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901) + +# define BOOST_CURRENT_FUNCTION __func__ + +#else + +# define BOOST_CURRENT_FUNCTION "(unknown)" + +#endif + +} + +} // namespace detail + +} // namespace boost + +#endif // #ifndef BOOST_CURRENT_FUNCTION_HPP_INCLUDED