update to boost 1.49.0 subset
This commit is contained in:
parent
84c782fba7
commit
4a7b5304a0
|
@ -0,0 +1,181 @@
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
// boost aligned_storage.hpp header file
|
||||||
|
// See http://www.boost.org for updates, documentation, and revision history.
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// Copyright (c) 2002-2003
|
||||||
|
// Eric Friedman, Itay Maman
|
||||||
|
//
|
||||||
|
// Distributed under the Boost Software License, Version 1.0. (See
|
||||||
|
// accompanying file LICENSE_1_0.txt or copy at
|
||||||
|
// http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
|
||||||
|
#ifndef BOOST_ALIGNED_STORAGE_HPP
|
||||||
|
#define BOOST_ALIGNED_STORAGE_HPP
|
||||||
|
|
||||||
|
#include <cstddef> // for std::size_t
|
||||||
|
|
||||||
|
#include "boost/config.hpp"
|
||||||
|
#include "boost/detail/workaround.hpp"
|
||||||
|
#include "boost/type_traits/alignment_of.hpp"
|
||||||
|
#include "boost/type_traits/type_with_alignment.hpp"
|
||||||
|
#include "boost/type_traits/is_pod.hpp"
|
||||||
|
|
||||||
|
#include "boost/mpl/eval_if.hpp"
|
||||||
|
#include "boost/mpl/identity.hpp"
|
||||||
|
|
||||||
|
#include "boost/type_traits/detail/bool_trait_def.hpp"
|
||||||
|
|
||||||
|
namespace boost {
|
||||||
|
|
||||||
|
namespace detail { namespace aligned_storage {
|
||||||
|
|
||||||
|
BOOST_STATIC_CONSTANT(
|
||||||
|
std::size_t
|
||||||
|
, alignment_of_max_align = ::boost::alignment_of<max_align>::value
|
||||||
|
);
|
||||||
|
|
||||||
|
//
|
||||||
|
// To be TR1 conforming this must be a POD type:
|
||||||
|
//
|
||||||
|
template <
|
||||||
|
std::size_t size_
|
||||||
|
, std::size_t alignment_
|
||||||
|
>
|
||||||
|
struct aligned_storage_imp
|
||||||
|
{
|
||||||
|
union data_t
|
||||||
|
{
|
||||||
|
char buf[size_];
|
||||||
|
|
||||||
|
typename mpl::eval_if_c<
|
||||||
|
alignment_ == std::size_t(-1)
|
||||||
|
, mpl::identity<detail::max_align>
|
||||||
|
, type_with_alignment<alignment_>
|
||||||
|
>::type align_;
|
||||||
|
} data_;
|
||||||
|
void* address() const { return const_cast<aligned_storage_imp*>(this); }
|
||||||
|
};
|
||||||
|
|
||||||
|
template< std::size_t alignment_ >
|
||||||
|
struct aligned_storage_imp<0u,alignment_>
|
||||||
|
{
|
||||||
|
/* intentionally empty */
|
||||||
|
void* address() const { return 0; }
|
||||||
|
};
|
||||||
|
|
||||||
|
}} // namespace detail::aligned_storage
|
||||||
|
|
||||||
|
template <
|
||||||
|
std::size_t size_
|
||||||
|
, std::size_t alignment_ = std::size_t(-1)
|
||||||
|
>
|
||||||
|
class aligned_storage :
|
||||||
|
#ifndef __BORLANDC__
|
||||||
|
private
|
||||||
|
#else
|
||||||
|
public
|
||||||
|
#endif
|
||||||
|
detail::aligned_storage::aligned_storage_imp<size_, alignment_>
|
||||||
|
{
|
||||||
|
|
||||||
|
public: // constants
|
||||||
|
|
||||||
|
typedef detail::aligned_storage::aligned_storage_imp<size_, alignment_> type;
|
||||||
|
|
||||||
|
BOOST_STATIC_CONSTANT(
|
||||||
|
std::size_t
|
||||||
|
, size = size_
|
||||||
|
);
|
||||||
|
BOOST_STATIC_CONSTANT(
|
||||||
|
std::size_t
|
||||||
|
, alignment = (
|
||||||
|
alignment_ == std::size_t(-1)
|
||||||
|
? ::boost::detail::aligned_storage::alignment_of_max_align
|
||||||
|
: alignment_
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
|
#if defined(__GNUC__) &&\
|
||||||
|
(__GNUC__ > 3) ||\
|
||||||
|
(__GNUC__ == 3 && (__GNUC_MINOR__ > 2 ||\
|
||||||
|
(__GNUC_MINOR__ == 2 && __GNUC_PATCHLEVEL__ >=3)))
|
||||||
|
|
||||||
|
private: // noncopyable
|
||||||
|
|
||||||
|
aligned_storage(const aligned_storage&);
|
||||||
|
aligned_storage& operator=(const aligned_storage&);
|
||||||
|
|
||||||
|
#else // gcc less than 3.2.3
|
||||||
|
|
||||||
|
public: // _should_ be noncopyable, but GCC compiler emits error
|
||||||
|
|
||||||
|
aligned_storage(const aligned_storage&);
|
||||||
|
aligned_storage& operator=(const aligned_storage&);
|
||||||
|
|
||||||
|
#endif // gcc < 3.2.3 workaround
|
||||||
|
|
||||||
|
public: // structors
|
||||||
|
|
||||||
|
aligned_storage()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
~aligned_storage()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
public: // accessors
|
||||||
|
|
||||||
|
void* address()
|
||||||
|
{
|
||||||
|
return static_cast<type*>(this)->address();
|
||||||
|
}
|
||||||
|
|
||||||
|
#if !BOOST_WORKAROUND(BOOST_MSVC, < 1300)
|
||||||
|
|
||||||
|
const void* address() const
|
||||||
|
{
|
||||||
|
return static_cast<const type*>(this)->address();
|
||||||
|
}
|
||||||
|
|
||||||
|
#else // MSVC6
|
||||||
|
|
||||||
|
const void* address() const;
|
||||||
|
|
||||||
|
#endif // MSVC6 workaround
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
#if BOOST_WORKAROUND(BOOST_MSVC, < 1300)
|
||||||
|
|
||||||
|
// MSVC6 seems not to like inline functions with const void* returns, so we
|
||||||
|
// declare the following here:
|
||||||
|
|
||||||
|
template <std::size_t S, std::size_t A>
|
||||||
|
const void* aligned_storage<S,A>::address() const
|
||||||
|
{
|
||||||
|
return const_cast< aligned_storage<S,A>* >(this)->address();
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif // MSVC6 workaround
|
||||||
|
|
||||||
|
#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
|
||||||
|
//
|
||||||
|
// Make sure that is_pod recognises aligned_storage<>::type
|
||||||
|
// as a POD (Note that aligned_storage<> itself is not a POD):
|
||||||
|
//
|
||||||
|
template <std::size_t size_, std::size_t alignment_>
|
||||||
|
struct is_pod<boost::detail::aligned_storage::aligned_storage_imp<size_,alignment_> >
|
||||||
|
BOOST_TT_AUX_BOOL_C_BASE(true)
|
||||||
|
{
|
||||||
|
BOOST_TT_AUX_BOOL_TRAIT_VALUE_DECL(true)
|
||||||
|
};
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
} // namespace boost
|
||||||
|
|
||||||
|
#include "boost/type_traits/detail/bool_trait_undef.hpp"
|
||||||
|
|
||||||
|
#endif // BOOST_ALIGNED_STORAGE_HPP
|
|
@ -0,0 +1,253 @@
|
||||||
|
// See http://www.boost.org/libs/any for Documentation.
|
||||||
|
|
||||||
|
#ifndef BOOST_ANY_INCLUDED
|
||||||
|
#define BOOST_ANY_INCLUDED
|
||||||
|
|
||||||
|
// what: variant type boost::any
|
||||||
|
// who: contributed by Kevlin Henney,
|
||||||
|
// with features contributed and bugs found by
|
||||||
|
// Ed Brey, Mark Rodgers, Peter Dimov, and James Curran
|
||||||
|
// when: July 2001
|
||||||
|
// where: tested with BCC 5.5, MSVC 6.0, and g++ 2.95
|
||||||
|
|
||||||
|
#include <algorithm>
|
||||||
|
#include <typeinfo>
|
||||||
|
|
||||||
|
#include "boost/config.hpp"
|
||||||
|
#include <boost/type_traits/remove_reference.hpp>
|
||||||
|
#include <boost/type_traits/is_reference.hpp>
|
||||||
|
#include <boost/throw_exception.hpp>
|
||||||
|
#include <boost/static_assert.hpp>
|
||||||
|
|
||||||
|
// See boost/python/type_id.hpp
|
||||||
|
// TODO: add BOOST_TYPEID_COMPARE_BY_NAME to config.hpp
|
||||||
|
# if (defined(__GNUC__) && __GNUC__ >= 3) \
|
||||||
|
|| defined(_AIX) \
|
||||||
|
|| ( defined(__sgi) && defined(__host_mips)) \
|
||||||
|
|| (defined(__hpux) && defined(__HP_aCC)) \
|
||||||
|
|| (defined(linux) && defined(__INTEL_COMPILER) && defined(__ICC))
|
||||||
|
# define BOOST_AUX_ANY_TYPE_ID_NAME
|
||||||
|
#include <cstring>
|
||||||
|
# endif
|
||||||
|
|
||||||
|
namespace boost
|
||||||
|
{
|
||||||
|
class any
|
||||||
|
{
|
||||||
|
public: // structors
|
||||||
|
|
||||||
|
any()
|
||||||
|
: content(0)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
template<typename ValueType>
|
||||||
|
any(const ValueType & value)
|
||||||
|
: content(new holder<ValueType>(value))
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
any(const any & other)
|
||||||
|
: content(other.content ? other.content->clone() : 0)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
~any()
|
||||||
|
{
|
||||||
|
delete content;
|
||||||
|
}
|
||||||
|
|
||||||
|
public: // modifiers
|
||||||
|
|
||||||
|
any & swap(any & rhs)
|
||||||
|
{
|
||||||
|
std::swap(content, rhs.content);
|
||||||
|
return *this;
|
||||||
|
}
|
||||||
|
|
||||||
|
template<typename ValueType>
|
||||||
|
any & operator=(const ValueType & rhs)
|
||||||
|
{
|
||||||
|
any(rhs).swap(*this);
|
||||||
|
return *this;
|
||||||
|
}
|
||||||
|
|
||||||
|
any & operator=(any rhs)
|
||||||
|
{
|
||||||
|
rhs.swap(*this);
|
||||||
|
return *this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public: // queries
|
||||||
|
|
||||||
|
bool empty() const
|
||||||
|
{
|
||||||
|
return !content;
|
||||||
|
}
|
||||||
|
|
||||||
|
const std::type_info & type() const
|
||||||
|
{
|
||||||
|
return content ? content->type() : typeid(void);
|
||||||
|
}
|
||||||
|
|
||||||
|
#ifndef BOOST_NO_MEMBER_TEMPLATE_FRIENDS
|
||||||
|
private: // types
|
||||||
|
#else
|
||||||
|
public: // types (public so any_cast can be non-friend)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
class placeholder
|
||||||
|
{
|
||||||
|
public: // structors
|
||||||
|
|
||||||
|
virtual ~placeholder()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
public: // queries
|
||||||
|
|
||||||
|
virtual const std::type_info & type() const = 0;
|
||||||
|
|
||||||
|
virtual placeholder * clone() const = 0;
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
template<typename ValueType>
|
||||||
|
class holder : public placeholder
|
||||||
|
{
|
||||||
|
public: // structors
|
||||||
|
|
||||||
|
holder(const ValueType & value)
|
||||||
|
: held(value)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
public: // queries
|
||||||
|
|
||||||
|
virtual const std::type_info & type() const
|
||||||
|
{
|
||||||
|
return typeid(ValueType);
|
||||||
|
}
|
||||||
|
|
||||||
|
virtual placeholder * clone() const
|
||||||
|
{
|
||||||
|
return new holder(held);
|
||||||
|
}
|
||||||
|
|
||||||
|
public: // representation
|
||||||
|
|
||||||
|
ValueType held;
|
||||||
|
|
||||||
|
private: // intentionally left unimplemented
|
||||||
|
holder & operator=(const holder &);
|
||||||
|
};
|
||||||
|
|
||||||
|
#ifndef BOOST_NO_MEMBER_TEMPLATE_FRIENDS
|
||||||
|
|
||||||
|
private: // representation
|
||||||
|
|
||||||
|
template<typename ValueType>
|
||||||
|
friend ValueType * any_cast(any *);
|
||||||
|
|
||||||
|
template<typename ValueType>
|
||||||
|
friend ValueType * unsafe_any_cast(any *);
|
||||||
|
|
||||||
|
#else
|
||||||
|
|
||||||
|
public: // representation (public so any_cast can be non-friend)
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
placeholder * content;
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
class bad_any_cast : public std::bad_cast
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
virtual const char * what() const throw()
|
||||||
|
{
|
||||||
|
return "boost::bad_any_cast: "
|
||||||
|
"failed conversion using boost::any_cast";
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
template<typename ValueType>
|
||||||
|
ValueType * any_cast(any * operand)
|
||||||
|
{
|
||||||
|
return operand &&
|
||||||
|
#ifdef BOOST_AUX_ANY_TYPE_ID_NAME
|
||||||
|
std::strcmp(operand->type().name(), typeid(ValueType).name()) == 0
|
||||||
|
#else
|
||||||
|
operand->type() == typeid(ValueType)
|
||||||
|
#endif
|
||||||
|
? &static_cast<any::holder<ValueType> *>(operand->content)->held
|
||||||
|
: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
template<typename ValueType>
|
||||||
|
inline const ValueType * any_cast(const any * operand)
|
||||||
|
{
|
||||||
|
return any_cast<ValueType>(const_cast<any *>(operand));
|
||||||
|
}
|
||||||
|
|
||||||
|
template<typename ValueType>
|
||||||
|
ValueType any_cast(any & operand)
|
||||||
|
{
|
||||||
|
typedef BOOST_DEDUCED_TYPENAME remove_reference<ValueType>::type nonref;
|
||||||
|
|
||||||
|
#ifdef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
|
||||||
|
// If 'nonref' is still reference type, it means the user has not
|
||||||
|
// specialized 'remove_reference'.
|
||||||
|
|
||||||
|
// Please use BOOST_BROKEN_COMPILER_TYPE_TRAITS_SPECIALIZATION macro
|
||||||
|
// to generate specialization of remove_reference for your class
|
||||||
|
// See type traits library documentation for details
|
||||||
|
BOOST_STATIC_ASSERT(!is_reference<nonref>::value);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
nonref * result = any_cast<nonref>(&operand);
|
||||||
|
if(!result)
|
||||||
|
boost::throw_exception(bad_any_cast());
|
||||||
|
return *result;
|
||||||
|
}
|
||||||
|
|
||||||
|
template<typename ValueType>
|
||||||
|
inline ValueType any_cast(const any & operand)
|
||||||
|
{
|
||||||
|
typedef BOOST_DEDUCED_TYPENAME remove_reference<ValueType>::type nonref;
|
||||||
|
|
||||||
|
#ifdef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
|
||||||
|
// The comment in the above version of 'any_cast' explains when this
|
||||||
|
// assert is fired and what to do.
|
||||||
|
BOOST_STATIC_ASSERT(!is_reference<nonref>::value);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
return any_cast<const nonref &>(const_cast<any &>(operand));
|
||||||
|
}
|
||||||
|
|
||||||
|
// Note: The "unsafe" versions of any_cast are not part of the
|
||||||
|
// public interface and may be removed at any time. They are
|
||||||
|
// required where we know what type is stored in the any and can't
|
||||||
|
// use typeid() comparison, e.g., when our types may travel across
|
||||||
|
// different shared libraries.
|
||||||
|
template<typename ValueType>
|
||||||
|
inline ValueType * unsafe_any_cast(any * operand)
|
||||||
|
{
|
||||||
|
return &static_cast<any::holder<ValueType> *>(operand->content)->held;
|
||||||
|
}
|
||||||
|
|
||||||
|
template<typename ValueType>
|
||||||
|
inline const ValueType * unsafe_any_cast(const any * operand)
|
||||||
|
{
|
||||||
|
return unsafe_any_cast<ValueType>(const_cast<any *>(operand));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Copyright Kevlin Henney, 2000, 2001, 2002. All rights reserved.
|
||||||
|
//
|
||||||
|
// Distributed under the Boost Software License, Version 1.0. (See
|
||||||
|
// accompanying file LICENSE_1_0.txt or copy at
|
||||||
|
// http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
|
||||||
|
#endif
|
|
@ -0,0 +1,437 @@
|
||||||
|
/* The following code declares class array,
|
||||||
|
* an STL container (as wrapper) for arrays of constant size.
|
||||||
|
*
|
||||||
|
* See
|
||||||
|
* http://www.boost.org/libs/array/
|
||||||
|
* for documentation.
|
||||||
|
*
|
||||||
|
* The original author site is at: http://www.josuttis.com/
|
||||||
|
*
|
||||||
|
* (C) Copyright Nicolai M. Josuttis 2001.
|
||||||
|
*
|
||||||
|
* Distributed under the Boost Software License, Version 1.0. (See
|
||||||
|
* accompanying file LICENSE_1_0.txt or copy at
|
||||||
|
* http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
*
|
||||||
|
* 28 Dec 2010 - (mtc) Added cbegin and cend (and crbegin and crend) for C++Ox compatibility.
|
||||||
|
* 10 Mar 2010 - (mtc) fill method added, matching resolution of the standard library working group.
|
||||||
|
* See <http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#776> or Trac issue #3168
|
||||||
|
* Eventually, we should remove "assign" which is now a synonym for "fill" (Marshall Clow)
|
||||||
|
* 10 Mar 2010 - added workaround for SUNCC and !STLPort [trac #3893] (Marshall Clow)
|
||||||
|
* 29 Jan 2004 - c_array() added, BOOST_NO_PRIVATE_IN_AGGREGATE removed (Nico Josuttis)
|
||||||
|
* 23 Aug 2002 - fix for Non-MSVC compilers combined with MSVC libraries.
|
||||||
|
* 05 Aug 2001 - minor update (Nico Josuttis)
|
||||||
|
* 20 Jan 2001 - STLport fix (Beman Dawes)
|
||||||
|
* 29 Sep 2000 - Initial Revision (Nico Josuttis)
|
||||||
|
*
|
||||||
|
* Jan 29, 2004
|
||||||
|
*/
|
||||||
|
#ifndef BOOST_ARRAY_HPP
|
||||||
|
#define BOOST_ARRAY_HPP
|
||||||
|
|
||||||
|
#include <boost/detail/workaround.hpp>
|
||||||
|
|
||||||
|
#if BOOST_WORKAROUND(BOOST_MSVC, >= 1400)
|
||||||
|
# pragma warning(push)
|
||||||
|
# pragma warning(disable:4996) // 'std::equal': Function call with parameters that may be unsafe
|
||||||
|
# pragma warning(disable:4510) // boost::array<T,N>' : default constructor could not be generated
|
||||||
|
# pragma warning(disable:4610) // warning C4610: class 'boost::array<T,N>' can never be instantiated - user defined constructor required
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <cstddef>
|
||||||
|
#include <stdexcept>
|
||||||
|
#include <boost/assert.hpp>
|
||||||
|
#include <boost/swap.hpp>
|
||||||
|
|
||||||
|
// Handles broken standard libraries better than <iterator>
|
||||||
|
#include <boost/detail/iterator.hpp>
|
||||||
|
#include <boost/throw_exception.hpp>
|
||||||
|
#include <algorithm>
|
||||||
|
|
||||||
|
// FIXES for broken compilers
|
||||||
|
#include <boost/config.hpp>
|
||||||
|
|
||||||
|
|
||||||
|
namespace boost {
|
||||||
|
|
||||||
|
template<class T, std::size_t N>
|
||||||
|
class array {
|
||||||
|
public:
|
||||||
|
T elems[N]; // fixed-size array of elements of type T
|
||||||
|
|
||||||
|
public:
|
||||||
|
// type definitions
|
||||||
|
typedef T value_type;
|
||||||
|
typedef T* iterator;
|
||||||
|
typedef const T* const_iterator;
|
||||||
|
typedef T& reference;
|
||||||
|
typedef const T& const_reference;
|
||||||
|
typedef std::size_t size_type;
|
||||||
|
typedef std::ptrdiff_t difference_type;
|
||||||
|
|
||||||
|
// iterator support
|
||||||
|
iterator begin() { return elems; }
|
||||||
|
const_iterator begin() const { return elems; }
|
||||||
|
const_iterator cbegin() const { return elems; }
|
||||||
|
|
||||||
|
iterator end() { return elems+N; }
|
||||||
|
const_iterator end() const { return elems+N; }
|
||||||
|
const_iterator cend() const { return elems+N; }
|
||||||
|
|
||||||
|
// reverse iterator support
|
||||||
|
#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) && !defined(BOOST_MSVC_STD_ITERATOR) && !defined(BOOST_NO_STD_ITERATOR_TRAITS)
|
||||||
|
typedef std::reverse_iterator<iterator> reverse_iterator;
|
||||||
|
typedef std::reverse_iterator<const_iterator> const_reverse_iterator;
|
||||||
|
#elif defined(_MSC_VER) && (_MSC_VER == 1300) && defined(BOOST_DINKUMWARE_STDLIB) && (BOOST_DINKUMWARE_STDLIB == 310)
|
||||||
|
// workaround for broken reverse_iterator in VC7
|
||||||
|
typedef std::reverse_iterator<std::_Ptrit<value_type, difference_type, iterator,
|
||||||
|
reference, iterator, reference> > reverse_iterator;
|
||||||
|
typedef std::reverse_iterator<std::_Ptrit<value_type, difference_type, const_iterator,
|
||||||
|
const_reference, iterator, reference> > const_reverse_iterator;
|
||||||
|
#elif defined(_RWSTD_NO_CLASS_PARTIAL_SPEC)
|
||||||
|
typedef std::reverse_iterator<iterator, std::random_access_iterator_tag,
|
||||||
|
value_type, reference, iterator, difference_type> reverse_iterator;
|
||||||
|
typedef std::reverse_iterator<const_iterator, std::random_access_iterator_tag,
|
||||||
|
value_type, const_reference, const_iterator, difference_type> const_reverse_iterator;
|
||||||
|
#else
|
||||||
|
// workaround for broken reverse_iterator implementations
|
||||||
|
typedef std::reverse_iterator<iterator,T> reverse_iterator;
|
||||||
|
typedef std::reverse_iterator<const_iterator,T> const_reverse_iterator;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
reverse_iterator rbegin() { return reverse_iterator(end()); }
|
||||||
|
const_reverse_iterator rbegin() const {
|
||||||
|
return const_reverse_iterator(end());
|
||||||
|
}
|
||||||
|
const_reverse_iterator crbegin() const {
|
||||||
|
return const_reverse_iterator(end());
|
||||||
|
}
|
||||||
|
|
||||||
|
reverse_iterator rend() { return reverse_iterator(begin()); }
|
||||||
|
const_reverse_iterator rend() const {
|
||||||
|
return const_reverse_iterator(begin());
|
||||||
|
}
|
||||||
|
const_reverse_iterator crend() const {
|
||||||
|
return const_reverse_iterator(begin());
|
||||||
|
}
|
||||||
|
|
||||||
|
// operator[]
|
||||||
|
reference operator[](size_type i)
|
||||||
|
{
|
||||||
|
BOOST_ASSERT( i < N && "out of range" );
|
||||||
|
return elems[i];
|
||||||
|
}
|
||||||
|
|
||||||
|
const_reference operator[](size_type i) const
|
||||||
|
{
|
||||||
|
BOOST_ASSERT( i < N && "out of range" );
|
||||||
|
return elems[i];
|
||||||
|
}
|
||||||
|
|
||||||
|
// at() with range check
|
||||||
|
reference at(size_type i) { rangecheck(i); return elems[i]; }
|
||||||
|
const_reference at(size_type i) const { rangecheck(i); return elems[i]; }
|
||||||
|
|
||||||
|
// front() and back()
|
||||||
|
reference front()
|
||||||
|
{
|
||||||
|
return elems[0];
|
||||||
|
}
|
||||||
|
|
||||||
|
const_reference front() const
|
||||||
|
{
|
||||||
|
return elems[0];
|
||||||
|
}
|
||||||
|
|
||||||
|
reference back()
|
||||||
|
{
|
||||||
|
return elems[N-1];
|
||||||
|
}
|
||||||
|
|
||||||
|
const_reference back() const
|
||||||
|
{
|
||||||
|
return elems[N-1];
|
||||||
|
}
|
||||||
|
|
||||||
|
// size is constant
|
||||||
|
static size_type size() { return N; }
|
||||||
|
static bool empty() { return false; }
|
||||||
|
static size_type max_size() { return N; }
|
||||||
|
enum { static_size = N };
|
||||||
|
|
||||||
|
// swap (note: linear complexity)
|
||||||
|
void swap (array<T,N>& y) {
|
||||||
|
for (size_type i = 0; i < N; ++i)
|
||||||
|
boost::swap(elems[i],y.elems[i]);
|
||||||
|
}
|
||||||
|
|
||||||
|
// direct access to data (read-only)
|
||||||
|
const T* data() const { return elems; }
|
||||||
|
T* data() { return elems; }
|
||||||
|
|
||||||
|
// use array as C array (direct read/write access to data)
|
||||||
|
T* c_array() { return elems; }
|
||||||
|
|
||||||
|
// assignment with type conversion
|
||||||
|
template <typename T2>
|
||||||
|
array<T,N>& operator= (const array<T2,N>& rhs) {
|
||||||
|
std::copy(rhs.begin(),rhs.end(), begin());
|
||||||
|
return *this;
|
||||||
|
}
|
||||||
|
|
||||||
|
// assign one value to all elements
|
||||||
|
void assign (const T& value) { fill ( value ); } // A synonym for fill
|
||||||
|
void fill (const T& value)
|
||||||
|
{
|
||||||
|
std::fill_n(begin(),size(),value);
|
||||||
|
}
|
||||||
|
|
||||||
|
// check range (may be private because it is static)
|
||||||
|
static void rangecheck (size_type i) {
|
||||||
|
if (i >= size()) {
|
||||||
|
std::out_of_range e("array<>: index out of range");
|
||||||
|
boost::throw_exception(e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
|
||||||
|
template< class T >
|
||||||
|
class array< T, 0 > {
|
||||||
|
|
||||||
|
public:
|
||||||
|
// type definitions
|
||||||
|
typedef T value_type;
|
||||||
|
typedef T* iterator;
|
||||||
|
typedef const T* const_iterator;
|
||||||
|
typedef T& reference;
|
||||||
|
typedef const T& const_reference;
|
||||||
|
typedef std::size_t size_type;
|
||||||
|
typedef std::ptrdiff_t difference_type;
|
||||||
|
|
||||||
|
// iterator support
|
||||||
|
iterator begin() { return iterator( reinterpret_cast< T * >( this ) ); }
|
||||||
|
const_iterator begin() const { return const_iterator( reinterpret_cast< const T * >( this ) ); }
|
||||||
|
const_iterator cbegin() const { return const_iterator( reinterpret_cast< const T * >( this ) ); }
|
||||||
|
|
||||||
|
iterator end() { return begin(); }
|
||||||
|
const_iterator end() const { return begin(); }
|
||||||
|
const_iterator cend() const { return cbegin(); }
|
||||||
|
|
||||||
|
// reverse iterator support
|
||||||
|
#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) && !defined(BOOST_MSVC_STD_ITERATOR) && !defined(BOOST_NO_STD_ITERATOR_TRAITS)
|
||||||
|
typedef std::reverse_iterator<iterator> reverse_iterator;
|
||||||
|
typedef std::reverse_iterator<const_iterator> const_reverse_iterator;
|
||||||
|
#elif defined(_MSC_VER) && (_MSC_VER == 1300) && defined(BOOST_DINKUMWARE_STDLIB) && (BOOST_DINKUMWARE_STDLIB == 310)
|
||||||
|
// workaround for broken reverse_iterator in VC7
|
||||||
|
typedef std::reverse_iterator<std::_Ptrit<value_type, difference_type, iterator,
|
||||||
|
reference, iterator, reference> > reverse_iterator;
|
||||||
|
typedef std::reverse_iterator<std::_Ptrit<value_type, difference_type, const_iterator,
|
||||||
|
const_reference, iterator, reference> > const_reverse_iterator;
|
||||||
|
#elif defined(_RWSTD_NO_CLASS_PARTIAL_SPEC)
|
||||||
|
typedef std::reverse_iterator<iterator, std::random_access_iterator_tag,
|
||||||
|
value_type, reference, iterator, difference_type> reverse_iterator;
|
||||||
|
typedef std::reverse_iterator<const_iterator, std::random_access_iterator_tag,
|
||||||
|
value_type, const_reference, const_iterator, difference_type> const_reverse_iterator;
|
||||||
|
#else
|
||||||
|
// workaround for broken reverse_iterator implementations
|
||||||
|
typedef std::reverse_iterator<iterator,T> reverse_iterator;
|
||||||
|
typedef std::reverse_iterator<const_iterator,T> const_reverse_iterator;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
reverse_iterator rbegin() { return reverse_iterator(end()); }
|
||||||
|
const_reverse_iterator rbegin() const {
|
||||||
|
return const_reverse_iterator(end());
|
||||||
|
}
|
||||||
|
const_reverse_iterator crbegin() const {
|
||||||
|
return const_reverse_iterator(end());
|
||||||
|
}
|
||||||
|
|
||||||
|
reverse_iterator rend() { return reverse_iterator(begin()); }
|
||||||
|
const_reverse_iterator rend() const {
|
||||||
|
return const_reverse_iterator(begin());
|
||||||
|
}
|
||||||
|
const_reverse_iterator crend() const {
|
||||||
|
return const_reverse_iterator(begin());
|
||||||
|
}
|
||||||
|
|
||||||
|
// operator[]
|
||||||
|
reference operator[](size_type /*i*/)
|
||||||
|
{
|
||||||
|
return failed_rangecheck();
|
||||||
|
}
|
||||||
|
|
||||||
|
const_reference operator[](size_type /*i*/) const
|
||||||
|
{
|
||||||
|
return failed_rangecheck();
|
||||||
|
}
|
||||||
|
|
||||||
|
// at() with range check
|
||||||
|
reference at(size_type /*i*/) { return failed_rangecheck(); }
|
||||||
|
const_reference at(size_type /*i*/) const { return failed_rangecheck(); }
|
||||||
|
|
||||||
|
// front() and back()
|
||||||
|
reference front()
|
||||||
|
{
|
||||||
|
return failed_rangecheck();
|
||||||
|
}
|
||||||
|
|
||||||
|
const_reference front() const
|
||||||
|
{
|
||||||
|
return failed_rangecheck();
|
||||||
|
}
|
||||||
|
|
||||||
|
reference back()
|
||||||
|
{
|
||||||
|
return failed_rangecheck();
|
||||||
|
}
|
||||||
|
|
||||||
|
const_reference back() const
|
||||||
|
{
|
||||||
|
return failed_rangecheck();
|
||||||
|
}
|
||||||
|
|
||||||
|
// size is constant
|
||||||
|
static size_type size() { return 0; }
|
||||||
|
static bool empty() { return true; }
|
||||||
|
static size_type max_size() { return 0; }
|
||||||
|
enum { static_size = 0 };
|
||||||
|
|
||||||
|
void swap (array<T,0>& /*y*/) {
|
||||||
|
}
|
||||||
|
|
||||||
|
// direct access to data (read-only)
|
||||||
|
const T* data() const { return 0; }
|
||||||
|
T* data() { return 0; }
|
||||||
|
|
||||||
|
// use array as C array (direct read/write access to data)
|
||||||
|
T* c_array() { return 0; }
|
||||||
|
|
||||||
|
// assignment with type conversion
|
||||||
|
template <typename T2>
|
||||||
|
array<T,0>& operator= (const array<T2,0>& ) {
|
||||||
|
return *this;
|
||||||
|
}
|
||||||
|
|
||||||
|
// assign one value to all elements
|
||||||
|
void assign (const T& value) { fill ( value ); }
|
||||||
|
void fill (const T& ) {}
|
||||||
|
|
||||||
|
// check range (may be private because it is static)
|
||||||
|
static reference failed_rangecheck () {
|
||||||
|
std::out_of_range e("attempt to access element of an empty array");
|
||||||
|
boost::throw_exception(e);
|
||||||
|
#if defined(BOOST_NO_EXCEPTIONS) || (!defined(BOOST_MSVC) && !defined(__PATHSCALE__))
|
||||||
|
//
|
||||||
|
// We need to return something here to keep
|
||||||
|
// some compilers happy: however we will never
|
||||||
|
// actually get here....
|
||||||
|
//
|
||||||
|
static T placeholder;
|
||||||
|
return placeholder;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
};
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// comparisons
|
||||||
|
template<class T, std::size_t N>
|
||||||
|
bool operator== (const array<T,N>& x, const array<T,N>& y) {
|
||||||
|
return std::equal(x.begin(), x.end(), y.begin());
|
||||||
|
}
|
||||||
|
template<class T, std::size_t N>
|
||||||
|
bool operator< (const array<T,N>& x, const array<T,N>& y) {
|
||||||
|
return std::lexicographical_compare(x.begin(),x.end(),y.begin(),y.end());
|
||||||
|
}
|
||||||
|
template<class T, std::size_t N>
|
||||||
|
bool operator!= (const array<T,N>& x, const array<T,N>& y) {
|
||||||
|
return !(x==y);
|
||||||
|
}
|
||||||
|
template<class T, std::size_t N>
|
||||||
|
bool operator> (const array<T,N>& x, const array<T,N>& y) {
|
||||||
|
return y<x;
|
||||||
|
}
|
||||||
|
template<class T, std::size_t N>
|
||||||
|
bool operator<= (const array<T,N>& x, const array<T,N>& y) {
|
||||||
|
return !(y<x);
|
||||||
|
}
|
||||||
|
template<class T, std::size_t N>
|
||||||
|
bool operator>= (const array<T,N>& x, const array<T,N>& y) {
|
||||||
|
return !(x<y);
|
||||||
|
}
|
||||||
|
|
||||||
|
// global swap()
|
||||||
|
template<class T, std::size_t N>
|
||||||
|
inline void swap (array<T,N>& x, array<T,N>& y) {
|
||||||
|
x.swap(y);
|
||||||
|
}
|
||||||
|
|
||||||
|
#if defined(__SUNPRO_CC)
|
||||||
|
// Trac ticket #4757; the Sun Solaris compiler can't handle
|
||||||
|
// syntax like 'T(&get_c_array(boost::array<T,N>& arg))[N]'
|
||||||
|
//
|
||||||
|
// We can't just use this for all compilers, because the
|
||||||
|
// borland compilers can't handle this form.
|
||||||
|
namespace detail {
|
||||||
|
template <typename T, std::size_t N> struct c_array
|
||||||
|
{
|
||||||
|
typedef T type[N];
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
// Specific for boost::array: simply returns its elems data member.
|
||||||
|
template <typename T, std::size_t N>
|
||||||
|
typename detail::c_array<T,N>::type& get_c_array(boost::array<T,N>& arg)
|
||||||
|
{
|
||||||
|
return arg.elems;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Specific for boost::array: simply returns its elems data member.
|
||||||
|
template <typename T, std::size_t N>
|
||||||
|
typename const detail::c_array<T,N>::type& get_c_array(const boost::array<T,N>& arg)
|
||||||
|
{
|
||||||
|
return arg.elems;
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
// Specific for boost::array: simply returns its elems data member.
|
||||||
|
template <typename T, std::size_t N>
|
||||||
|
T(&get_c_array(boost::array<T,N>& arg))[N]
|
||||||
|
{
|
||||||
|
return arg.elems;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Const version.
|
||||||
|
template <typename T, std::size_t N>
|
||||||
|
const T(&get_c_array(const boost::array<T,N>& arg))[N]
|
||||||
|
{
|
||||||
|
return arg.elems;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if 0
|
||||||
|
// Overload for std::array, assuming that std::array will have
|
||||||
|
// explicit conversion functions as discussed at the WG21 meeting
|
||||||
|
// in Summit, March 2009.
|
||||||
|
template <typename T, std::size_t N>
|
||||||
|
T(&get_c_array(std::array<T,N>& arg))[N]
|
||||||
|
{
|
||||||
|
return static_cast<T(&)[N]>(arg);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Const version.
|
||||||
|
template <typename T, std::size_t N>
|
||||||
|
const T(&get_c_array(const std::array<T,N>& arg))[N]
|
||||||
|
{
|
||||||
|
return static_cast<T(&)[N]>(arg);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
} /* namespace boost */
|
||||||
|
|
||||||
|
|
||||||
|
#if BOOST_WORKAROUND(BOOST_MSVC, >= 1400)
|
||||||
|
# pragma warning(pop)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /*BOOST_ARRAY_HPP*/
|
|
@ -0,0 +1,112 @@
|
||||||
|
//
|
||||||
|
// asio.hpp
|
||||||
|
// ~~~~~~~~
|
||||||
|
//
|
||||||
|
// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
|
||||||
|
//
|
||||||
|
// Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||||
|
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
//
|
||||||
|
// See www.boost.org/libs/asio for documentation.
|
||||||
|
//
|
||||||
|
|
||||||
|
#ifndef BOOST_ASIO_HPP
|
||||||
|
#define BOOST_ASIO_HPP
|
||||||
|
|
||||||
|
#if defined(_MSC_VER) && (_MSC_VER >= 1200)
|
||||||
|
# pragma once
|
||||||
|
#endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
|
||||||
|
|
||||||
|
#include <boost/asio/basic_datagram_socket.hpp>
|
||||||
|
#include <boost/asio/basic_deadline_timer.hpp>
|
||||||
|
#include <boost/asio/basic_io_object.hpp>
|
||||||
|
#include <boost/asio/basic_raw_socket.hpp>
|
||||||
|
#include <boost/asio/basic_seq_packet_socket.hpp>
|
||||||
|
#include <boost/asio/basic_serial_port.hpp>
|
||||||
|
#include <boost/asio/basic_signal_set.hpp>
|
||||||
|
#include <boost/asio/basic_socket_acceptor.hpp>
|
||||||
|
#include <boost/asio/basic_socket_iostream.hpp>
|
||||||
|
#include <boost/asio/basic_socket_streambuf.hpp>
|
||||||
|
#include <boost/asio/basic_stream_socket.hpp>
|
||||||
|
#include <boost/asio/basic_streambuf.hpp>
|
||||||
|
#include <boost/asio/basic_waitable_timer.hpp>
|
||||||
|
#include <boost/asio/buffer.hpp>
|
||||||
|
#include <boost/asio/buffered_read_stream_fwd.hpp>
|
||||||
|
#include <boost/asio/buffered_read_stream.hpp>
|
||||||
|
#include <boost/asio/buffered_stream_fwd.hpp>
|
||||||
|
#include <boost/asio/buffered_stream.hpp>
|
||||||
|
#include <boost/asio/buffered_write_stream_fwd.hpp>
|
||||||
|
#include <boost/asio/buffered_write_stream.hpp>
|
||||||
|
#include <boost/asio/buffers_iterator.hpp>
|
||||||
|
#include <boost/asio/completion_condition.hpp>
|
||||||
|
#include <boost/asio/connect.hpp>
|
||||||
|
#include <boost/asio/datagram_socket_service.hpp>
|
||||||
|
#include <boost/asio/deadline_timer_service.hpp>
|
||||||
|
#include <boost/asio/deadline_timer.hpp>
|
||||||
|
#include <boost/asio/error.hpp>
|
||||||
|
#include <boost/asio/handler_alloc_hook.hpp>
|
||||||
|
#include <boost/asio/handler_invoke_hook.hpp>
|
||||||
|
#include <boost/asio/io_service.hpp>
|
||||||
|
#include <boost/asio/ip/address.hpp>
|
||||||
|
#include <boost/asio/ip/address_v4.hpp>
|
||||||
|
#include <boost/asio/ip/address_v6.hpp>
|
||||||
|
#include <boost/asio/ip/basic_endpoint.hpp>
|
||||||
|
#include <boost/asio/ip/basic_resolver.hpp>
|
||||||
|
#include <boost/asio/ip/basic_resolver_entry.hpp>
|
||||||
|
#include <boost/asio/ip/basic_resolver_iterator.hpp>
|
||||||
|
#include <boost/asio/ip/basic_resolver_query.hpp>
|
||||||
|
#include <boost/asio/ip/host_name.hpp>
|
||||||
|
#include <boost/asio/ip/icmp.hpp>
|
||||||
|
#include <boost/asio/ip/multicast.hpp>
|
||||||
|
#include <boost/asio/ip/resolver_query_base.hpp>
|
||||||
|
#include <boost/asio/ip/resolver_service.hpp>
|
||||||
|
#include <boost/asio/ip/tcp.hpp>
|
||||||
|
#include <boost/asio/ip/udp.hpp>
|
||||||
|
#include <boost/asio/ip/unicast.hpp>
|
||||||
|
#include <boost/asio/ip/v6_only.hpp>
|
||||||
|
#include <boost/asio/is_read_buffered.hpp>
|
||||||
|
#include <boost/asio/is_write_buffered.hpp>
|
||||||
|
#include <boost/asio/local/basic_endpoint.hpp>
|
||||||
|
#include <boost/asio/local/connect_pair.hpp>
|
||||||
|
#include <boost/asio/local/datagram_protocol.hpp>
|
||||||
|
#include <boost/asio/local/stream_protocol.hpp>
|
||||||
|
#include <boost/asio/placeholders.hpp>
|
||||||
|
#include <boost/asio/posix/basic_descriptor.hpp>
|
||||||
|
#include <boost/asio/posix/basic_stream_descriptor.hpp>
|
||||||
|
#include <boost/asio/posix/descriptor_base.hpp>
|
||||||
|
#include <boost/asio/posix/stream_descriptor.hpp>
|
||||||
|
#include <boost/asio/posix/stream_descriptor_service.hpp>
|
||||||
|
#include <boost/asio/raw_socket_service.hpp>
|
||||||
|
#include <boost/asio/read.hpp>
|
||||||
|
#include <boost/asio/read_at.hpp>
|
||||||
|
#include <boost/asio/read_until.hpp>
|
||||||
|
#include <boost/asio/seq_packet_socket_service.hpp>
|
||||||
|
#include <boost/asio/serial_port.hpp>
|
||||||
|
#include <boost/asio/serial_port_base.hpp>
|
||||||
|
#include <boost/asio/serial_port_service.hpp>
|
||||||
|
#include <boost/asio/signal_set.hpp>
|
||||||
|
#include <boost/asio/signal_set_service.hpp>
|
||||||
|
#include <boost/asio/socket_acceptor_service.hpp>
|
||||||
|
#include <boost/asio/socket_base.hpp>
|
||||||
|
#include <boost/asio/strand.hpp>
|
||||||
|
#include <boost/asio/stream_socket_service.hpp>
|
||||||
|
#include <boost/asio/streambuf.hpp>
|
||||||
|
#include <boost/asio/time_traits.hpp>
|
||||||
|
#include <boost/asio/version.hpp>
|
||||||
|
#include <boost/asio/wait_traits.hpp>
|
||||||
|
#include <boost/asio/waitable_timer_service.hpp>
|
||||||
|
#include <boost/asio/windows/basic_handle.hpp>
|
||||||
|
#include <boost/asio/windows/basic_object_handle.hpp>
|
||||||
|
#include <boost/asio/windows/basic_random_access_handle.hpp>
|
||||||
|
#include <boost/asio/windows/basic_stream_handle.hpp>
|
||||||
|
#include <boost/asio/windows/object_handle.hpp>
|
||||||
|
#include <boost/asio/windows/object_handle_service.hpp>
|
||||||
|
#include <boost/asio/windows/overlapped_ptr.hpp>
|
||||||
|
#include <boost/asio/windows/random_access_handle.hpp>
|
||||||
|
#include <boost/asio/windows/random_access_handle_service.hpp>
|
||||||
|
#include <boost/asio/windows/stream_handle.hpp>
|
||||||
|
#include <boost/asio/windows/stream_handle_service.hpp>
|
||||||
|
#include <boost/asio/write.hpp>
|
||||||
|
#include <boost/asio/write_at.hpp>
|
||||||
|
|
||||||
|
#endif // BOOST_ASIO_HPP
|
|
@ -1,50 +1,131 @@
|
||||||
//
|
//
|
||||||
// boost/assert.hpp - BOOST_ASSERT(expr)
|
// boost/assert.hpp - BOOST_ASSERT(expr)
|
||||||
//
|
// BOOST_ASSERT_MSG(expr, msg)
|
||||||
// Copyright (c) 2001, 2002 Peter Dimov and Multi Media Ltd.
|
// BOOST_VERIFY(expr)
|
||||||
// Copyright (c) 2007 Peter Dimov
|
//
|
||||||
//
|
// Copyright (c) 2001, 2002 Peter Dimov and Multi Media Ltd.
|
||||||
// Distributed under the Boost Software License, Version 1.0. (See
|
// Copyright (c) 2007 Peter Dimov
|
||||||
// accompanying file LICENSE_1_0.txt or copy at
|
// Copyright (c) Beman Dawes 2011
|
||||||
// http://www.boost.org/LICENSE_1_0.txt)
|
//
|
||||||
//
|
// Distributed under the Boost Software License, Version 1.0. (See
|
||||||
// Note: There are no include guards. This is intentional.
|
// accompanying file LICENSE_1_0.txt or copy at
|
||||||
//
|
// http://www.boost.org/LICENSE_1_0.txt)
|
||||||
// See http://www.boost.org/libs/utility/assert.html for documentation.
|
//
|
||||||
//
|
// Note: There are no include guards. This is intentional.
|
||||||
|
//
|
||||||
#undef BOOST_ASSERT
|
// See http://www.boost.org/libs/utility/assert.html for documentation.
|
||||||
|
//
|
||||||
#if defined(BOOST_DISABLE_ASSERTS)
|
|
||||||
|
//
|
||||||
# define BOOST_ASSERT(expr) ((void)0)
|
// Stop inspect complaining about use of 'assert':
|
||||||
|
//
|
||||||
#elif defined(BOOST_ENABLE_ASSERT_HANDLER)
|
// boostinspect:naassert_macro
|
||||||
|
//
|
||||||
#include <boost/current_function.hpp>
|
|
||||||
|
//--------------------------------------------------------------------------------------//
|
||||||
namespace boost
|
// BOOST_ASSERT //
|
||||||
{
|
//--------------------------------------------------------------------------------------//
|
||||||
|
|
||||||
void assertion_failed(char const * expr, char const * function, char const * file, long line); // user defined
|
#undef BOOST_ASSERT
|
||||||
|
|
||||||
} // namespace boost
|
#if defined(BOOST_DISABLE_ASSERTS)
|
||||||
|
|
||||||
#define BOOST_ASSERT(expr) ((expr)? ((void)0): ::boost::assertion_failed(#expr, BOOST_CURRENT_FUNCTION, __FILE__, __LINE__))
|
# define BOOST_ASSERT(expr) ((void)0)
|
||||||
|
|
||||||
#else
|
#elif defined(BOOST_ENABLE_ASSERT_HANDLER)
|
||||||
# include <assert.h> // .h to support old libraries w/o <cassert> - effect is the same
|
|
||||||
# define BOOST_ASSERT(expr) assert(expr)
|
#include <boost/current_function.hpp>
|
||||||
#endif
|
|
||||||
|
namespace boost
|
||||||
#undef BOOST_VERIFY
|
{
|
||||||
|
void assertion_failed(char const * expr,
|
||||||
#if defined(BOOST_DISABLE_ASSERTS) || ( !defined(BOOST_ENABLE_ASSERT_HANDLER) && defined(NDEBUG) )
|
char const * function, char const * file, long line); // user defined
|
||||||
|
} // namespace boost
|
||||||
# define BOOST_VERIFY(expr) ((void)(expr))
|
|
||||||
|
#define BOOST_ASSERT(expr) ((expr) \
|
||||||
#else
|
? ((void)0) \
|
||||||
|
: ::boost::assertion_failed(#expr, BOOST_CURRENT_FUNCTION, __FILE__, __LINE__))
|
||||||
# define BOOST_VERIFY(expr) BOOST_ASSERT(expr)
|
|
||||||
|
#else
|
||||||
#endif
|
# include <assert.h> // .h to support old libraries w/o <cassert> - effect is the same
|
||||||
|
# define BOOST_ASSERT(expr) assert(expr)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
//--------------------------------------------------------------------------------------//
|
||||||
|
// BOOST_ASSERT_MSG //
|
||||||
|
//--------------------------------------------------------------------------------------//
|
||||||
|
|
||||||
|
# undef BOOST_ASSERT_MSG
|
||||||
|
|
||||||
|
#if defined(BOOST_DISABLE_ASSERTS) || defined(NDEBUG)
|
||||||
|
|
||||||
|
#define BOOST_ASSERT_MSG(expr, msg) ((void)0)
|
||||||
|
|
||||||
|
#elif defined(BOOST_ENABLE_ASSERT_HANDLER)
|
||||||
|
|
||||||
|
#include <boost/current_function.hpp>
|
||||||
|
|
||||||
|
namespace boost
|
||||||
|
{
|
||||||
|
void assertion_failed_msg(char const * expr, char const * msg,
|
||||||
|
char const * function, char const * file, long line); // user defined
|
||||||
|
} // namespace boost
|
||||||
|
|
||||||
|
#define BOOST_ASSERT_MSG(expr, msg) ((expr) \
|
||||||
|
? ((void)0) \
|
||||||
|
: ::boost::assertion_failed_msg(#expr, msg, BOOST_CURRENT_FUNCTION, __FILE__, __LINE__))
|
||||||
|
|
||||||
|
#else
|
||||||
|
#ifndef BOOST_ASSERT_HPP
|
||||||
|
#define BOOST_ASSERT_HPP
|
||||||
|
#include <cstdlib>
|
||||||
|
#include <iostream>
|
||||||
|
#include <boost/current_function.hpp>
|
||||||
|
|
||||||
|
// IDE's like Visual Studio perform better if output goes to std::cout or
|
||||||
|
// some other stream, so allow user to configure output stream:
|
||||||
|
#ifndef BOOST_ASSERT_MSG_OSTREAM
|
||||||
|
# define BOOST_ASSERT_MSG_OSTREAM std::cerr
|
||||||
|
#endif
|
||||||
|
|
||||||
|
namespace boost
|
||||||
|
{
|
||||||
|
namespace assertion
|
||||||
|
{
|
||||||
|
namespace detail
|
||||||
|
{
|
||||||
|
inline void assertion_failed_msg(char const * expr, char const * msg, char const * function,
|
||||||
|
char const * file, long line)
|
||||||
|
{
|
||||||
|
BOOST_ASSERT_MSG_OSTREAM
|
||||||
|
<< "***** Internal Program Error - assertion (" << expr << ") failed in "
|
||||||
|
<< function << ":\n"
|
||||||
|
<< file << '(' << line << "): " << msg << std::endl;
|
||||||
|
std::abort();
|
||||||
|
}
|
||||||
|
} // detail
|
||||||
|
} // assertion
|
||||||
|
} // detail
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define BOOST_ASSERT_MSG(expr, msg) ((expr) \
|
||||||
|
? ((void)0) \
|
||||||
|
: ::boost::assertion::detail::assertion_failed_msg(#expr, msg, \
|
||||||
|
BOOST_CURRENT_FUNCTION, __FILE__, __LINE__))
|
||||||
|
#endif
|
||||||
|
|
||||||
|
//--------------------------------------------------------------------------------------//
|
||||||
|
// BOOST_VERIFY //
|
||||||
|
//--------------------------------------------------------------------------------------//
|
||||||
|
|
||||||
|
#undef BOOST_VERIFY
|
||||||
|
|
||||||
|
#if defined(BOOST_DISABLE_ASSERTS) || ( !defined(BOOST_ENABLE_ASSERT_HANDLER) && defined(NDEBUG) )
|
||||||
|
|
||||||
|
# define BOOST_VERIFY(expr) ((void)(expr))
|
||||||
|
|
||||||
|
#else
|
||||||
|
|
||||||
|
# define BOOST_VERIFY(expr) BOOST_ASSERT(expr)
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
|
@ -0,0 +1,24 @@
|
||||||
|
// Boost.Assign library
|
||||||
|
//
|
||||||
|
// Copyright Thorsten Ottosen 2003-2004. Use, modification and
|
||||||
|
// distribution is subject to the Boost Software License, Version
|
||||||
|
// 1.0. (See accompanying file LICENSE_1_0.txt or copy at
|
||||||
|
// http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
//
|
||||||
|
// For more information, see http://www.boost.org/libs/assign/
|
||||||
|
//
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef BOOST_ASSIGN_HPP
|
||||||
|
#define BOOST_ASSIGN_HPP
|
||||||
|
|
||||||
|
#if defined(_MSC_VER) && (_MSC_VER >= 1020)
|
||||||
|
# pragma once
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <boost/assign/std.hpp>
|
||||||
|
#include <boost/assign/list_of.hpp>
|
||||||
|
#include <boost/assign/list_inserter.hpp>
|
||||||
|
#include <boost/assign/assignment_exception.hpp>
|
||||||
|
|
||||||
|
#endif
|
|
@ -0,0 +1,19 @@
|
||||||
|
// Boost.Bimap
|
||||||
|
//
|
||||||
|
// Copyright (c) 2006-2007 Matias Capeletto
|
||||||
|
//
|
||||||
|
// Distributed under the Boost Software License, Version 1.0.
|
||||||
|
// (See accompanying file LICENSE_1_0.txt or copy at
|
||||||
|
// http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
|
||||||
|
// See www.boost.org/libs/bimap for documentation.
|
||||||
|
|
||||||
|
// Convenience header
|
||||||
|
|
||||||
|
#include <boost/bimap/bimap.hpp>
|
||||||
|
|
||||||
|
namespace boost
|
||||||
|
{
|
||||||
|
using ::boost::bimaps::bimap;
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,24 @@
|
||||||
|
#ifndef BOOST_BIND_HPP_INCLUDED
|
||||||
|
#define BOOST_BIND_HPP_INCLUDED
|
||||||
|
|
||||||
|
// MS compatible compilers support #pragma once
|
||||||
|
|
||||||
|
#if defined(_MSC_VER) && (_MSC_VER >= 1020)
|
||||||
|
# pragma once
|
||||||
|
#endif
|
||||||
|
|
||||||
|
//
|
||||||
|
// bind.hpp - binds function objects to arguments
|
||||||
|
//
|
||||||
|
// Copyright (c) 2009 Peter Dimov
|
||||||
|
//
|
||||||
|
// Distributed under the Boost Software License, Version 1.0.
|
||||||
|
// See accompanying file LICENSE_1_0.txt or copy at
|
||||||
|
// http://www.boost.org/LICENSE_1_0.txt
|
||||||
|
//
|
||||||
|
// See http://www.boost.org/libs/bind/bind.html for documentation.
|
||||||
|
//
|
||||||
|
|
||||||
|
#include <boost/bind/bind.hpp>
|
||||||
|
|
||||||
|
#endif // #ifndef BOOST_BIND_HPP_INCLUDED
|
|
@ -0,0 +1,106 @@
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
// boost blank.hpp header file
|
||||||
|
// See http://www.boost.org for updates, documentation, and revision history.
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// Copyright (c) 2003
|
||||||
|
// Eric Friedman
|
||||||
|
//
|
||||||
|
// Distributed under the Boost Software License, Version 1.0. (See
|
||||||
|
// accompanying file LICENSE_1_0.txt or copy at
|
||||||
|
// http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
|
||||||
|
#ifndef BOOST_BLANK_HPP
|
||||||
|
#define BOOST_BLANK_HPP
|
||||||
|
|
||||||
|
#include "boost/blank_fwd.hpp"
|
||||||
|
|
||||||
|
#if !defined(BOOST_NO_IOSTREAM)
|
||||||
|
#include <iosfwd> // for std::basic_ostream forward declare
|
||||||
|
#include "boost/detail/templated_streams.hpp"
|
||||||
|
#endif // BOOST_NO_IOSTREAM
|
||||||
|
|
||||||
|
#include "boost/mpl/bool.hpp"
|
||||||
|
#include "boost/type_traits/is_empty.hpp"
|
||||||
|
#include "boost/type_traits/is_pod.hpp"
|
||||||
|
#include "boost/type_traits/is_stateless.hpp"
|
||||||
|
|
||||||
|
namespace boost {
|
||||||
|
|
||||||
|
struct blank
|
||||||
|
{
|
||||||
|
};
|
||||||
|
|
||||||
|
// type traits specializations
|
||||||
|
//
|
||||||
|
|
||||||
|
template <>
|
||||||
|
struct is_pod< blank >
|
||||||
|
: mpl::true_
|
||||||
|
{
|
||||||
|
};
|
||||||
|
|
||||||
|
template <>
|
||||||
|
struct is_empty< blank >
|
||||||
|
: mpl::true_
|
||||||
|
{
|
||||||
|
};
|
||||||
|
|
||||||
|
template <>
|
||||||
|
struct is_stateless< blank >
|
||||||
|
: mpl::true_
|
||||||
|
{
|
||||||
|
};
|
||||||
|
|
||||||
|
// relational operators
|
||||||
|
//
|
||||||
|
|
||||||
|
inline bool operator==(const blank&, const blank&)
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
inline bool operator<=(const blank&, const blank&)
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
inline bool operator>=(const blank&, const blank&)
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
inline bool operator!=(const blank&, const blank&)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
inline bool operator<(const blank&, const blank&)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
inline bool operator>(const blank&, const blank&)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// streaming support
|
||||||
|
//
|
||||||
|
#if !defined(BOOST_NO_IOSTREAM)
|
||||||
|
|
||||||
|
BOOST_TEMPLATED_STREAM_TEMPLATE(E,T)
|
||||||
|
inline BOOST_TEMPLATED_STREAM(ostream, E,T)& operator<<(
|
||||||
|
BOOST_TEMPLATED_STREAM(ostream, E,T)& out
|
||||||
|
, const blank&
|
||||||
|
)
|
||||||
|
{
|
||||||
|
// (output nothing)
|
||||||
|
return out;
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif // BOOST_NO_IOSTREAM
|
||||||
|
|
||||||
|
} // namespace boost
|
||||||
|
|
||||||
|
#endif // BOOST_BLANK_HPP
|
|
@ -0,0 +1,22 @@
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
// boost blank_fwd.hpp header file
|
||||||
|
// See http://www.boost.org for updates, documentation, and revision history.
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// Copyright (c) 2003
|
||||||
|
// Eric Friedman
|
||||||
|
//
|
||||||
|
// Distributed under the Boost Software License, Version 1.0. (See
|
||||||
|
// accompanying file LICENSE_1_0.txt or copy at
|
||||||
|
// http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
|
||||||
|
#ifndef BOOST_BLANK_FWD_HPP
|
||||||
|
#define BOOST_BLANK_FWD_HPP
|
||||||
|
|
||||||
|
namespace boost {
|
||||||
|
|
||||||
|
struct blank;
|
||||||
|
|
||||||
|
} // namespace boost
|
||||||
|
|
||||||
|
#endif // BOOST_BLANK_FWD_HPP
|
|
@ -1 +1 @@
|
||||||
boost version: 1_45_0
|
boost version: 1_49_0
|
||||||
|
|
|
@ -1,24 +1,24 @@
|
||||||
// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000.
|
// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000.
|
||||||
// Use, modification and distribution are subject to the Boost Software License,
|
// Use, modification and distribution are subject to the Boost Software License,
|
||||||
// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
|
// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
|
||||||
// http://www.boost.org/LICENSE_1_0.txt).
|
// http://www.boost.org/LICENSE_1_0.txt).
|
||||||
//
|
//
|
||||||
// See http://www.boost.org/libs/utility for most recent version including documentation.
|
// See http://www.boost.org/libs/utility for most recent version including documentation.
|
||||||
|
|
||||||
// See boost/detail/call_traits.hpp and boost/detail/ob_call_traits.hpp
|
// See boost/detail/call_traits.hpp and boost/detail/ob_call_traits.hpp
|
||||||
// for full copyright notices.
|
// for full copyright notices.
|
||||||
|
|
||||||
#ifndef BOOST_CALL_TRAITS_HPP
|
#ifndef BOOST_CALL_TRAITS_HPP
|
||||||
#define BOOST_CALL_TRAITS_HPP
|
#define BOOST_CALL_TRAITS_HPP
|
||||||
|
|
||||||
#ifndef BOOST_CONFIG_HPP
|
#ifndef BOOST_CONFIG_HPP
|
||||||
#include <boost/config.hpp>
|
#include <boost/config.hpp>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
|
#ifdef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
|
||||||
#include <boost/detail/ob_call_traits.hpp>
|
#include <boost/detail/ob_call_traits.hpp>
|
||||||
#else
|
#else
|
||||||
#include <boost/detail/call_traits.hpp>
|
#include <boost/detail/call_traits.hpp>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#endif // BOOST_CALL_TRAITS_HPP
|
#endif // BOOST_CALL_TRAITS_HPP
|
||||||
|
|
|
@ -0,0 +1,107 @@
|
||||||
|
// boost cast.hpp header file ----------------------------------------------//
|
||||||
|
|
||||||
|
// (C) Copyright Kevlin Henney and Dave Abrahams 1999.
|
||||||
|
// Distributed under the Boost
|
||||||
|
// Software License, Version 1.0. (See accompanying file
|
||||||
|
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
|
||||||
|
// See http://www.boost.org/libs/conversion for Documentation.
|
||||||
|
|
||||||
|
// Revision History
|
||||||
|
// 23 JUn 05 numeric_cast removed and redirected to the new verion (Fernando Cacciola)
|
||||||
|
// 02 Apr 01 Removed BOOST_NO_LIMITS workarounds and included
|
||||||
|
// <boost/limits.hpp> instead (the workaround did not
|
||||||
|
// actually compile when BOOST_NO_LIMITS was defined in
|
||||||
|
// any case, so we loose nothing). (John Maddock)
|
||||||
|
// 21 Jan 01 Undid a bug I introduced yesterday. numeric_cast<> never
|
||||||
|
// worked with stock GCC; trying to get it to do that broke
|
||||||
|
// vc-stlport.
|
||||||
|
// 20 Jan 01 Moved BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS to config.hpp.
|
||||||
|
// Removed unused BOOST_EXPLICIT_TARGET macro. Moved
|
||||||
|
// boost::detail::type to boost/type.hpp. Made it compile with
|
||||||
|
// stock gcc again (Dave Abrahams)
|
||||||
|
// 29 Nov 00 Remove nested namespace cast, cleanup spacing before Formal
|
||||||
|
// Review (Beman Dawes)
|
||||||
|
// 19 Oct 00 Fix numeric_cast for floating-point types (Dave Abrahams)
|
||||||
|
// 15 Jul 00 Suppress numeric_cast warnings for GCC, Borland and MSVC
|
||||||
|
// (Dave Abrahams)
|
||||||
|
// 30 Jun 00 More MSVC6 wordarounds. See comments below. (Dave Abrahams)
|
||||||
|
// 28 Jun 00 Removed implicit_cast<>. See comment below. (Beman Dawes)
|
||||||
|
// 27 Jun 00 More MSVC6 workarounds
|
||||||
|
// 15 Jun 00 Add workarounds for MSVC6
|
||||||
|
// 2 Feb 00 Remove bad_numeric_cast ";" syntax error (Doncho Angelov)
|
||||||
|
// 26 Jan 00 Add missing throw() to bad_numeric_cast::what(0 (Adam Levar)
|
||||||
|
// 29 Dec 99 Change using declarations so usages in other namespaces work
|
||||||
|
// correctly (Dave Abrahams)
|
||||||
|
// 23 Sep 99 Change polymorphic_downcast assert to also detect M.I. errors
|
||||||
|
// as suggested Darin Adler and improved by Valentin Bonnard.
|
||||||
|
// 2 Sep 99 Remove controversial asserts, simplify, rename.
|
||||||
|
// 30 Aug 99 Move to cast.hpp, replace value_cast with numeric_cast,
|
||||||
|
// place in nested namespace.
|
||||||
|
// 3 Aug 99 Initial version
|
||||||
|
|
||||||
|
#ifndef BOOST_CAST_HPP
|
||||||
|
#define BOOST_CAST_HPP
|
||||||
|
|
||||||
|
# include <boost/config.hpp>
|
||||||
|
# include <boost/assert.hpp>
|
||||||
|
# include <typeinfo>
|
||||||
|
# include <boost/type.hpp>
|
||||||
|
# include <boost/limits.hpp>
|
||||||
|
# include <boost/detail/select_type.hpp>
|
||||||
|
|
||||||
|
// It has been demonstrated numerous times that MSVC 6.0 fails silently at link
|
||||||
|
// time if you use a template function which has template parameters that don't
|
||||||
|
// appear in the function's argument list.
|
||||||
|
//
|
||||||
|
// TODO: Add this to config.hpp?
|
||||||
|
# if defined(BOOST_MSVC) && BOOST_MSVC < 1300
|
||||||
|
# define BOOST_EXPLICIT_DEFAULT_TARGET , ::boost::type<Target>* = 0
|
||||||
|
# else
|
||||||
|
# define BOOST_EXPLICIT_DEFAULT_TARGET
|
||||||
|
# endif
|
||||||
|
|
||||||
|
namespace boost
|
||||||
|
{
|
||||||
|
// See the documentation for descriptions of how to choose between
|
||||||
|
// static_cast<>, dynamic_cast<>, polymorphic_cast<> and polymorphic_downcast<>
|
||||||
|
|
||||||
|
// polymorphic_cast --------------------------------------------------------//
|
||||||
|
|
||||||
|
// Runtime checked polymorphic downcasts and crosscasts.
|
||||||
|
// Suggested in The C++ Programming Language, 3rd Ed, Bjarne Stroustrup,
|
||||||
|
// section 15.8 exercise 1, page 425.
|
||||||
|
|
||||||
|
template <class Target, class Source>
|
||||||
|
inline Target polymorphic_cast(Source* x BOOST_EXPLICIT_DEFAULT_TARGET)
|
||||||
|
{
|
||||||
|
Target tmp = dynamic_cast<Target>(x);
|
||||||
|
if ( tmp == 0 ) throw std::bad_cast();
|
||||||
|
return tmp;
|
||||||
|
}
|
||||||
|
|
||||||
|
// polymorphic_downcast ----------------------------------------------------//
|
||||||
|
|
||||||
|
// BOOST_ASSERT() checked polymorphic downcast. Crosscasts prohibited.
|
||||||
|
|
||||||
|
// WARNING: Because this cast uses BOOST_ASSERT(), it violates
|
||||||
|
// the One Definition Rule if used in multiple translation units
|
||||||
|
// where BOOST_DISABLE_ASSERTS, BOOST_ENABLE_ASSERT_HANDLER
|
||||||
|
// NDEBUG are defined inconsistently.
|
||||||
|
|
||||||
|
// Contributed by Dave Abrahams
|
||||||
|
|
||||||
|
template <class Target, class Source>
|
||||||
|
inline Target polymorphic_downcast(Source* x BOOST_EXPLICIT_DEFAULT_TARGET)
|
||||||
|
{
|
||||||
|
BOOST_ASSERT( dynamic_cast<Target>(x) == x ); // detect logic error
|
||||||
|
return static_cast<Target>(x);
|
||||||
|
}
|
||||||
|
|
||||||
|
# undef BOOST_EXPLICIT_DEFAULT_TARGET
|
||||||
|
|
||||||
|
} // namespace boost
|
||||||
|
|
||||||
|
# include <boost/numeric/conversion/cast.hpp>
|
||||||
|
|
||||||
|
#endif // BOOST_CAST_HPP
|
|
@ -0,0 +1,331 @@
|
||||||
|
// Boost cerrno.hpp header -------------------------------------------------//
|
||||||
|
|
||||||
|
// Copyright Beman Dawes 2005.
|
||||||
|
// Use, modification, and distribution is subject to the Boost Software
|
||||||
|
// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
|
||||||
|
// http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
|
||||||
|
// See library home page at http://www.boost.org/libs/system
|
||||||
|
|
||||||
|
#ifndef BOOST_CERRNO_HPP
|
||||||
|
#define BOOST_CERRNO_HPP
|
||||||
|
|
||||||
|
#include <cerrno>
|
||||||
|
|
||||||
|
// supply errno values likely to be missing, particularly on Windows
|
||||||
|
|
||||||
|
#ifndef EAFNOSUPPORT
|
||||||
|
#define EAFNOSUPPORT 9901
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef EADDRINUSE
|
||||||
|
#define EADDRINUSE 9902
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef EADDRNOTAVAIL
|
||||||
|
#define EADDRNOTAVAIL 9903
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef EISCONN
|
||||||
|
#define EISCONN 9904
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef EBADMSG
|
||||||
|
#define EBADMSG 9905
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef ECONNABORTED
|
||||||
|
#define ECONNABORTED 9906
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef EALREADY
|
||||||
|
#define EALREADY 9907
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef ECONNREFUSED
|
||||||
|
#define ECONNREFUSED 9908
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef ECONNRESET
|
||||||
|
#define ECONNRESET 9909
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef EDESTADDRREQ
|
||||||
|
#define EDESTADDRREQ 9910
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef EHOSTUNREACH
|
||||||
|
#define EHOSTUNREACH 9911
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef EIDRM
|
||||||
|
#define EIDRM 9912
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef EMSGSIZE
|
||||||
|
#define EMSGSIZE 9913
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef ENETDOWN
|
||||||
|
#define ENETDOWN 9914
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef ENETRESET
|
||||||
|
#define ENETRESET 9915
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef ENETUNREACH
|
||||||
|
#define ENETUNREACH 9916
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef ENOBUFS
|
||||||
|
#define ENOBUFS 9917
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef ENOLINK
|
||||||
|
#define ENOLINK 9918
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef ENODATA
|
||||||
|
#define ENODATA 9919
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef ENOMSG
|
||||||
|
#define ENOMSG 9920
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef ENOPROTOOPT
|
||||||
|
#define ENOPROTOOPT 9921
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef ENOSR
|
||||||
|
#define ENOSR 9922
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef ENOTSOCK
|
||||||
|
#define ENOTSOCK 9923
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef ENOSTR
|
||||||
|
#define ENOSTR 9924
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef ENOTCONN
|
||||||
|
#define ENOTCONN 9925
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef ENOTSUP
|
||||||
|
#define ENOTSUP 9926
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef ECANCELED
|
||||||
|
#define ECANCELED 9927
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef EINPROGRESS
|
||||||
|
#define EINPROGRESS 9928
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef EOPNOTSUPP
|
||||||
|
#define EOPNOTSUPP 9929
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef EWOULDBLOCK
|
||||||
|
#define EWOULDBLOCK 9930
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef EOWNERDEAD
|
||||||
|
#define EOWNERDEAD 9931
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef EPROTO
|
||||||
|
#define EPROTO 9932
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef EPROTONOSUPPORT
|
||||||
|
#define EPROTONOSUPPORT 9933
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef ENOTRECOVERABLE
|
||||||
|
#define ENOTRECOVERABLE 9934
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef ETIME
|
||||||
|
#define ETIME 9935
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef ETXTBSY
|
||||||
|
#define ETXTBSY 9936
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef ETIMEDOUT
|
||||||
|
#define ETIMEDOUT 9938
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef ELOOP
|
||||||
|
#define ELOOP 9939
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef EOVERFLOW
|
||||||
|
#define EOVERFLOW 9940
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef EPROTOTYPE
|
||||||
|
#define EPROTOTYPE 9941
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef ENOSYS
|
||||||
|
#define ENOSYS 9942
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef EINVAL
|
||||||
|
#define EINVAL 9943
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef ERANGE
|
||||||
|
#define ERANGE 9944
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef EILSEQ
|
||||||
|
#define EILSEQ 9945
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Windows Mobile doesn't appear to define these:
|
||||||
|
|
||||||
|
#ifndef E2BIG
|
||||||
|
#define E2BIG 9946
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef EDOM
|
||||||
|
#define EDOM 9947
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef EFAULT
|
||||||
|
#define EFAULT 9948
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef EBADF
|
||||||
|
#define EBADF 9949
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef EPIPE
|
||||||
|
#define EPIPE 9950
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef EXDEV
|
||||||
|
#define EXDEV 9951
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef EBUSY
|
||||||
|
#define EBUSY 9952
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef ENOTEMPTY
|
||||||
|
#define ENOTEMPTY 9953
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef ENOEXEC
|
||||||
|
#define ENOEXEC 9954
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef EEXIST
|
||||||
|
#define EEXIST 9955
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef EFBIG
|
||||||
|
#define EFBIG 9956
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef ENAMETOOLONG
|
||||||
|
#define ENAMETOOLONG 9957
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef ENOTTY
|
||||||
|
#define ENOTTY 9958
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef EINTR
|
||||||
|
#define EINTR 9959
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef ESPIPE
|
||||||
|
#define ESPIPE 9960
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef EIO
|
||||||
|
#define EIO 9961
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef EISDIR
|
||||||
|
#define EISDIR 9962
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef ECHILD
|
||||||
|
#define ECHILD 9963
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef ENOLCK
|
||||||
|
#define ENOLCK 9964
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef ENOSPC
|
||||||
|
#define ENOSPC 9965
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef ENXIO
|
||||||
|
#define ENXIO 9966
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef ENODEV
|
||||||
|
#define ENODEV 9967
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef ENOENT
|
||||||
|
#define ENOENT 9968
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef ESRCH
|
||||||
|
#define ESRCH 9969
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef ENOTDIR
|
||||||
|
#define ENOTDIR 9970
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef ENOMEM
|
||||||
|
#define ENOMEM 9971
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef EPERM
|
||||||
|
#define EPERM 9972
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef EACCES
|
||||||
|
#define EACCES 9973
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef EROFS
|
||||||
|
#define EROFS 9974
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef EDEADLK
|
||||||
|
#define EDEADLK 9975
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef EAGAIN
|
||||||
|
#define EAGAIN 9976
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef ENFILE
|
||||||
|
#define ENFILE 9977
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef EMFILE
|
||||||
|
#define EMFILE 9978
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef EMLINK
|
||||||
|
#define EMLINK 9979
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif // include guard
|
|
@ -1,69 +1,69 @@
|
||||||
#ifndef BOOST_CHECKED_DELETE_HPP_INCLUDED
|
#ifndef BOOST_CHECKED_DELETE_HPP_INCLUDED
|
||||||
#define BOOST_CHECKED_DELETE_HPP_INCLUDED
|
#define BOOST_CHECKED_DELETE_HPP_INCLUDED
|
||||||
|
|
||||||
// MS compatible compilers support #pragma once
|
// MS compatible compilers support #pragma once
|
||||||
|
|
||||||
#if defined(_MSC_VER) && (_MSC_VER >= 1020)
|
#if defined(_MSC_VER) && (_MSC_VER >= 1020)
|
||||||
# pragma once
|
# pragma once
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//
|
//
|
||||||
// boost/checked_delete.hpp
|
// boost/checked_delete.hpp
|
||||||
//
|
//
|
||||||
// Copyright (c) 2002, 2003 Peter Dimov
|
// Copyright (c) 2002, 2003 Peter Dimov
|
||||||
// Copyright (c) 2003 Daniel Frey
|
// Copyright (c) 2003 Daniel Frey
|
||||||
// Copyright (c) 2003 Howard Hinnant
|
// Copyright (c) 2003 Howard Hinnant
|
||||||
//
|
//
|
||||||
// Distributed under the Boost Software License, Version 1.0. (See
|
// Distributed under the Boost Software License, Version 1.0. (See
|
||||||
// accompanying file LICENSE_1_0.txt or copy at
|
// accompanying file LICENSE_1_0.txt or copy at
|
||||||
// http://www.boost.org/LICENSE_1_0.txt)
|
// http://www.boost.org/LICENSE_1_0.txt)
|
||||||
//
|
//
|
||||||
// See http://www.boost.org/libs/utility/checked_delete.html for documentation.
|
// See http://www.boost.org/libs/utility/checked_delete.html for documentation.
|
||||||
//
|
//
|
||||||
|
|
||||||
namespace boost
|
namespace boost
|
||||||
{
|
{
|
||||||
|
|
||||||
// verify that types are complete for increased safety
|
// verify that types are complete for increased safety
|
||||||
|
|
||||||
template<class T> inline void checked_delete(T * x)
|
template<class T> inline void checked_delete(T * x)
|
||||||
{
|
{
|
||||||
// intentionally complex - simplification causes regressions
|
// intentionally complex - simplification causes regressions
|
||||||
typedef char type_must_be_complete[ sizeof(T)? 1: -1 ];
|
typedef char type_must_be_complete[ sizeof(T)? 1: -1 ];
|
||||||
(void) sizeof(type_must_be_complete);
|
(void) sizeof(type_must_be_complete);
|
||||||
delete x;
|
delete x;
|
||||||
}
|
}
|
||||||
|
|
||||||
template<class T> inline void checked_array_delete(T * x)
|
template<class T> inline void checked_array_delete(T * x)
|
||||||
{
|
{
|
||||||
typedef char type_must_be_complete[ sizeof(T)? 1: -1 ];
|
typedef char type_must_be_complete[ sizeof(T)? 1: -1 ];
|
||||||
(void) sizeof(type_must_be_complete);
|
(void) sizeof(type_must_be_complete);
|
||||||
delete [] x;
|
delete [] x;
|
||||||
}
|
}
|
||||||
|
|
||||||
template<class T> struct checked_deleter
|
template<class T> struct checked_deleter
|
||||||
{
|
{
|
||||||
typedef void result_type;
|
typedef void result_type;
|
||||||
typedef T * argument_type;
|
typedef T * argument_type;
|
||||||
|
|
||||||
void operator()(T * x) const
|
void operator()(T * x) const
|
||||||
{
|
{
|
||||||
// boost:: disables ADL
|
// boost:: disables ADL
|
||||||
boost::checked_delete(x);
|
boost::checked_delete(x);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
template<class T> struct checked_array_deleter
|
template<class T> struct checked_array_deleter
|
||||||
{
|
{
|
||||||
typedef void result_type;
|
typedef void result_type;
|
||||||
typedef T * argument_type;
|
typedef T * argument_type;
|
||||||
|
|
||||||
void operator()(T * x) const
|
void operator()(T * x) const
|
||||||
{
|
{
|
||||||
boost::checked_array_delete(x);
|
boost::checked_array_delete(x);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace boost
|
} // namespace boost
|
||||||
|
|
||||||
#endif // #ifndef BOOST_CHECKED_DELETE_HPP_INCLUDED
|
#endif // #ifndef BOOST_CHECKED_DELETE_HPP_INCLUDED
|
||||||
|
|
|
@ -0,0 +1,20 @@
|
||||||
|
//////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// (C) Copyright Vicente J. Botet Escriba 2010.
|
||||||
|
// Distributed under the Boost
|
||||||
|
// Software License, Version 1.0.
|
||||||
|
// (See accompanying file LICENSE_1_0.txt or
|
||||||
|
// copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
//
|
||||||
|
// See http://www.boost.org/libs/stm for documentation.
|
||||||
|
//
|
||||||
|
//////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
#ifndef BOOST_CHRONO_HPP
|
||||||
|
#define BOOST_CHRONO_HPP
|
||||||
|
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
#include <boost/chrono/include.hpp>
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
#endif // BOOST_CHRONO_HPP
|
|
@ -0,0 +1,74 @@
|
||||||
|
// Circular buffer library header file.
|
||||||
|
|
||||||
|
// Copyright (c) 2003-2008 Jan Gaspar
|
||||||
|
|
||||||
|
// Use, modification, and distribution is subject to the Boost Software
|
||||||
|
// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
|
||||||
|
// http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
|
||||||
|
// See www.boost.org/libs/circular_buffer for documentation.
|
||||||
|
|
||||||
|
#if !defined(BOOST_CIRCULAR_BUFFER_HPP)
|
||||||
|
#define BOOST_CIRCULAR_BUFFER_HPP
|
||||||
|
|
||||||
|
#if defined(_MSC_VER) && _MSC_VER >= 1200
|
||||||
|
#pragma once
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <boost/circular_buffer_fwd.hpp>
|
||||||
|
#include <boost/detail/workaround.hpp>
|
||||||
|
|
||||||
|
// BOOST_CB_ENABLE_DEBUG: Debug support control.
|
||||||
|
#if defined(NDEBUG) || defined(BOOST_CB_DISABLE_DEBUG)
|
||||||
|
#define BOOST_CB_ENABLE_DEBUG 0
|
||||||
|
#else
|
||||||
|
#define BOOST_CB_ENABLE_DEBUG 1
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// BOOST_CB_ASSERT: Runtime assertion.
|
||||||
|
#if BOOST_CB_ENABLE_DEBUG
|
||||||
|
#include <boost/assert.hpp>
|
||||||
|
#define BOOST_CB_ASSERT(Expr) BOOST_ASSERT(Expr)
|
||||||
|
#else
|
||||||
|
#define BOOST_CB_ASSERT(Expr) ((void)0)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// BOOST_CB_STATIC_ASSERT: Compile time assertion.
|
||||||
|
#if BOOST_WORKAROUND(BOOST_MSVC, < 1300)
|
||||||
|
#define BOOST_CB_STATIC_ASSERT(Expr) ((void)0)
|
||||||
|
#else
|
||||||
|
#include <boost/static_assert.hpp>
|
||||||
|
#define BOOST_CB_STATIC_ASSERT(Expr) BOOST_STATIC_ASSERT(Expr)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// BOOST_CB_IS_CONVERTIBLE: Check if Iterator::value_type is convertible to Type.
|
||||||
|
#if BOOST_WORKAROUND(__BORLANDC__, <= 0x0550) || BOOST_WORKAROUND(__MWERKS__, <= 0x2407) || \
|
||||||
|
BOOST_WORKAROUND(BOOST_MSVC, < 1300)
|
||||||
|
#define BOOST_CB_IS_CONVERTIBLE(Iterator, Type) ((void)0)
|
||||||
|
#else
|
||||||
|
#include <boost/detail/iterator.hpp>
|
||||||
|
#include <boost/type_traits/is_convertible.hpp>
|
||||||
|
#define BOOST_CB_IS_CONVERTIBLE(Iterator, Type) \
|
||||||
|
BOOST_CB_STATIC_ASSERT((is_convertible<typename detail::iterator_traits<Iterator>::value_type, Type>::value))
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// BOOST_CB_ASSERT_TEMPLATED_ITERATOR_CONSTRUCTORS:
|
||||||
|
// Check if the STL provides templated iterator constructors for its containers.
|
||||||
|
#if defined(BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS)
|
||||||
|
#define BOOST_CB_ASSERT_TEMPLATED_ITERATOR_CONSTRUCTORS BOOST_CB_STATIC_ASSERT(false);
|
||||||
|
#else
|
||||||
|
#define BOOST_CB_ASSERT_TEMPLATED_ITERATOR_CONSTRUCTORS ((void)0);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <boost/circular_buffer/debug.hpp>
|
||||||
|
#include <boost/circular_buffer/details.hpp>
|
||||||
|
#include <boost/circular_buffer/base.hpp>
|
||||||
|
#include <boost/circular_buffer/space_optimized.hpp>
|
||||||
|
|
||||||
|
#undef BOOST_CB_ASSERT_TEMPLATED_ITERATOR_CONSTRUCTORS
|
||||||
|
#undef BOOST_CB_IS_CONVERTIBLE
|
||||||
|
#undef BOOST_CB_STATIC_ASSERT
|
||||||
|
#undef BOOST_CB_ASSERT
|
||||||
|
#undef BOOST_CB_ENABLE_DEBUG
|
||||||
|
|
||||||
|
#endif // #if !defined(BOOST_CIRCULAR_BUFFER_HPP)
|
|
@ -0,0 +1,43 @@
|
||||||
|
// Forward declaration of the circular buffer and its adaptor.
|
||||||
|
|
||||||
|
// Copyright (c) 2003-2008 Jan Gaspar
|
||||||
|
|
||||||
|
// Use, modification, and distribution is subject to the Boost Software
|
||||||
|
// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
|
||||||
|
// http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
|
||||||
|
// See www.boost.org/libs/circular_buffer for documentation.
|
||||||
|
|
||||||
|
#if !defined(BOOST_CIRCULAR_BUFFER_FWD_HPP)
|
||||||
|
#define BOOST_CIRCULAR_BUFFER_FWD_HPP
|
||||||
|
|
||||||
|
#if defined(_MSC_VER) && _MSC_VER >= 1200
|
||||||
|
#pragma once
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <boost/config.hpp>
|
||||||
|
#if !defined(BOOST_NO_STD_ALLOCATOR)
|
||||||
|
#include <memory>
|
||||||
|
#else
|
||||||
|
#include <vector>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
namespace boost {
|
||||||
|
|
||||||
|
#if !defined(BOOST_NO_STD_ALLOCATOR)
|
||||||
|
#define BOOST_CB_DEFAULT_ALLOCATOR(T) std::allocator<T>
|
||||||
|
#else
|
||||||
|
#define BOOST_CB_DEFAULT_ALLOCATOR(T) BOOST_DEDUCED_TYPENAME std::vector<T>::allocator_type
|
||||||
|
#endif
|
||||||
|
|
||||||
|
template <class T, class Alloc = BOOST_CB_DEFAULT_ALLOCATOR(T)>
|
||||||
|
class circular_buffer;
|
||||||
|
|
||||||
|
template <class T, class Alloc = BOOST_CB_DEFAULT_ALLOCATOR(T)>
|
||||||
|
class circular_buffer_space_optimized;
|
||||||
|
|
||||||
|
#undef BOOST_CB_DEFAULT_ALLOCATOR
|
||||||
|
|
||||||
|
} // namespace boost
|
||||||
|
|
||||||
|
#endif // #if !defined(BOOST_CIRCULAR_BUFFER_FWD_HPP)
|
|
@ -1,24 +1,24 @@
|
||||||
// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000.
|
// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000.
|
||||||
// Use, modification and distribution are subject to the Boost Software License,
|
// Use, modification and distribution are subject to the Boost Software License,
|
||||||
// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
|
// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
|
||||||
// http://www.boost.org/LICENSE_1_0.txt).
|
// http://www.boost.org/LICENSE_1_0.txt).
|
||||||
//
|
//
|
||||||
// See http://www.boost.org/libs/utility for most recent version including documentation.
|
// See http://www.boost.org/libs/utility for most recent version including documentation.
|
||||||
|
|
||||||
// See boost/detail/compressed_pair.hpp and boost/detail/ob_compressed_pair.hpp
|
// See boost/detail/compressed_pair.hpp and boost/detail/ob_compressed_pair.hpp
|
||||||
// for full copyright notices.
|
// for full copyright notices.
|
||||||
|
|
||||||
#ifndef BOOST_COMPRESSED_PAIR_HPP
|
#ifndef BOOST_COMPRESSED_PAIR_HPP
|
||||||
#define BOOST_COMPRESSED_PAIR_HPP
|
#define BOOST_COMPRESSED_PAIR_HPP
|
||||||
|
|
||||||
#ifndef BOOST_CONFIG_HPP
|
#ifndef BOOST_CONFIG_HPP
|
||||||
#include <boost/config.hpp>
|
#include <boost/config.hpp>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
|
#ifdef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
|
||||||
#include <boost/detail/ob_compressed_pair.hpp>
|
#include <boost/detail/ob_compressed_pair.hpp>
|
||||||
#else
|
#else
|
||||||
#include <boost/detail/compressed_pair.hpp>
|
#include <boost/detail/compressed_pair.hpp>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#endif // BOOST_COMPRESSED_PAIR_HPP
|
#endif // BOOST_COMPRESSED_PAIR_HPP
|
||||||
|
|
|
@ -1,46 +1,46 @@
|
||||||
// Copyright David Abrahams 2006. Distributed under the Boost
|
// Copyright David Abrahams 2006. Distributed under the Boost
|
||||||
// Software License, Version 1.0. (See accompanying
|
// Software License, Version 1.0. (See accompanying
|
||||||
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||||
#ifndef BOOST_CONCEPT_ASSERT_DWA2006430_HPP
|
#ifndef BOOST_CONCEPT_ASSERT_DWA2006430_HPP
|
||||||
# define BOOST_CONCEPT_ASSERT_DWA2006430_HPP
|
# define BOOST_CONCEPT_ASSERT_DWA2006430_HPP
|
||||||
|
|
||||||
# include <boost/config.hpp>
|
# include <boost/config.hpp>
|
||||||
# include <boost/detail/workaround.hpp>
|
# include <boost/detail/workaround.hpp>
|
||||||
|
|
||||||
// The old protocol used a constraints() member function in concept
|
// The old protocol used a constraints() member function in concept
|
||||||
// checking classes. If the compiler supports SFINAE, we can detect
|
// checking classes. If the compiler supports SFINAE, we can detect
|
||||||
// that function and seamlessly support the old concept checking
|
// that function and seamlessly support the old concept checking
|
||||||
// classes. In this release, backward compatibility with the old
|
// classes. In this release, backward compatibility with the old
|
||||||
// concept checking classes is enabled by default, where available.
|
// concept checking classes is enabled by default, where available.
|
||||||
// The old protocol is deprecated, though, and backward compatibility
|
// The old protocol is deprecated, though, and backward compatibility
|
||||||
// will no longer be the default in the next release.
|
// will no longer be the default in the next release.
|
||||||
|
|
||||||
# if !defined(BOOST_NO_OLD_CONCEPT_SUPPORT) \
|
# if !defined(BOOST_NO_OLD_CONCEPT_SUPPORT) \
|
||||||
&& !defined(BOOST_NO_SFINAE) \
|
&& !defined(BOOST_NO_SFINAE) \
|
||||||
\
|
\
|
||||||
&& !(BOOST_WORKAROUND(__GNUC__, == 3) && BOOST_WORKAROUND(__GNUC_MINOR__, < 4)) \
|
&& !(BOOST_WORKAROUND(__GNUC__, == 3) && BOOST_WORKAROUND(__GNUC_MINOR__, < 4)) \
|
||||||
&& !(BOOST_WORKAROUND(__GNUC__, == 2))
|
&& !(BOOST_WORKAROUND(__GNUC__, == 2))
|
||||||
|
|
||||||
// Note: gcc-2.96 through 3.3.x have some SFINAE, but no ability to
|
// Note: gcc-2.96 through 3.3.x have some SFINAE, but no ability to
|
||||||
// check for the presence of particularmember functions.
|
// check for the presence of particularmember functions.
|
||||||
|
|
||||||
# define BOOST_OLD_CONCEPT_SUPPORT
|
# define BOOST_OLD_CONCEPT_SUPPORT
|
||||||
|
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
# ifdef BOOST_MSVC
|
# ifdef BOOST_MSVC
|
||||||
# include <boost/concept/detail/msvc.hpp>
|
# include <boost/concept/detail/msvc.hpp>
|
||||||
# elif BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564))
|
# elif BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564))
|
||||||
# include <boost/concept/detail/borland.hpp>
|
# include <boost/concept/detail/borland.hpp>
|
||||||
# else
|
# else
|
||||||
# include <boost/concept/detail/general.hpp>
|
# include <boost/concept/detail/general.hpp>
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
// Usage, in class or function context:
|
// Usage, in class or function context:
|
||||||
//
|
//
|
||||||
// BOOST_CONCEPT_ASSERT((UnaryFunctionConcept<F,bool,int>));
|
// BOOST_CONCEPT_ASSERT((UnaryFunctionConcept<F,bool,int>));
|
||||||
//
|
//
|
||||||
# define BOOST_CONCEPT_ASSERT(ModelInParens) \
|
# define BOOST_CONCEPT_ASSERT(ModelInParens) \
|
||||||
BOOST_CONCEPT_ASSERT_FN(void(*)ModelInParens)
|
BOOST_CONCEPT_ASSERT_FN(void(*)ModelInParens)
|
||||||
|
|
||||||
#endif // BOOST_CONCEPT_ASSERT_DWA2006430_HPP
|
#endif // BOOST_CONCEPT_ASSERT_DWA2006430_HPP
|
||||||
|
|
|
@ -1,16 +1,16 @@
|
||||||
// Copyright David Abrahams 2009. Distributed under the Boost
|
// Copyright David Abrahams 2009. Distributed under the Boost
|
||||||
// Software License, Version 1.0. (See accompanying
|
// Software License, Version 1.0. (See accompanying
|
||||||
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||||
#ifndef BOOST_CONCEPT_BACKWARD_COMPATIBILITY_DWA200968_HPP
|
#ifndef BOOST_CONCEPT_BACKWARD_COMPATIBILITY_DWA200968_HPP
|
||||||
# define BOOST_CONCEPT_BACKWARD_COMPATIBILITY_DWA200968_HPP
|
# define BOOST_CONCEPT_BACKWARD_COMPATIBILITY_DWA200968_HPP
|
||||||
|
|
||||||
namespace boost
|
namespace boost
|
||||||
{
|
{
|
||||||
namespace concepts {}
|
namespace concepts {}
|
||||||
|
|
||||||
# if !defined(BOOST_NO_CONCEPTS) && !defined(BOOST_CONCEPT_NO_BACKWARD_KEYWORD)
|
# if defined(BOOST_HAS_CONCEPTS) && !defined(BOOST_CONCEPT_NO_BACKWARD_KEYWORD)
|
||||||
namespace concept = concepts;
|
namespace concept = concepts;
|
||||||
# endif
|
# endif
|
||||||
} // namespace boost::concept
|
} // namespace boost::concept
|
||||||
|
|
||||||
#endif // BOOST_CONCEPT_BACKWARD_COMPATIBILITY_DWA200968_HPP
|
#endif // BOOST_CONCEPT_BACKWARD_COMPATIBILITY_DWA200968_HPP
|
||||||
|
|
|
@ -1,30 +1,30 @@
|
||||||
// Copyright David Abrahams 2006. Distributed under the Boost
|
// Copyright David Abrahams 2006. Distributed under the Boost
|
||||||
// Software License, Version 1.0. (See accompanying
|
// Software License, Version 1.0. (See accompanying
|
||||||
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||||
#ifndef BOOST_CONCEPT_DETAIL_BORLAND_DWA2006429_HPP
|
#ifndef BOOST_CONCEPT_DETAIL_BORLAND_DWA2006429_HPP
|
||||||
# define BOOST_CONCEPT_DETAIL_BORLAND_DWA2006429_HPP
|
# define BOOST_CONCEPT_DETAIL_BORLAND_DWA2006429_HPP
|
||||||
|
|
||||||
# include <boost/preprocessor/cat.hpp>
|
# include <boost/preprocessor/cat.hpp>
|
||||||
# include <boost/concept/detail/backward_compatibility.hpp>
|
# include <boost/concept/detail/backward_compatibility.hpp>
|
||||||
|
|
||||||
namespace boost { namespace concepts {
|
namespace boost { namespace concepts {
|
||||||
|
|
||||||
template <class ModelFnPtr>
|
template <class ModelFnPtr>
|
||||||
struct require;
|
struct require;
|
||||||
|
|
||||||
template <class Model>
|
template <class Model>
|
||||||
struct require<void(*)(Model)>
|
struct require<void(*)(Model)>
|
||||||
{
|
{
|
||||||
enum { instantiate = sizeof((((Model*)0)->~Model()), 3) };
|
enum { instantiate = sizeof((((Model*)0)->~Model()), 3) };
|
||||||
};
|
};
|
||||||
|
|
||||||
# define BOOST_CONCEPT_ASSERT_FN( ModelFnPtr ) \
|
# define BOOST_CONCEPT_ASSERT_FN( ModelFnPtr ) \
|
||||||
enum \
|
enum \
|
||||||
{ \
|
{ \
|
||||||
BOOST_PP_CAT(boost_concept_check,__LINE__) = \
|
BOOST_PP_CAT(boost_concept_check,__LINE__) = \
|
||||||
boost::concepts::require<ModelFnPtr>::instantiate \
|
boost::concepts::require<ModelFnPtr>::instantiate \
|
||||||
}
|
}
|
||||||
|
|
||||||
}} // namespace boost::concept
|
}} // namespace boost::concept
|
||||||
|
|
||||||
#endif // BOOST_CONCEPT_DETAIL_BORLAND_DWA2006429_HPP
|
#endif // BOOST_CONCEPT_DETAIL_BORLAND_DWA2006429_HPP
|
||||||
|
|
|
@ -1,51 +1,51 @@
|
||||||
// Copyright David Abrahams 2006. Distributed under the Boost
|
// Copyright David Abrahams 2006. Distributed under the Boost
|
||||||
// Software License, Version 1.0. (See accompanying
|
// Software License, Version 1.0. (See accompanying
|
||||||
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||||
#ifndef BOOST_CONCEPT_DETAIL_CONCEPT_DEF_DWA200651_HPP
|
#ifndef BOOST_CONCEPT_DETAIL_CONCEPT_DEF_DWA200651_HPP
|
||||||
# define BOOST_CONCEPT_DETAIL_CONCEPT_DEF_DWA200651_HPP
|
# define BOOST_CONCEPT_DETAIL_CONCEPT_DEF_DWA200651_HPP
|
||||||
# include <boost/preprocessor/seq/for_each_i.hpp>
|
# include <boost/preprocessor/seq/for_each_i.hpp>
|
||||||
# include <boost/preprocessor/seq/enum.hpp>
|
# include <boost/preprocessor/seq/enum.hpp>
|
||||||
# include <boost/preprocessor/comma_if.hpp>
|
# include <boost/preprocessor/comma_if.hpp>
|
||||||
# include <boost/preprocessor/cat.hpp>
|
# include <boost/preprocessor/cat.hpp>
|
||||||
#endif // BOOST_CONCEPT_DETAIL_CONCEPT_DEF_DWA200651_HPP
|
#endif // BOOST_CONCEPT_DETAIL_CONCEPT_DEF_DWA200651_HPP
|
||||||
|
|
||||||
// BOOST_concept(SomeName, (p1)(p2)...(pN))
|
// BOOST_concept(SomeName, (p1)(p2)...(pN))
|
||||||
//
|
//
|
||||||
// Expands to "template <class p1, class p2, ...class pN> struct SomeName"
|
// Expands to "template <class p1, class p2, ...class pN> struct SomeName"
|
||||||
//
|
//
|
||||||
// Also defines an equivalent SomeNameConcept for backward compatibility.
|
// Also defines an equivalent SomeNameConcept for backward compatibility.
|
||||||
// Maybe in the next release we can kill off the "Concept" suffix for good.
|
// Maybe in the next release we can kill off the "Concept" suffix for good.
|
||||||
#if BOOST_WORKAROUND(__GNUC__, <= 3)
|
#if BOOST_WORKAROUND(__GNUC__, <= 3)
|
||||||
# define BOOST_concept(name, params) \
|
# define BOOST_concept(name, params) \
|
||||||
template < BOOST_PP_SEQ_FOR_EACH_I(BOOST_CONCEPT_typename,~,params) > \
|
template < BOOST_PP_SEQ_FOR_EACH_I(BOOST_CONCEPT_typename,~,params) > \
|
||||||
struct name; /* forward declaration */ \
|
struct name; /* forward declaration */ \
|
||||||
\
|
\
|
||||||
template < BOOST_PP_SEQ_FOR_EACH_I(BOOST_CONCEPT_typename,~,params) > \
|
template < BOOST_PP_SEQ_FOR_EACH_I(BOOST_CONCEPT_typename,~,params) > \
|
||||||
struct BOOST_PP_CAT(name,Concept) \
|
struct BOOST_PP_CAT(name,Concept) \
|
||||||
: name< BOOST_PP_SEQ_ENUM(params) > \
|
: name< BOOST_PP_SEQ_ENUM(params) > \
|
||||||
{ \
|
{ \
|
||||||
/* at least 2.96 and 3.4.3 both need this */ \
|
/* at least 2.96 and 3.4.3 both need this */ \
|
||||||
BOOST_PP_CAT(name,Concept)(); \
|
BOOST_PP_CAT(name,Concept)(); \
|
||||||
}; \
|
}; \
|
||||||
\
|
\
|
||||||
template < BOOST_PP_SEQ_FOR_EACH_I(BOOST_CONCEPT_typename,~,params) > \
|
template < BOOST_PP_SEQ_FOR_EACH_I(BOOST_CONCEPT_typename,~,params) > \
|
||||||
struct name
|
struct name
|
||||||
#else
|
#else
|
||||||
# define BOOST_concept(name, params) \
|
# define BOOST_concept(name, params) \
|
||||||
template < BOOST_PP_SEQ_FOR_EACH_I(BOOST_CONCEPT_typename,~,params) > \
|
template < BOOST_PP_SEQ_FOR_EACH_I(BOOST_CONCEPT_typename,~,params) > \
|
||||||
struct name; /* forward declaration */ \
|
struct name; /* forward declaration */ \
|
||||||
\
|
\
|
||||||
template < BOOST_PP_SEQ_FOR_EACH_I(BOOST_CONCEPT_typename,~,params) > \
|
template < BOOST_PP_SEQ_FOR_EACH_I(BOOST_CONCEPT_typename,~,params) > \
|
||||||
struct BOOST_PP_CAT(name,Concept) \
|
struct BOOST_PP_CAT(name,Concept) \
|
||||||
: name< BOOST_PP_SEQ_ENUM(params) > \
|
: name< BOOST_PP_SEQ_ENUM(params) > \
|
||||||
{ \
|
{ \
|
||||||
}; \
|
}; \
|
||||||
\
|
\
|
||||||
template < BOOST_PP_SEQ_FOR_EACH_I(BOOST_CONCEPT_typename,~,params) > \
|
template < BOOST_PP_SEQ_FOR_EACH_I(BOOST_CONCEPT_typename,~,params) > \
|
||||||
struct name
|
struct name
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// Helper for BOOST_concept, above.
|
// Helper for BOOST_concept, above.
|
||||||
# define BOOST_CONCEPT_typename(r, ignored, index, t) \
|
# define BOOST_CONCEPT_typename(r, ignored, index, t) \
|
||||||
BOOST_PP_COMMA_IF(index) typename t
|
BOOST_PP_COMMA_IF(index) typename t
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
// Copyright David Abrahams 2006. Distributed under the Boost
|
// Copyright David Abrahams 2006. Distributed under the Boost
|
||||||
// Software License, Version 1.0. (See accompanying
|
// Software License, Version 1.0. (See accompanying
|
||||||
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||||
# undef BOOST_concept_typename
|
# undef BOOST_concept_typename
|
||||||
# undef BOOST_concept
|
# undef BOOST_concept
|
||||||
|
|
|
@ -1,75 +1,75 @@
|
||||||
// Copyright David Abrahams 2006. Distributed under the Boost
|
// Copyright David Abrahams 2006. Distributed under the Boost
|
||||||
// Software License, Version 1.0. (See accompanying
|
// Software License, Version 1.0. (See accompanying
|
||||||
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||||
#ifndef BOOST_CONCEPT_DETAIL_GENERAL_DWA2006429_HPP
|
#ifndef BOOST_CONCEPT_DETAIL_GENERAL_DWA2006429_HPP
|
||||||
# define BOOST_CONCEPT_DETAIL_GENERAL_DWA2006429_HPP
|
# define BOOST_CONCEPT_DETAIL_GENERAL_DWA2006429_HPP
|
||||||
|
|
||||||
# include <boost/preprocessor/cat.hpp>
|
# include <boost/preprocessor/cat.hpp>
|
||||||
# include <boost/concept/detail/backward_compatibility.hpp>
|
# include <boost/concept/detail/backward_compatibility.hpp>
|
||||||
|
|
||||||
# ifdef BOOST_OLD_CONCEPT_SUPPORT
|
# ifdef BOOST_OLD_CONCEPT_SUPPORT
|
||||||
# include <boost/concept/detail/has_constraints.hpp>
|
# include <boost/concept/detail/has_constraints.hpp>
|
||||||
# include <boost/mpl/if.hpp>
|
# include <boost/mpl/if.hpp>
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
// This implementation works on Comeau and GCC, all the way back to
|
// This implementation works on Comeau and GCC, all the way back to
|
||||||
// 2.95
|
// 2.95
|
||||||
namespace boost { namespace concepts {
|
namespace boost { namespace concepts {
|
||||||
|
|
||||||
template <class ModelFn>
|
template <class ModelFn>
|
||||||
struct requirement_;
|
struct requirement_;
|
||||||
|
|
||||||
namespace detail
|
namespace detail
|
||||||
{
|
{
|
||||||
template <void(*)()> struct instantiate {};
|
template <void(*)()> struct instantiate {};
|
||||||
}
|
}
|
||||||
|
|
||||||
template <class Model>
|
template <class Model>
|
||||||
struct requirement
|
struct requirement
|
||||||
{
|
{
|
||||||
static void failed() { ((Model*)0)->~Model(); }
|
static void failed() { ((Model*)0)->~Model(); }
|
||||||
};
|
};
|
||||||
|
|
||||||
struct failed {};
|
struct failed {};
|
||||||
|
|
||||||
template <class Model>
|
template <class Model>
|
||||||
struct requirement<failed ************ Model::************>
|
struct requirement<failed ************ Model::************>
|
||||||
{
|
{
|
||||||
static void failed() { ((Model*)0)->~Model(); }
|
static void failed() { ((Model*)0)->~Model(); }
|
||||||
};
|
};
|
||||||
|
|
||||||
# ifdef BOOST_OLD_CONCEPT_SUPPORT
|
# ifdef BOOST_OLD_CONCEPT_SUPPORT
|
||||||
|
|
||||||
template <class Model>
|
template <class Model>
|
||||||
struct constraint
|
struct constraint
|
||||||
{
|
{
|
||||||
static void failed() { ((Model*)0)->constraints(); }
|
static void failed() { ((Model*)0)->constraints(); }
|
||||||
};
|
};
|
||||||
|
|
||||||
template <class Model>
|
template <class Model>
|
||||||
struct requirement_<void(*)(Model)>
|
struct requirement_<void(*)(Model)>
|
||||||
: mpl::if_<
|
: mpl::if_<
|
||||||
concepts::not_satisfied<Model>
|
concepts::not_satisfied<Model>
|
||||||
, constraint<Model>
|
, constraint<Model>
|
||||||
, requirement<failed ************ Model::************>
|
, requirement<failed ************ Model::************>
|
||||||
>::type
|
>::type
|
||||||
{};
|
{};
|
||||||
|
|
||||||
# else
|
# else
|
||||||
|
|
||||||
// For GCC-2.x, these can't have exactly the same name
|
// For GCC-2.x, these can't have exactly the same name
|
||||||
template <class Model>
|
template <class Model>
|
||||||
struct requirement_<void(*)(Model)>
|
struct requirement_<void(*)(Model)>
|
||||||
: requirement<failed ************ Model::************>
|
: requirement<failed ************ Model::************>
|
||||||
{};
|
{};
|
||||||
|
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
# define BOOST_CONCEPT_ASSERT_FN( ModelFnPtr ) \
|
# define BOOST_CONCEPT_ASSERT_FN( ModelFnPtr ) \
|
||||||
typedef ::boost::concepts::detail::instantiate< \
|
typedef ::boost::concepts::detail::instantiate< \
|
||||||
&::boost::concepts::requirement_<ModelFnPtr>::failed> \
|
&::boost::concepts::requirement_<ModelFnPtr>::failed> \
|
||||||
BOOST_PP_CAT(boost_concept_check,__LINE__)
|
BOOST_PP_CAT(boost_concept_check,__LINE__)
|
||||||
|
|
||||||
}}
|
}}
|
||||||
|
|
||||||
#endif // BOOST_CONCEPT_DETAIL_GENERAL_DWA2006429_HPP
|
#endif // BOOST_CONCEPT_DETAIL_GENERAL_DWA2006429_HPP
|
||||||
|
|
|
@ -1,50 +1,50 @@
|
||||||
// Copyright David Abrahams 2006. Distributed under the Boost
|
// Copyright David Abrahams 2006. Distributed under the Boost
|
||||||
// Software License, Version 1.0. (See accompanying
|
// Software License, Version 1.0. (See accompanying
|
||||||
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||||
#ifndef BOOST_CONCEPT_DETAIL_HAS_CONSTRAINTS_DWA2006429_HPP
|
#ifndef BOOST_CONCEPT_DETAIL_HAS_CONSTRAINTS_DWA2006429_HPP
|
||||||
# define BOOST_CONCEPT_DETAIL_HAS_CONSTRAINTS_DWA2006429_HPP
|
# define BOOST_CONCEPT_DETAIL_HAS_CONSTRAINTS_DWA2006429_HPP
|
||||||
|
|
||||||
# include <boost/mpl/bool.hpp>
|
# include <boost/mpl/bool.hpp>
|
||||||
# include <boost/detail/workaround.hpp>
|
# include <boost/detail/workaround.hpp>
|
||||||
# include <boost/concept/detail/backward_compatibility.hpp>
|
# include <boost/concept/detail/backward_compatibility.hpp>
|
||||||
|
|
||||||
namespace boost { namespace concepts {
|
namespace boost { namespace concepts {
|
||||||
|
|
||||||
namespace detail
|
namespace detail
|
||||||
{
|
{
|
||||||
|
|
||||||
// Here we implement the metafunction that detects whether a
|
// Here we implement the metafunction that detects whether a
|
||||||
// constraints metafunction exists
|
// constraints metafunction exists
|
||||||
typedef char yes;
|
typedef char yes;
|
||||||
typedef char (&no)[2];
|
typedef char (&no)[2];
|
||||||
|
|
||||||
template <class Model, void (Model::*)()>
|
template <class Model, void (Model::*)()>
|
||||||
struct wrap_constraints {};
|
struct wrap_constraints {};
|
||||||
|
|
||||||
#if BOOST_WORKAROUND(__SUNPRO_CC, <= 0x580) || defined(__CUDACC__)
|
#if BOOST_WORKAROUND(__SUNPRO_CC, <= 0x580) || defined(__CUDACC__)
|
||||||
// Work around the following bogus error in Sun Studio 11, by
|
// Work around the following bogus error in Sun Studio 11, by
|
||||||
// turning off the has_constraints function entirely:
|
// turning off the has_constraints function entirely:
|
||||||
// Error: complex expression not allowed in dependent template
|
// Error: complex expression not allowed in dependent template
|
||||||
// argument expression
|
// argument expression
|
||||||
inline no has_constraints_(...);
|
inline no has_constraints_(...);
|
||||||
#else
|
#else
|
||||||
template <class Model>
|
template <class Model>
|
||||||
inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
|
inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
|
||||||
inline no has_constraints_(...);
|
inline no has_constraints_(...);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
// This would be called "detail::has_constraints," but it has a strong
|
// This would be called "detail::has_constraints," but it has a strong
|
||||||
// tendency to show up in error messages.
|
// tendency to show up in error messages.
|
||||||
template <class Model>
|
template <class Model>
|
||||||
struct not_satisfied
|
struct not_satisfied
|
||||||
{
|
{
|
||||||
BOOST_STATIC_CONSTANT(
|
BOOST_STATIC_CONSTANT(
|
||||||
bool
|
bool
|
||||||
, value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
|
, value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
|
||||||
typedef mpl::bool_<value> type;
|
typedef mpl::bool_<value> type;
|
||||||
};
|
};
|
||||||
|
|
||||||
}} // namespace boost::concepts::detail
|
}} // namespace boost::concepts::detail
|
||||||
|
|
||||||
#endif // BOOST_CONCEPT_DETAIL_HAS_CONSTRAINTS_DWA2006429_HPP
|
#endif // BOOST_CONCEPT_DETAIL_HAS_CONSTRAINTS_DWA2006429_HPP
|
||||||
|
|
|
@ -1,114 +1,114 @@
|
||||||
// Copyright David Abrahams 2006. Distributed under the Boost
|
// Copyright David Abrahams 2006. Distributed under the Boost
|
||||||
// Software License, Version 1.0. (See accompanying
|
// Software License, Version 1.0. (See accompanying
|
||||||
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||||
#ifndef BOOST_CONCEPT_CHECK_MSVC_DWA2006429_HPP
|
#ifndef BOOST_CONCEPT_CHECK_MSVC_DWA2006429_HPP
|
||||||
# define BOOST_CONCEPT_CHECK_MSVC_DWA2006429_HPP
|
# define BOOST_CONCEPT_CHECK_MSVC_DWA2006429_HPP
|
||||||
|
|
||||||
# include <boost/preprocessor/cat.hpp>
|
# include <boost/preprocessor/cat.hpp>
|
||||||
# include <boost/concept/detail/backward_compatibility.hpp>
|
# include <boost/concept/detail/backward_compatibility.hpp>
|
||||||
|
|
||||||
# ifdef BOOST_OLD_CONCEPT_SUPPORT
|
# ifdef BOOST_OLD_CONCEPT_SUPPORT
|
||||||
# include <boost/concept/detail/has_constraints.hpp>
|
# include <boost/concept/detail/has_constraints.hpp>
|
||||||
# include <boost/mpl/if.hpp>
|
# include <boost/mpl/if.hpp>
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
|
|
||||||
namespace boost { namespace concepts {
|
namespace boost { namespace concepts {
|
||||||
|
|
||||||
|
|
||||||
template <class Model>
|
template <class Model>
|
||||||
struct check
|
struct check
|
||||||
{
|
{
|
||||||
virtual void failed(Model* x)
|
virtual void failed(Model* x)
|
||||||
{
|
{
|
||||||
x->~Model();
|
x->~Model();
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
# ifndef BOOST_NO_PARTIAL_SPECIALIZATION
|
# ifndef BOOST_NO_PARTIAL_SPECIALIZATION
|
||||||
struct failed {};
|
struct failed {};
|
||||||
template <class Model>
|
template <class Model>
|
||||||
struct check<failed ************ Model::************>
|
struct check<failed ************ Model::************>
|
||||||
{
|
{
|
||||||
virtual void failed(Model* x)
|
virtual void failed(Model* x)
|
||||||
{
|
{
|
||||||
x->~Model();
|
x->~Model();
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
# ifdef BOOST_OLD_CONCEPT_SUPPORT
|
# ifdef BOOST_OLD_CONCEPT_SUPPORT
|
||||||
|
|
||||||
namespace detail
|
namespace detail
|
||||||
{
|
{
|
||||||
// No need for a virtual function here, since evaluating
|
// No need for a virtual function here, since evaluating
|
||||||
// not_satisfied below will have already instantiated the
|
// not_satisfied below will have already instantiated the
|
||||||
// constraints() member.
|
// constraints() member.
|
||||||
struct constraint {};
|
struct constraint {};
|
||||||
}
|
}
|
||||||
|
|
||||||
template <class Model>
|
template <class Model>
|
||||||
struct require
|
struct require
|
||||||
: mpl::if_c<
|
: mpl::if_c<
|
||||||
not_satisfied<Model>::value
|
not_satisfied<Model>::value
|
||||||
, detail::constraint
|
, detail::constraint
|
||||||
# ifndef BOOST_NO_PARTIAL_SPECIALIZATION
|
# ifndef BOOST_NO_PARTIAL_SPECIALIZATION
|
||||||
, check<Model>
|
, check<Model>
|
||||||
# else
|
# else
|
||||||
, check<failed ************ Model::************>
|
, check<failed ************ Model::************>
|
||||||
# endif
|
# endif
|
||||||
>::type
|
>::type
|
||||||
{};
|
{};
|
||||||
|
|
||||||
# else
|
# else
|
||||||
|
|
||||||
template <class Model>
|
template <class Model>
|
||||||
struct require
|
struct require
|
||||||
# ifndef BOOST_NO_PARTIAL_SPECIALIZATION
|
# ifndef BOOST_NO_PARTIAL_SPECIALIZATION
|
||||||
: check<Model>
|
: check<Model>
|
||||||
# else
|
# else
|
||||||
: check<failed ************ Model::************>
|
: check<failed ************ Model::************>
|
||||||
# endif
|
# endif
|
||||||
{};
|
{};
|
||||||
|
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
# if BOOST_WORKAROUND(BOOST_MSVC, == 1310)
|
# if BOOST_WORKAROUND(BOOST_MSVC, == 1310)
|
||||||
|
|
||||||
//
|
//
|
||||||
// The iterator library sees some really strange errors unless we
|
// The iterator library sees some really strange errors unless we
|
||||||
// do things this way.
|
// do things this way.
|
||||||
//
|
//
|
||||||
template <class Model>
|
template <class Model>
|
||||||
struct require<void(*)(Model)>
|
struct require<void(*)(Model)>
|
||||||
{
|
{
|
||||||
virtual void failed(Model*)
|
virtual void failed(Model*)
|
||||||
{
|
{
|
||||||
require<Model>();
|
require<Model>();
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
# define BOOST_CONCEPT_ASSERT_FN( ModelFnPtr ) \
|
# define BOOST_CONCEPT_ASSERT_FN( ModelFnPtr ) \
|
||||||
enum \
|
enum \
|
||||||
{ \
|
{ \
|
||||||
BOOST_PP_CAT(boost_concept_check,__LINE__) = \
|
BOOST_PP_CAT(boost_concept_check,__LINE__) = \
|
||||||
sizeof(::boost::concepts::require<ModelFnPtr>) \
|
sizeof(::boost::concepts::require<ModelFnPtr>) \
|
||||||
}
|
}
|
||||||
|
|
||||||
# else // Not vc-7.1
|
# else // Not vc-7.1
|
||||||
|
|
||||||
template <class Model>
|
template <class Model>
|
||||||
require<Model>
|
require<Model>
|
||||||
require_(void(*)(Model));
|
require_(void(*)(Model));
|
||||||
|
|
||||||
# define BOOST_CONCEPT_ASSERT_FN( ModelFnPtr ) \
|
# define BOOST_CONCEPT_ASSERT_FN( ModelFnPtr ) \
|
||||||
enum \
|
enum \
|
||||||
{ \
|
{ \
|
||||||
BOOST_PP_CAT(boost_concept_check,__LINE__) = \
|
BOOST_PP_CAT(boost_concept_check,__LINE__) = \
|
||||||
sizeof(::boost::concepts::require_((ModelFnPtr)0)) \
|
sizeof(::boost::concepts::require_((ModelFnPtr)0)) \
|
||||||
}
|
}
|
||||||
|
|
||||||
# endif
|
# endif
|
||||||
}}
|
}}
|
||||||
|
|
||||||
#endif // BOOST_CONCEPT_CHECK_MSVC_DWA2006429_HPP
|
#endif // BOOST_CONCEPT_CHECK_MSVC_DWA2006429_HPP
|
||||||
|
|
|
@ -1,78 +1,78 @@
|
||||||
// Copyright David Abrahams 2006. Distributed under the Boost
|
// Copyright David Abrahams 2006. Distributed under the Boost
|
||||||
// Software License, Version 1.0. (See accompanying
|
// Software License, Version 1.0. (See accompanying
|
||||||
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||||
#ifndef BOOST_CONCEPT_REQUIRES_DWA2006430_HPP
|
#ifndef BOOST_CONCEPT_REQUIRES_DWA2006430_HPP
|
||||||
# define BOOST_CONCEPT_REQUIRES_DWA2006430_HPP
|
# define BOOST_CONCEPT_REQUIRES_DWA2006430_HPP
|
||||||
|
|
||||||
# include <boost/config.hpp>
|
# include <boost/config.hpp>
|
||||||
# include <boost/parameter/aux_/parenthesized_type.hpp>
|
# include <boost/parameter/aux_/parenthesized_type.hpp>
|
||||||
# include <boost/concept/assert.hpp>
|
# include <boost/concept/assert.hpp>
|
||||||
# include <boost/preprocessor/seq/for_each.hpp>
|
# include <boost/preprocessor/seq/for_each.hpp>
|
||||||
|
|
||||||
namespace boost {
|
namespace boost {
|
||||||
|
|
||||||
// Template for use in handwritten assertions
|
// Template for use in handwritten assertions
|
||||||
template <class Model, class More>
|
template <class Model, class More>
|
||||||
struct requires_ : More
|
struct requires_ : More
|
||||||
{
|
{
|
||||||
# if BOOST_WORKAROUND(BOOST_MSVC, <= 1300)
|
# if BOOST_WORKAROUND(BOOST_MSVC, <= 1300)
|
||||||
typedef typename More::type type;
|
typedef typename More::type type;
|
||||||
# endif
|
# endif
|
||||||
BOOST_CONCEPT_ASSERT((Model));
|
BOOST_CONCEPT_ASSERT((Model));
|
||||||
};
|
};
|
||||||
|
|
||||||
// Template for use by macros, where models must be wrapped in parens.
|
// Template for use by macros, where models must be wrapped in parens.
|
||||||
// This isn't in namespace detail to keep extra cruft out of resulting
|
// This isn't in namespace detail to keep extra cruft out of resulting
|
||||||
// error messages.
|
// error messages.
|
||||||
template <class ModelFn>
|
template <class ModelFn>
|
||||||
struct _requires_
|
struct _requires_
|
||||||
{
|
{
|
||||||
enum { value = 0 };
|
enum { value = 0 };
|
||||||
BOOST_CONCEPT_ASSERT_FN(ModelFn);
|
BOOST_CONCEPT_ASSERT_FN(ModelFn);
|
||||||
};
|
};
|
||||||
|
|
||||||
template <int check, class Result>
|
template <int check, class Result>
|
||||||
struct Requires_ : ::boost::parameter::aux::unaryfunptr_arg_type<Result>
|
struct Requires_ : ::boost::parameter::aux::unaryfunptr_arg_type<Result>
|
||||||
{
|
{
|
||||||
# if BOOST_WORKAROUND(BOOST_MSVC, <= 1300)
|
# if BOOST_WORKAROUND(BOOST_MSVC, <= 1300)
|
||||||
typedef typename ::boost::parameter::aux::unaryfunptr_arg_type<Result>::type type;
|
typedef typename ::boost::parameter::aux::unaryfunptr_arg_type<Result>::type type;
|
||||||
# endif
|
# endif
|
||||||
};
|
};
|
||||||
|
|
||||||
# if BOOST_WORKAROUND(BOOST_INTEL_WIN, BOOST_TESTED_AT(1010))
|
# if BOOST_WORKAROUND(BOOST_INTEL_WIN, BOOST_TESTED_AT(1010))
|
||||||
# define BOOST_CONCEPT_REQUIRES_(r,data,t) | (::boost::_requires_<void(*)t>::value)
|
# define BOOST_CONCEPT_REQUIRES_(r,data,t) | (::boost::_requires_<void(*)t>::value)
|
||||||
# else
|
# else
|
||||||
# define BOOST_CONCEPT_REQUIRES_(r,data,t) + (::boost::_requires_<void(*)t>::value)
|
# define BOOST_CONCEPT_REQUIRES_(r,data,t) + (::boost::_requires_<void(*)t>::value)
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
#if defined(NDEBUG) || BOOST_WORKAROUND(BOOST_MSVC, < 1300)
|
#if defined(NDEBUG) || BOOST_WORKAROUND(BOOST_MSVC, < 1300)
|
||||||
|
|
||||||
# define BOOST_CONCEPT_REQUIRES(models, result) \
|
# define BOOST_CONCEPT_REQUIRES(models, result) \
|
||||||
typename ::boost::parameter::aux::unaryfunptr_arg_type<void(*)result>::type
|
typename ::boost::parameter::aux::unaryfunptr_arg_type<void(*)result>::type
|
||||||
|
|
||||||
#elif BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564))
|
#elif BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564))
|
||||||
|
|
||||||
// Same thing as below without the initial typename
|
// Same thing as below without the initial typename
|
||||||
# define BOOST_CONCEPT_REQUIRES(models, result) \
|
# define BOOST_CONCEPT_REQUIRES(models, result) \
|
||||||
::boost::Requires_< \
|
::boost::Requires_< \
|
||||||
(0 BOOST_PP_SEQ_FOR_EACH(BOOST_CONCEPT_REQUIRES_, ~, models)), \
|
(0 BOOST_PP_SEQ_FOR_EACH(BOOST_CONCEPT_REQUIRES_, ~, models)), \
|
||||||
::boost::parameter::aux::unaryfunptr_arg_type<void(*)result> \
|
::boost::parameter::aux::unaryfunptr_arg_type<void(*)result> \
|
||||||
>::type
|
>::type
|
||||||
|
|
||||||
#else
|
#else
|
||||||
|
|
||||||
// This just ICEs on MSVC6 :(
|
// This just ICEs on MSVC6 :(
|
||||||
# define BOOST_CONCEPT_REQUIRES(models, result) \
|
# define BOOST_CONCEPT_REQUIRES(models, result) \
|
||||||
typename ::boost::Requires_< \
|
typename ::boost::Requires_< \
|
||||||
(0 BOOST_PP_SEQ_FOR_EACH(BOOST_CONCEPT_REQUIRES_, ~, models)), \
|
(0 BOOST_PP_SEQ_FOR_EACH(BOOST_CONCEPT_REQUIRES_, ~, models)), \
|
||||||
void(*)result \
|
void(*)result \
|
||||||
>::type
|
>::type
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// C++0x proposed syntax changed. This supports an older usage
|
// C++0x proposed syntax changed. This supports an older usage
|
||||||
#define BOOST_CONCEPT_WHERE(models,result) BOOST_CONCEPT_REQUIRES(models,result)
|
#define BOOST_CONCEPT_WHERE(models,result) BOOST_CONCEPT_REQUIRES(models,result)
|
||||||
|
|
||||||
} // namespace boost::concept_check
|
} // namespace boost::concept_check
|
||||||
|
|
||||||
#endif // BOOST_CONCEPT_REQUIRES_DWA2006430_HPP
|
#endif // BOOST_CONCEPT_REQUIRES_DWA2006430_HPP
|
||||||
|
|
|
@ -1,44 +1,44 @@
|
||||||
// Copyright David Abrahams 2006. Distributed under the Boost
|
// Copyright David Abrahams 2006. Distributed under the Boost
|
||||||
// Software License, Version 1.0. (See accompanying
|
// Software License, Version 1.0. (See accompanying
|
||||||
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||||
#ifndef BOOST_CONCEPT_USAGE_DWA2006919_HPP
|
#ifndef BOOST_CONCEPT_USAGE_DWA2006919_HPP
|
||||||
# define BOOST_CONCEPT_USAGE_DWA2006919_HPP
|
# define BOOST_CONCEPT_USAGE_DWA2006919_HPP
|
||||||
|
|
||||||
# include <boost/concept/assert.hpp>
|
# include <boost/concept/assert.hpp>
|
||||||
# include <boost/detail/workaround.hpp>
|
# include <boost/detail/workaround.hpp>
|
||||||
# include <boost/concept/detail/backward_compatibility.hpp>
|
# include <boost/concept/detail/backward_compatibility.hpp>
|
||||||
|
|
||||||
namespace boost { namespace concepts {
|
namespace boost { namespace concepts {
|
||||||
|
|
||||||
# if BOOST_WORKAROUND(__GNUC__, == 2)
|
# if BOOST_WORKAROUND(__GNUC__, == 2)
|
||||||
|
|
||||||
# define BOOST_CONCEPT_USAGE(model) ~model()
|
# define BOOST_CONCEPT_USAGE(model) ~model()
|
||||||
|
|
||||||
# else
|
# else
|
||||||
|
|
||||||
template <class Model>
|
template <class Model>
|
||||||
struct usage_requirements
|
struct usage_requirements
|
||||||
{
|
{
|
||||||
~usage_requirements() { ((Model*)0)->~Model(); }
|
~usage_requirements() { ((Model*)0)->~Model(); }
|
||||||
};
|
};
|
||||||
|
|
||||||
# if BOOST_WORKAROUND(__GNUC__, <= 3)
|
# if BOOST_WORKAROUND(__GNUC__, <= 3)
|
||||||
|
|
||||||
# define BOOST_CONCEPT_USAGE(model) \
|
# define BOOST_CONCEPT_USAGE(model) \
|
||||||
model(); /* at least 2.96 and 3.4.3 both need this :( */ \
|
model(); /* at least 2.96 and 3.4.3 both need this :( */ \
|
||||||
BOOST_CONCEPT_ASSERT((boost::concepts::usage_requirements<model>)); \
|
BOOST_CONCEPT_ASSERT((boost::concepts::usage_requirements<model>)); \
|
||||||
~model()
|
~model()
|
||||||
|
|
||||||
# else
|
# else
|
||||||
|
|
||||||
# define BOOST_CONCEPT_USAGE(model) \
|
# define BOOST_CONCEPT_USAGE(model) \
|
||||||
BOOST_CONCEPT_ASSERT((boost::concepts::usage_requirements<model>)); \
|
BOOST_CONCEPT_ASSERT((boost::concepts::usage_requirements<model>)); \
|
||||||
~model()
|
~model()
|
||||||
|
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
}} // namespace boost::concepts
|
}} // namespace boost::concepts
|
||||||
|
|
||||||
#endif // BOOST_CONCEPT_USAGE_DWA2006919_HPP
|
#endif // BOOST_CONCEPT_USAGE_DWA2006919_HPP
|
||||||
|
|
|
@ -0,0 +1,669 @@
|
||||||
|
//
|
||||||
|
// (C) Copyright Jeremy Siek 2000.
|
||||||
|
// Distributed under the Boost Software License, Version 1.0. (See
|
||||||
|
// accompanying file LICENSE_1_0.txt or copy at
|
||||||
|
// http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
//
|
||||||
|
// Revision History:
|
||||||
|
//
|
||||||
|
// 17 July 2001: Added const to some member functions. (Jeremy Siek)
|
||||||
|
// 05 May 2001: Removed static dummy_cons object. (Jeremy Siek)
|
||||||
|
|
||||||
|
// See http://www.boost.org/libs/concept_check for documentation.
|
||||||
|
|
||||||
|
#ifndef BOOST_CONCEPT_ARCHETYPES_HPP
|
||||||
|
#define BOOST_CONCEPT_ARCHETYPES_HPP
|
||||||
|
|
||||||
|
#include <boost/config.hpp>
|
||||||
|
#include <boost/iterator.hpp>
|
||||||
|
#include <boost/mpl/identity.hpp>
|
||||||
|
#include <functional>
|
||||||
|
|
||||||
|
namespace boost {
|
||||||
|
|
||||||
|
//===========================================================================
|
||||||
|
// Basic Archetype Classes
|
||||||
|
|
||||||
|
namespace detail {
|
||||||
|
class dummy_constructor { };
|
||||||
|
}
|
||||||
|
|
||||||
|
// A type that models no concept. The template parameter
|
||||||
|
// is only there so that null_archetype types can be created
|
||||||
|
// that have different type.
|
||||||
|
template <class T = int>
|
||||||
|
class null_archetype {
|
||||||
|
private:
|
||||||
|
null_archetype() { }
|
||||||
|
null_archetype(const null_archetype&) { }
|
||||||
|
null_archetype& operator=(const null_archetype&) { return *this; }
|
||||||
|
public:
|
||||||
|
null_archetype(detail::dummy_constructor) { }
|
||||||
|
#ifndef __MWERKS__
|
||||||
|
template <class TT>
|
||||||
|
friend void dummy_friend(); // just to avoid warnings
|
||||||
|
#endif
|
||||||
|
};
|
||||||
|
|
||||||
|
// This is a helper class that provides a way to get a reference to
|
||||||
|
// an object. The get() function will never be called at run-time
|
||||||
|
// (nothing in this file will) so this seemingly very bad function
|
||||||
|
// is really quite innocent. The name of this class needs to be
|
||||||
|
// changed.
|
||||||
|
template <class T>
|
||||||
|
class static_object
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
static T& get()
|
||||||
|
{
|
||||||
|
#if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564))
|
||||||
|
return *reinterpret_cast<T*>(0);
|
||||||
|
#else
|
||||||
|
static char d[sizeof(T)];
|
||||||
|
return *reinterpret_cast<T*>(d);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
template <class Base = null_archetype<> >
|
||||||
|
class default_constructible_archetype : public Base {
|
||||||
|
public:
|
||||||
|
default_constructible_archetype()
|
||||||
|
: Base(static_object<detail::dummy_constructor>::get()) { }
|
||||||
|
default_constructible_archetype(detail::dummy_constructor x) : Base(x) { }
|
||||||
|
};
|
||||||
|
|
||||||
|
template <class Base = null_archetype<> >
|
||||||
|
class assignable_archetype : public Base {
|
||||||
|
assignable_archetype() { }
|
||||||
|
assignable_archetype(const assignable_archetype&) { }
|
||||||
|
public:
|
||||||
|
assignable_archetype& operator=(const assignable_archetype&) {
|
||||||
|
return *this;
|
||||||
|
}
|
||||||
|
assignable_archetype(detail::dummy_constructor x) : Base(x) { }
|
||||||
|
};
|
||||||
|
|
||||||
|
template <class Base = null_archetype<> >
|
||||||
|
class copy_constructible_archetype : public Base {
|
||||||
|
public:
|
||||||
|
copy_constructible_archetype()
|
||||||
|
: Base(static_object<detail::dummy_constructor>::get()) { }
|
||||||
|
copy_constructible_archetype(const copy_constructible_archetype&)
|
||||||
|
: Base(static_object<detail::dummy_constructor>::get()) { }
|
||||||
|
copy_constructible_archetype(detail::dummy_constructor x) : Base(x) { }
|
||||||
|
};
|
||||||
|
|
||||||
|
template <class Base = null_archetype<> >
|
||||||
|
class sgi_assignable_archetype : public Base {
|
||||||
|
public:
|
||||||
|
sgi_assignable_archetype(const sgi_assignable_archetype&)
|
||||||
|
: Base(static_object<detail::dummy_constructor>::get()) { }
|
||||||
|
sgi_assignable_archetype& operator=(const sgi_assignable_archetype&) {
|
||||||
|
return *this;
|
||||||
|
}
|
||||||
|
sgi_assignable_archetype(const detail::dummy_constructor& x) : Base(x) { }
|
||||||
|
};
|
||||||
|
|
||||||
|
struct default_archetype_base {
|
||||||
|
default_archetype_base(detail::dummy_constructor) { }
|
||||||
|
};
|
||||||
|
|
||||||
|
// Careful, don't use same type for T and Base. That results in the
|
||||||
|
// conversion operator being invalid. Since T is often
|
||||||
|
// null_archetype, can't use null_archetype for Base.
|
||||||
|
template <class T, class Base = default_archetype_base>
|
||||||
|
class convertible_to_archetype : public Base {
|
||||||
|
private:
|
||||||
|
convertible_to_archetype() { }
|
||||||
|
convertible_to_archetype(const convertible_to_archetype& ) { }
|
||||||
|
convertible_to_archetype& operator=(const convertible_to_archetype&)
|
||||||
|
{ return *this; }
|
||||||
|
public:
|
||||||
|
convertible_to_archetype(detail::dummy_constructor x) : Base(x) { }
|
||||||
|
operator const T&() const { return static_object<T>::get(); }
|
||||||
|
};
|
||||||
|
|
||||||
|
template <class T, class Base = default_archetype_base>
|
||||||
|
class convertible_from_archetype : public Base {
|
||||||
|
private:
|
||||||
|
convertible_from_archetype() { }
|
||||||
|
convertible_from_archetype(const convertible_from_archetype& ) { }
|
||||||
|
convertible_from_archetype& operator=(const convertible_from_archetype&)
|
||||||
|
{ return *this; }
|
||||||
|
public:
|
||||||
|
convertible_from_archetype(detail::dummy_constructor x) : Base(x) { }
|
||||||
|
convertible_from_archetype(const T&) { }
|
||||||
|
convertible_from_archetype& operator=(const T&)
|
||||||
|
{ return *this; }
|
||||||
|
};
|
||||||
|
|
||||||
|
class boolean_archetype {
|
||||||
|
public:
|
||||||
|
boolean_archetype(const boolean_archetype&) { }
|
||||||
|
operator bool() const { return true; }
|
||||||
|
boolean_archetype(detail::dummy_constructor) { }
|
||||||
|
private:
|
||||||
|
boolean_archetype() { }
|
||||||
|
boolean_archetype& operator=(const boolean_archetype&) { return *this; }
|
||||||
|
};
|
||||||
|
|
||||||
|
template <class Base = null_archetype<> >
|
||||||
|
class equality_comparable_archetype : public Base {
|
||||||
|
public:
|
||||||
|
equality_comparable_archetype(detail::dummy_constructor x) : Base(x) { }
|
||||||
|
};
|
||||||
|
template <class Base>
|
||||||
|
boolean_archetype
|
||||||
|
operator==(const equality_comparable_archetype<Base>&,
|
||||||
|
const equality_comparable_archetype<Base>&)
|
||||||
|
{
|
||||||
|
return boolean_archetype(static_object<detail::dummy_constructor>::get());
|
||||||
|
}
|
||||||
|
template <class Base>
|
||||||
|
boolean_archetype
|
||||||
|
operator!=(const equality_comparable_archetype<Base>&,
|
||||||
|
const equality_comparable_archetype<Base>&)
|
||||||
|
{
|
||||||
|
return boolean_archetype(static_object<detail::dummy_constructor>::get());
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
template <class Base = null_archetype<> >
|
||||||
|
class equality_comparable2_first_archetype : public Base {
|
||||||
|
public:
|
||||||
|
equality_comparable2_first_archetype(detail::dummy_constructor x)
|
||||||
|
: Base(x) { }
|
||||||
|
};
|
||||||
|
template <class Base = null_archetype<> >
|
||||||
|
class equality_comparable2_second_archetype : public Base {
|
||||||
|
public:
|
||||||
|
equality_comparable2_second_archetype(detail::dummy_constructor x)
|
||||||
|
: Base(x) { }
|
||||||
|
};
|
||||||
|
template <class Base1, class Base2>
|
||||||
|
boolean_archetype
|
||||||
|
operator==(const equality_comparable2_first_archetype<Base1>&,
|
||||||
|
const equality_comparable2_second_archetype<Base2>&)
|
||||||
|
{
|
||||||
|
return boolean_archetype(static_object<detail::dummy_constructor>::get());
|
||||||
|
}
|
||||||
|
template <class Base1, class Base2>
|
||||||
|
boolean_archetype
|
||||||
|
operator!=(const equality_comparable2_first_archetype<Base1>&,
|
||||||
|
const equality_comparable2_second_archetype<Base2>&)
|
||||||
|
{
|
||||||
|
return boolean_archetype(static_object<detail::dummy_constructor>::get());
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
template <class Base = null_archetype<> >
|
||||||
|
class less_than_comparable_archetype : public Base {
|
||||||
|
public:
|
||||||
|
less_than_comparable_archetype(detail::dummy_constructor x) : Base(x) { }
|
||||||
|
};
|
||||||
|
template <class Base>
|
||||||
|
boolean_archetype
|
||||||
|
operator<(const less_than_comparable_archetype<Base>&,
|
||||||
|
const less_than_comparable_archetype<Base>&)
|
||||||
|
{
|
||||||
|
return boolean_archetype(static_object<detail::dummy_constructor>::get());
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
template <class Base = null_archetype<> >
|
||||||
|
class comparable_archetype : public Base {
|
||||||
|
public:
|
||||||
|
comparable_archetype(detail::dummy_constructor x) : Base(x) { }
|
||||||
|
};
|
||||||
|
template <class Base>
|
||||||
|
boolean_archetype
|
||||||
|
operator<(const comparable_archetype<Base>&,
|
||||||
|
const comparable_archetype<Base>&)
|
||||||
|
{
|
||||||
|
return boolean_archetype(static_object<detail::dummy_constructor>::get());
|
||||||
|
}
|
||||||
|
template <class Base>
|
||||||
|
boolean_archetype
|
||||||
|
operator<=(const comparable_archetype<Base>&,
|
||||||
|
const comparable_archetype<Base>&)
|
||||||
|
{
|
||||||
|
return boolean_archetype(static_object<detail::dummy_constructor>::get());
|
||||||
|
}
|
||||||
|
template <class Base>
|
||||||
|
boolean_archetype
|
||||||
|
operator>(const comparable_archetype<Base>&,
|
||||||
|
const comparable_archetype<Base>&)
|
||||||
|
{
|
||||||
|
return boolean_archetype(static_object<detail::dummy_constructor>::get());
|
||||||
|
}
|
||||||
|
template <class Base>
|
||||||
|
boolean_archetype
|
||||||
|
operator>=(const comparable_archetype<Base>&,
|
||||||
|
const comparable_archetype<Base>&)
|
||||||
|
{
|
||||||
|
return boolean_archetype(static_object<detail::dummy_constructor>::get());
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// The purpose of the optags is so that one can specify
|
||||||
|
// exactly which types the operator< is defined between.
|
||||||
|
// This is useful for allowing the operations:
|
||||||
|
//
|
||||||
|
// A a; B b;
|
||||||
|
// a < b
|
||||||
|
// b < a
|
||||||
|
//
|
||||||
|
// without also allowing the combinations:
|
||||||
|
//
|
||||||
|
// a < a
|
||||||
|
// b < b
|
||||||
|
//
|
||||||
|
struct optag1 { };
|
||||||
|
struct optag2 { };
|
||||||
|
struct optag3 { };
|
||||||
|
|
||||||
|
#define BOOST_DEFINE_BINARY_PREDICATE_ARCHETYPE(OP, NAME) \
|
||||||
|
template <class Base = null_archetype<>, class Tag = optag1 > \
|
||||||
|
class NAME##_first_archetype : public Base { \
|
||||||
|
public: \
|
||||||
|
NAME##_first_archetype(detail::dummy_constructor x) : Base(x) { } \
|
||||||
|
}; \
|
||||||
|
\
|
||||||
|
template <class Base = null_archetype<>, class Tag = optag1 > \
|
||||||
|
class NAME##_second_archetype : public Base { \
|
||||||
|
public: \
|
||||||
|
NAME##_second_archetype(detail::dummy_constructor x) : Base(x) { } \
|
||||||
|
}; \
|
||||||
|
\
|
||||||
|
template <class BaseFirst, class BaseSecond, class Tag> \
|
||||||
|
boolean_archetype \
|
||||||
|
operator OP (const NAME##_first_archetype<BaseFirst, Tag>&, \
|
||||||
|
const NAME##_second_archetype<BaseSecond, Tag>&) \
|
||||||
|
{ \
|
||||||
|
return boolean_archetype(static_object<detail::dummy_constructor>::get()); \
|
||||||
|
}
|
||||||
|
|
||||||
|
BOOST_DEFINE_BINARY_PREDICATE_ARCHETYPE(==, equal_op)
|
||||||
|
BOOST_DEFINE_BINARY_PREDICATE_ARCHETYPE(!=, not_equal_op)
|
||||||
|
BOOST_DEFINE_BINARY_PREDICATE_ARCHETYPE(<, less_than_op)
|
||||||
|
BOOST_DEFINE_BINARY_PREDICATE_ARCHETYPE(<=, less_equal_op)
|
||||||
|
BOOST_DEFINE_BINARY_PREDICATE_ARCHETYPE(>, greater_than_op)
|
||||||
|
BOOST_DEFINE_BINARY_PREDICATE_ARCHETYPE(>=, greater_equal_op)
|
||||||
|
|
||||||
|
#define BOOST_DEFINE_OPERATOR_ARCHETYPE(OP, NAME) \
|
||||||
|
template <class Base = null_archetype<> > \
|
||||||
|
class NAME##_archetype : public Base { \
|
||||||
|
public: \
|
||||||
|
NAME##_archetype(detail::dummy_constructor x) : Base(x) { } \
|
||||||
|
NAME##_archetype(const NAME##_archetype&) \
|
||||||
|
: Base(static_object<detail::dummy_constructor>::get()) { } \
|
||||||
|
NAME##_archetype& operator=(const NAME##_archetype&) { return *this; } \
|
||||||
|
}; \
|
||||||
|
template <class Base> \
|
||||||
|
NAME##_archetype<Base> \
|
||||||
|
operator OP (const NAME##_archetype<Base>&,\
|
||||||
|
const NAME##_archetype<Base>&) \
|
||||||
|
{ \
|
||||||
|
return \
|
||||||
|
NAME##_archetype<Base>(static_object<detail::dummy_constructor>::get()); \
|
||||||
|
}
|
||||||
|
|
||||||
|
BOOST_DEFINE_OPERATOR_ARCHETYPE(+, addable)
|
||||||
|
BOOST_DEFINE_OPERATOR_ARCHETYPE(-, subtractable)
|
||||||
|
BOOST_DEFINE_OPERATOR_ARCHETYPE(*, multipliable)
|
||||||
|
BOOST_DEFINE_OPERATOR_ARCHETYPE(/, dividable)
|
||||||
|
BOOST_DEFINE_OPERATOR_ARCHETYPE(%, modable)
|
||||||
|
|
||||||
|
// As is, these are useless because of the return type.
|
||||||
|
// Need to invent a better way...
|
||||||
|
#define BOOST_DEFINE_BINARY_OPERATOR_ARCHETYPE(OP, NAME) \
|
||||||
|
template <class Return, class Base = null_archetype<> > \
|
||||||
|
class NAME##_first_archetype : public Base { \
|
||||||
|
public: \
|
||||||
|
NAME##_first_archetype(detail::dummy_constructor x) : Base(x) { } \
|
||||||
|
}; \
|
||||||
|
\
|
||||||
|
template <class Return, class Base = null_archetype<> > \
|
||||||
|
class NAME##_second_archetype : public Base { \
|
||||||
|
public: \
|
||||||
|
NAME##_second_archetype(detail::dummy_constructor x) : Base(x) { } \
|
||||||
|
}; \
|
||||||
|
\
|
||||||
|
template <class Return, class BaseFirst, class BaseSecond> \
|
||||||
|
Return \
|
||||||
|
operator OP (const NAME##_first_archetype<Return, BaseFirst>&, \
|
||||||
|
const NAME##_second_archetype<Return, BaseSecond>&) \
|
||||||
|
{ \
|
||||||
|
return Return(static_object<detail::dummy_constructor>::get()); \
|
||||||
|
}
|
||||||
|
|
||||||
|
BOOST_DEFINE_BINARY_OPERATOR_ARCHETYPE(+, plus_op)
|
||||||
|
BOOST_DEFINE_BINARY_OPERATOR_ARCHETYPE(*, time_op)
|
||||||
|
BOOST_DEFINE_BINARY_OPERATOR_ARCHETYPE(/, divide_op)
|
||||||
|
BOOST_DEFINE_BINARY_OPERATOR_ARCHETYPE(-, subtract_op)
|
||||||
|
BOOST_DEFINE_BINARY_OPERATOR_ARCHETYPE(%, mod_op)
|
||||||
|
|
||||||
|
//===========================================================================
|
||||||
|
// Function Object Archetype Classes
|
||||||
|
|
||||||
|
template <class Return>
|
||||||
|
class generator_archetype {
|
||||||
|
public:
|
||||||
|
const Return& operator()() {
|
||||||
|
return static_object<Return>::get();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
class void_generator_archetype {
|
||||||
|
public:
|
||||||
|
void operator()() { }
|
||||||
|
};
|
||||||
|
|
||||||
|
template <class Arg, class Return>
|
||||||
|
class unary_function_archetype {
|
||||||
|
private:
|
||||||
|
unary_function_archetype() { }
|
||||||
|
public:
|
||||||
|
unary_function_archetype(detail::dummy_constructor) { }
|
||||||
|
const Return& operator()(const Arg&) const {
|
||||||
|
return static_object<Return>::get();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
template <class Arg1, class Arg2, class Return>
|
||||||
|
class binary_function_archetype {
|
||||||
|
private:
|
||||||
|
binary_function_archetype() { }
|
||||||
|
public:
|
||||||
|
binary_function_archetype(detail::dummy_constructor) { }
|
||||||
|
const Return& operator()(const Arg1&, const Arg2&) const {
|
||||||
|
return static_object<Return>::get();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
template <class Arg>
|
||||||
|
class unary_predicate_archetype {
|
||||||
|
typedef boolean_archetype Return;
|
||||||
|
unary_predicate_archetype() { }
|
||||||
|
public:
|
||||||
|
unary_predicate_archetype(detail::dummy_constructor) { }
|
||||||
|
const Return& operator()(const Arg&) const {
|
||||||
|
return static_object<Return>::get();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
template <class Arg1, class Arg2, class Base = null_archetype<> >
|
||||||
|
class binary_predicate_archetype {
|
||||||
|
typedef boolean_archetype Return;
|
||||||
|
binary_predicate_archetype() { }
|
||||||
|
public:
|
||||||
|
binary_predicate_archetype(detail::dummy_constructor) { }
|
||||||
|
const Return& operator()(const Arg1&, const Arg2&) const {
|
||||||
|
return static_object<Return>::get();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
//===========================================================================
|
||||||
|
// Iterator Archetype Classes
|
||||||
|
|
||||||
|
template <class T, int I = 0>
|
||||||
|
class input_iterator_archetype
|
||||||
|
{
|
||||||
|
private:
|
||||||
|
typedef input_iterator_archetype self;
|
||||||
|
public:
|
||||||
|
typedef std::input_iterator_tag iterator_category;
|
||||||
|
typedef T value_type;
|
||||||
|
struct reference {
|
||||||
|
operator const value_type&() const { return static_object<T>::get(); }
|
||||||
|
};
|
||||||
|
typedef const T* pointer;
|
||||||
|
typedef std::ptrdiff_t difference_type;
|
||||||
|
self& operator=(const self&) { return *this; }
|
||||||
|
bool operator==(const self&) const { return true; }
|
||||||
|
bool operator!=(const self&) const { return true; }
|
||||||
|
reference operator*() const { return reference(); }
|
||||||
|
self& operator++() { return *this; }
|
||||||
|
self operator++(int) { return *this; }
|
||||||
|
};
|
||||||
|
|
||||||
|
template <class T>
|
||||||
|
class input_iterator_archetype_no_proxy
|
||||||
|
{
|
||||||
|
private:
|
||||||
|
typedef input_iterator_archetype_no_proxy self;
|
||||||
|
public:
|
||||||
|
typedef std::input_iterator_tag iterator_category;
|
||||||
|
typedef T value_type;
|
||||||
|
typedef const T& reference;
|
||||||
|
typedef const T* pointer;
|
||||||
|
typedef std::ptrdiff_t difference_type;
|
||||||
|
self& operator=(const self&) { return *this; }
|
||||||
|
bool operator==(const self&) const { return true; }
|
||||||
|
bool operator!=(const self&) const { return true; }
|
||||||
|
reference operator*() const { return static_object<T>::get(); }
|
||||||
|
self& operator++() { return *this; }
|
||||||
|
self operator++(int) { return *this; }
|
||||||
|
};
|
||||||
|
|
||||||
|
template <class T>
|
||||||
|
struct output_proxy {
|
||||||
|
output_proxy& operator=(const T&) { return *this; }
|
||||||
|
};
|
||||||
|
|
||||||
|
template <class T>
|
||||||
|
class output_iterator_archetype
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
typedef output_iterator_archetype self;
|
||||||
|
public:
|
||||||
|
typedef std::output_iterator_tag iterator_category;
|
||||||
|
typedef output_proxy<T> value_type;
|
||||||
|
typedef output_proxy<T> reference;
|
||||||
|
typedef void pointer;
|
||||||
|
typedef void difference_type;
|
||||||
|
output_iterator_archetype(detail::dummy_constructor) { }
|
||||||
|
output_iterator_archetype(const self&) { }
|
||||||
|
self& operator=(const self&) { return *this; }
|
||||||
|
bool operator==(const self&) const { return true; }
|
||||||
|
bool operator!=(const self&) const { return true; }
|
||||||
|
reference operator*() const { return output_proxy<T>(); }
|
||||||
|
self& operator++() { return *this; }
|
||||||
|
self operator++(int) { return *this; }
|
||||||
|
private:
|
||||||
|
output_iterator_archetype() { }
|
||||||
|
};
|
||||||
|
|
||||||
|
template <class T>
|
||||||
|
class input_output_iterator_archetype
|
||||||
|
{
|
||||||
|
private:
|
||||||
|
typedef input_output_iterator_archetype self;
|
||||||
|
struct in_out_tag : public std::input_iterator_tag, public std::output_iterator_tag { };
|
||||||
|
public:
|
||||||
|
typedef in_out_tag iterator_category;
|
||||||
|
typedef T value_type;
|
||||||
|
struct reference {
|
||||||
|
reference& operator=(const T&) { return *this; }
|
||||||
|
operator value_type() { return static_object<T>::get(); }
|
||||||
|
};
|
||||||
|
typedef const T* pointer;
|
||||||
|
typedef std::ptrdiff_t difference_type;
|
||||||
|
input_output_iterator_archetype() { }
|
||||||
|
self& operator=(const self&) { return *this; }
|
||||||
|
bool operator==(const self&) const { return true; }
|
||||||
|
bool operator!=(const self&) const { return true; }
|
||||||
|
reference operator*() const { return reference(); }
|
||||||
|
self& operator++() { return *this; }
|
||||||
|
self operator++(int) { return *this; }
|
||||||
|
};
|
||||||
|
|
||||||
|
template <class T>
|
||||||
|
class forward_iterator_archetype
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
typedef forward_iterator_archetype self;
|
||||||
|
public:
|
||||||
|
typedef std::forward_iterator_tag iterator_category;
|
||||||
|
typedef T value_type;
|
||||||
|
typedef const T& reference;
|
||||||
|
typedef T const* pointer;
|
||||||
|
typedef std::ptrdiff_t difference_type;
|
||||||
|
forward_iterator_archetype() { }
|
||||||
|
self& operator=(const self&) { return *this; }
|
||||||
|
bool operator==(const self&) const { return true; }
|
||||||
|
bool operator!=(const self&) const { return true; }
|
||||||
|
reference operator*() const { return static_object<T>::get(); }
|
||||||
|
self& operator++() { return *this; }
|
||||||
|
self operator++(int) { return *this; }
|
||||||
|
};
|
||||||
|
|
||||||
|
template <class T>
|
||||||
|
class mutable_forward_iterator_archetype
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
typedef mutable_forward_iterator_archetype self;
|
||||||
|
public:
|
||||||
|
typedef std::forward_iterator_tag iterator_category;
|
||||||
|
typedef T value_type;
|
||||||
|
typedef T& reference;
|
||||||
|
typedef T* pointer;
|
||||||
|
typedef std::ptrdiff_t difference_type;
|
||||||
|
mutable_forward_iterator_archetype() { }
|
||||||
|
self& operator=(const self&) { return *this; }
|
||||||
|
bool operator==(const self&) const { return true; }
|
||||||
|
bool operator!=(const self&) const { return true; }
|
||||||
|
reference operator*() const { return static_object<T>::get(); }
|
||||||
|
self& operator++() { return *this; }
|
||||||
|
self operator++(int) { return *this; }
|
||||||
|
};
|
||||||
|
|
||||||
|
template <class T>
|
||||||
|
class bidirectional_iterator_archetype
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
typedef bidirectional_iterator_archetype self;
|
||||||
|
public:
|
||||||
|
typedef std::bidirectional_iterator_tag iterator_category;
|
||||||
|
typedef T value_type;
|
||||||
|
typedef const T& reference;
|
||||||
|
typedef T* pointer;
|
||||||
|
typedef std::ptrdiff_t difference_type;
|
||||||
|
bidirectional_iterator_archetype() { }
|
||||||
|
self& operator=(const self&) { return *this; }
|
||||||
|
bool operator==(const self&) const { return true; }
|
||||||
|
bool operator!=(const self&) const { return true; }
|
||||||
|
reference operator*() const { return static_object<T>::get(); }
|
||||||
|
self& operator++() { return *this; }
|
||||||
|
self operator++(int) { return *this; }
|
||||||
|
self& operator--() { return *this; }
|
||||||
|
self operator--(int) { return *this; }
|
||||||
|
};
|
||||||
|
|
||||||
|
template <class T>
|
||||||
|
class mutable_bidirectional_iterator_archetype
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
typedef mutable_bidirectional_iterator_archetype self;
|
||||||
|
public:
|
||||||
|
typedef std::bidirectional_iterator_tag iterator_category;
|
||||||
|
typedef T value_type;
|
||||||
|
typedef T& reference;
|
||||||
|
typedef T* pointer;
|
||||||
|
typedef std::ptrdiff_t difference_type;
|
||||||
|
mutable_bidirectional_iterator_archetype() { }
|
||||||
|
self& operator=(const self&) { return *this; }
|
||||||
|
bool operator==(const self&) const { return true; }
|
||||||
|
bool operator!=(const self&) const { return true; }
|
||||||
|
reference operator*() const { return static_object<T>::get(); }
|
||||||
|
self& operator++() { return *this; }
|
||||||
|
self operator++(int) { return *this; }
|
||||||
|
self& operator--() { return *this; }
|
||||||
|
self operator--(int) { return *this; }
|
||||||
|
};
|
||||||
|
|
||||||
|
template <class T>
|
||||||
|
class random_access_iterator_archetype
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
typedef random_access_iterator_archetype self;
|
||||||
|
public:
|
||||||
|
typedef std::random_access_iterator_tag iterator_category;
|
||||||
|
typedef T value_type;
|
||||||
|
typedef const T& reference;
|
||||||
|
typedef T* pointer;
|
||||||
|
typedef std::ptrdiff_t difference_type;
|
||||||
|
random_access_iterator_archetype() { }
|
||||||
|
self& operator=(const self&) { return *this; }
|
||||||
|
bool operator==(const self&) const { return true; }
|
||||||
|
bool operator!=(const self&) const { return true; }
|
||||||
|
reference operator*() const { return static_object<T>::get(); }
|
||||||
|
self& operator++() { return *this; }
|
||||||
|
self operator++(int) { return *this; }
|
||||||
|
self& operator--() { return *this; }
|
||||||
|
self operator--(int) { return *this; }
|
||||||
|
reference operator[](difference_type) const
|
||||||
|
{ return static_object<T>::get(); }
|
||||||
|
self& operator+=(difference_type) { return *this; }
|
||||||
|
self& operator-=(difference_type) { return *this; }
|
||||||
|
difference_type operator-(const self&) const
|
||||||
|
{ return difference_type(); }
|
||||||
|
self operator+(difference_type) const { return *this; }
|
||||||
|
self operator-(difference_type) const { return *this; }
|
||||||
|
bool operator<(const self&) const { return true; }
|
||||||
|
bool operator<=(const self&) const { return true; }
|
||||||
|
bool operator>(const self&) const { return true; }
|
||||||
|
bool operator>=(const self&) const { return true; }
|
||||||
|
};
|
||||||
|
template <class T>
|
||||||
|
random_access_iterator_archetype<T>
|
||||||
|
operator+(typename random_access_iterator_archetype<T>::difference_type,
|
||||||
|
const random_access_iterator_archetype<T>& x)
|
||||||
|
{ return x; }
|
||||||
|
|
||||||
|
|
||||||
|
template <class T>
|
||||||
|
class mutable_random_access_iterator_archetype
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
typedef mutable_random_access_iterator_archetype self;
|
||||||
|
public:
|
||||||
|
typedef std::random_access_iterator_tag iterator_category;
|
||||||
|
typedef T value_type;
|
||||||
|
typedef T& reference;
|
||||||
|
typedef T* pointer;
|
||||||
|
typedef std::ptrdiff_t difference_type;
|
||||||
|
mutable_random_access_iterator_archetype() { }
|
||||||
|
self& operator=(const self&) { return *this; }
|
||||||
|
bool operator==(const self&) const { return true; }
|
||||||
|
bool operator!=(const self&) const { return true; }
|
||||||
|
reference operator*() const { return static_object<T>::get(); }
|
||||||
|
self& operator++() { return *this; }
|
||||||
|
self operator++(int) { return *this; }
|
||||||
|
self& operator--() { return *this; }
|
||||||
|
self operator--(int) { return *this; }
|
||||||
|
reference operator[](difference_type) const
|
||||||
|
{ return static_object<T>::get(); }
|
||||||
|
self& operator+=(difference_type) { return *this; }
|
||||||
|
self& operator-=(difference_type) { return *this; }
|
||||||
|
difference_type operator-(const self&) const
|
||||||
|
{ return difference_type(); }
|
||||||
|
self operator+(difference_type) const { return *this; }
|
||||||
|
self operator-(difference_type) const { return *this; }
|
||||||
|
bool operator<(const self&) const { return true; }
|
||||||
|
bool operator<=(const self&) const { return true; }
|
||||||
|
bool operator>(const self&) const { return true; }
|
||||||
|
bool operator>=(const self&) const { return true; }
|
||||||
|
};
|
||||||
|
template <class T>
|
||||||
|
mutable_random_access_iterator_archetype<T>
|
||||||
|
operator+
|
||||||
|
(typename mutable_random_access_iterator_archetype<T>::difference_type,
|
||||||
|
const mutable_random_access_iterator_archetype<T>& x)
|
||||||
|
{ return x; }
|
||||||
|
|
||||||
|
} // namespace boost
|
||||||
|
|
||||||
|
#endif // BOOST_CONCEPT_ARCHETYPES_H
|
File diff suppressed because it is too large
Load Diff
|
@ -1,70 +1,70 @@
|
||||||
// Boost config.hpp configuration header file ------------------------------//
|
// Boost config.hpp configuration header file ------------------------------//
|
||||||
|
|
||||||
// (C) Copyright John Maddock 2002.
|
// (C) Copyright John Maddock 2002.
|
||||||
// Use, modification and distribution are subject to the
|
// Use, modification and distribution are subject to the
|
||||||
// Boost Software License, Version 1.0. (See accompanying file
|
// Boost Software License, Version 1.0. (See accompanying file
|
||||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
|
||||||
// See http://www.boost.org/libs/config for most recent version.
|
// See http://www.boost.org/libs/config for most recent version.
|
||||||
|
|
||||||
// Boost config.hpp policy and rationale documentation has been moved to
|
// Boost config.hpp policy and rationale documentation has been moved to
|
||||||
// http://www.boost.org/libs/config
|
// http://www.boost.org/libs/config
|
||||||
//
|
//
|
||||||
// CAUTION: This file is intended to be completely stable -
|
// CAUTION: This file is intended to be completely stable -
|
||||||
// DO NOT MODIFY THIS FILE!
|
// DO NOT MODIFY THIS FILE!
|
||||||
//
|
//
|
||||||
|
|
||||||
#ifndef BOOST_CONFIG_HPP
|
#ifndef BOOST_CONFIG_HPP
|
||||||
#define BOOST_CONFIG_HPP
|
#define BOOST_CONFIG_HPP
|
||||||
|
|
||||||
// if we don't have a user config, then use the default location:
|
// if we don't have a user config, then use the default location:
|
||||||
#if !defined(BOOST_USER_CONFIG) && !defined(BOOST_NO_USER_CONFIG)
|
#if !defined(BOOST_USER_CONFIG) && !defined(BOOST_NO_USER_CONFIG)
|
||||||
# define BOOST_USER_CONFIG <boost/config/user.hpp>
|
# define BOOST_USER_CONFIG <boost/config/user.hpp>
|
||||||
#endif
|
#endif
|
||||||
// include it first:
|
// include it first:
|
||||||
#ifdef BOOST_USER_CONFIG
|
#ifdef BOOST_USER_CONFIG
|
||||||
# include BOOST_USER_CONFIG
|
# include BOOST_USER_CONFIG
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// if we don't have a compiler config set, try and find one:
|
// if we don't have a compiler config set, try and find one:
|
||||||
#if !defined(BOOST_COMPILER_CONFIG) && !defined(BOOST_NO_COMPILER_CONFIG) && !defined(BOOST_NO_CONFIG)
|
#if !defined(BOOST_COMPILER_CONFIG) && !defined(BOOST_NO_COMPILER_CONFIG) && !defined(BOOST_NO_CONFIG)
|
||||||
# include <boost/config/select_compiler_config.hpp>
|
# include <boost/config/select_compiler_config.hpp>
|
||||||
#endif
|
#endif
|
||||||
// if we have a compiler config, include it now:
|
// if we have a compiler config, include it now:
|
||||||
#ifdef BOOST_COMPILER_CONFIG
|
#ifdef BOOST_COMPILER_CONFIG
|
||||||
# include BOOST_COMPILER_CONFIG
|
# include BOOST_COMPILER_CONFIG
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// if we don't have a std library config set, try and find one:
|
// if we don't have a std library config set, try and find one:
|
||||||
#if !defined(BOOST_STDLIB_CONFIG) && !defined(BOOST_NO_STDLIB_CONFIG) && !defined(BOOST_NO_CONFIG)
|
#if !defined(BOOST_STDLIB_CONFIG) && !defined(BOOST_NO_STDLIB_CONFIG) && !defined(BOOST_NO_CONFIG) && defined(__cplusplus)
|
||||||
# include <boost/config/select_stdlib_config.hpp>
|
# include <boost/config/select_stdlib_config.hpp>
|
||||||
#endif
|
#endif
|
||||||
// if we have a std library config, include it now:
|
// if we have a std library config, include it now:
|
||||||
#ifdef BOOST_STDLIB_CONFIG
|
#ifdef BOOST_STDLIB_CONFIG
|
||||||
# include BOOST_STDLIB_CONFIG
|
# include BOOST_STDLIB_CONFIG
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// if we don't have a platform config set, try and find one:
|
// if we don't have a platform config set, try and find one:
|
||||||
#if !defined(BOOST_PLATFORM_CONFIG) && !defined(BOOST_NO_PLATFORM_CONFIG) && !defined(BOOST_NO_CONFIG)
|
#if !defined(BOOST_PLATFORM_CONFIG) && !defined(BOOST_NO_PLATFORM_CONFIG) && !defined(BOOST_NO_CONFIG)
|
||||||
# include <boost/config/select_platform_config.hpp>
|
# include <boost/config/select_platform_config.hpp>
|
||||||
#endif
|
#endif
|
||||||
// if we have a platform config, include it now:
|
// if we have a platform config, include it now:
|
||||||
#ifdef BOOST_PLATFORM_CONFIG
|
#ifdef BOOST_PLATFORM_CONFIG
|
||||||
# include BOOST_PLATFORM_CONFIG
|
# include BOOST_PLATFORM_CONFIG
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// get config suffix code:
|
// get config suffix code:
|
||||||
#include <boost/config/suffix.hpp>
|
#include <boost/config/suffix.hpp>
|
||||||
|
|
||||||
#endif // BOOST_CONFIG_HPP
|
#endif // BOOST_CONFIG_HPP
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,27 +1,27 @@
|
||||||
// (C) Copyright John Maddock 2003.
|
// (C) Copyright John Maddock 2003.
|
||||||
// Use, modification and distribution are subject to the
|
// Use, modification and distribution are subject to the
|
||||||
// Boost Software License, Version 1.0. (See accompanying file
|
// Boost Software License, Version 1.0. (See accompanying file
|
||||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
|
||||||
// for C++ Builder the following options effect the ABI:
|
// for C++ Builder the following options effect the ABI:
|
||||||
//
|
//
|
||||||
// -b (on or off - effect emum sizes)
|
// -b (on or off - effect emum sizes)
|
||||||
// -Vx (on or off - empty members)
|
// -Vx (on or off - empty members)
|
||||||
// -Ve (on or off - empty base classes)
|
// -Ve (on or off - empty base classes)
|
||||||
// -aX (alignment - 5 options).
|
// -aX (alignment - 5 options).
|
||||||
// -pX (Calling convention - 4 options)
|
// -pX (Calling convention - 4 options)
|
||||||
// -VmX (member pointer size and layout - 5 options)
|
// -VmX (member pointer size and layout - 5 options)
|
||||||
// -VC (on or off, changes name mangling)
|
// -VC (on or off, changes name mangling)
|
||||||
// -Vl (on or off, changes struct layout).
|
// -Vl (on or off, changes struct layout).
|
||||||
|
|
||||||
// In addition the following warnings are sufficiently annoying (and
|
// In addition the following warnings are sufficiently annoying (and
|
||||||
// unfixable) to have them turned off by default:
|
// unfixable) to have them turned off by default:
|
||||||
//
|
//
|
||||||
// 8027 - functions containing [for|while] loops are not expanded inline
|
// 8027 - functions containing [for|while] loops are not expanded inline
|
||||||
// 8026 - functions taking class by value arguments are not expanded inline
|
// 8026 - functions taking class by value arguments are not expanded inline
|
||||||
|
|
||||||
#pragma nopushoptwarn
|
#pragma nopushoptwarn
|
||||||
# pragma option push -a8 -Vx- -Ve- -b- -pc -Vmv -VC- -Vl- -w-8027 -w-8026
|
# pragma option push -a8 -Vx- -Ve- -b- -pc -Vmv -VC- -Vl- -w-8027 -w-8026
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
// (C) Copyright John Maddock 2003.
|
// (C) Copyright John Maddock 2003.
|
||||||
// Use, modification and distribution are subject to the
|
// Use, modification and distribution are subject to the
|
||||||
// Boost Software License, Version 1.0. (See accompanying file
|
// Boost Software License, Version 1.0. (See accompanying file
|
||||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
|
||||||
# pragma option pop
|
# pragma option pop
|
||||||
#pragma nopushoptwarn
|
#pragma nopushoptwarn
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,22 +1,22 @@
|
||||||
// (C) Copyright John Maddock 2003.
|
// (C) Copyright John Maddock 2003.
|
||||||
// Use, modification and distribution are subject to the
|
// Use, modification and distribution are subject to the
|
||||||
// Boost Software License, Version 1.0. (See accompanying file
|
// Boost Software License, Version 1.0. (See accompanying file
|
||||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
|
||||||
//
|
//
|
||||||
// Boost binaries are built with the compiler's default ABI settings,
|
// Boost binaries are built with the compiler's default ABI settings,
|
||||||
// if the user changes their default alignment in the VS IDE then their
|
// if the user changes their default alignment in the VS IDE then their
|
||||||
// code will no longer be binary compatible with the bjam built binaries
|
// code will no longer be binary compatible with the bjam built binaries
|
||||||
// unless this header is included to force Boost code into a consistent ABI.
|
// unless this header is included to force Boost code into a consistent ABI.
|
||||||
//
|
//
|
||||||
// Note that inclusion of this header is only necessary for libraries with
|
// Note that inclusion of this header is only necessary for libraries with
|
||||||
// separate source, header only libraries DO NOT need this as long as all
|
// separate source, header only libraries DO NOT need this as long as all
|
||||||
// translation units are built with the same options.
|
// translation units are built with the same options.
|
||||||
//
|
//
|
||||||
#if defined(_M_X64)
|
#if defined(_M_X64)
|
||||||
# pragma pack(push,16)
|
# pragma pack(push,16)
|
||||||
#else
|
#else
|
||||||
# pragma pack(push,8)
|
# pragma pack(push,8)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
// (C) Copyright John Maddock 2003.
|
// (C) Copyright John Maddock 2003.
|
||||||
// Use, modification and distribution are subject to the
|
// Use, modification and distribution are subject to the
|
||||||
// Boost Software License, Version 1.0. (See accompanying file
|
// Boost Software License, Version 1.0. (See accompanying file
|
||||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
|
||||||
#pragma pack(pop)
|
#pragma pack(pop)
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,25 +1,25 @@
|
||||||
// abi_prefix header -------------------------------------------------------//
|
// abi_prefix header -------------------------------------------------------//
|
||||||
|
|
||||||
// (c) Copyright John Maddock 2003
|
// (c) Copyright John Maddock 2003
|
||||||
|
|
||||||
// Use, modification and distribution are subject to the Boost Software License,
|
// Use, modification and distribution are subject to the Boost Software License,
|
||||||
// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
|
// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
|
||||||
// http://www.boost.org/LICENSE_1_0.txt).
|
// http://www.boost.org/LICENSE_1_0.txt).
|
||||||
|
|
||||||
#ifndef BOOST_CONFIG_ABI_PREFIX_HPP
|
#ifndef BOOST_CONFIG_ABI_PREFIX_HPP
|
||||||
# define BOOST_CONFIG_ABI_PREFIX_HPP
|
# define BOOST_CONFIG_ABI_PREFIX_HPP
|
||||||
#else
|
#else
|
||||||
# error double inclusion of header boost/config/abi_prefix.hpp is an error
|
# error double inclusion of header boost/config/abi_prefix.hpp is an error
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include <boost/config.hpp>
|
#include <boost/config.hpp>
|
||||||
|
|
||||||
// this must occur after all other includes and before any code appears:
|
// this must occur after all other includes and before any code appears:
|
||||||
#ifdef BOOST_HAS_ABI_HEADERS
|
#ifdef BOOST_HAS_ABI_HEADERS
|
||||||
# include BOOST_ABI_PREFIX
|
# include BOOST_ABI_PREFIX
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined( __BORLANDC__ )
|
#if defined( __BORLANDC__ )
|
||||||
#pragma nopushoptwarn
|
#pragma nopushoptwarn
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -1,27 +1,27 @@
|
||||||
// abi_sufffix header -------------------------------------------------------//
|
// abi_sufffix header -------------------------------------------------------//
|
||||||
|
|
||||||
// (c) Copyright John Maddock 2003
|
// (c) Copyright John Maddock 2003
|
||||||
|
|
||||||
// Use, modification and distribution are subject to the Boost Software License,
|
// Use, modification and distribution are subject to the Boost Software License,
|
||||||
// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
|
// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
|
||||||
// http://www.boost.org/LICENSE_1_0.txt).
|
// http://www.boost.org/LICENSE_1_0.txt).
|
||||||
|
|
||||||
// This header should be #included AFTER code that was preceded by a #include
|
// This header should be #included AFTER code that was preceded by a #include
|
||||||
// <boost/config/abi_prefix.hpp>.
|
// <boost/config/abi_prefix.hpp>.
|
||||||
|
|
||||||
#ifndef BOOST_CONFIG_ABI_PREFIX_HPP
|
#ifndef BOOST_CONFIG_ABI_PREFIX_HPP
|
||||||
# error Header boost/config/abi_suffix.hpp must only be used after boost/config/abi_prefix.hpp
|
# error Header boost/config/abi_suffix.hpp must only be used after boost/config/abi_prefix.hpp
|
||||||
#else
|
#else
|
||||||
# undef BOOST_CONFIG_ABI_PREFIX_HPP
|
# undef BOOST_CONFIG_ABI_PREFIX_HPP
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// the suffix header occurs after all of our code:
|
// the suffix header occurs after all of our code:
|
||||||
#ifdef BOOST_HAS_ABI_HEADERS
|
#ifdef BOOST_HAS_ABI_HEADERS
|
||||||
# include BOOST_ABI_SUFFIX
|
# include BOOST_ABI_SUFFIX
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined( __BORLANDC__ )
|
#if defined( __BORLANDC__ )
|
||||||
#pragma nopushoptwarn
|
#pragma nopushoptwarn
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,420 +1,422 @@
|
||||||
// (C) Copyright John Maddock 2003.
|
// (C) Copyright John Maddock 2003.
|
||||||
// Use, modification and distribution are subject to the
|
// Use, modification and distribution are subject to the
|
||||||
// Boost Software License, Version 1.0. (See accompanying file
|
// Boost Software License, Version 1.0. (See accompanying file
|
||||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* LOCATION: see http://www.boost.org for most recent version.
|
* LOCATION: see http://www.boost.org for most recent version.
|
||||||
* FILE auto_link.hpp
|
* FILE auto_link.hpp
|
||||||
* VERSION see <boost/version.hpp>
|
* VERSION see <boost/version.hpp>
|
||||||
* DESCRIPTION: Automatic library inclusion for Borland/Microsoft compilers.
|
* DESCRIPTION: Automatic library inclusion for Borland/Microsoft compilers.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*************************************************************************
|
/*************************************************************************
|
||||||
|
|
||||||
USAGE:
|
USAGE:
|
||||||
~~~~~~
|
~~~~~~
|
||||||
|
|
||||||
Before including this header you must define one or more of define the following macros:
|
Before including this header you must define one or more of define the following macros:
|
||||||
|
|
||||||
BOOST_LIB_NAME: Required: A string containing the basename of the library,
|
BOOST_LIB_NAME: Required: A string containing the basename of the library,
|
||||||
for example boost_regex.
|
for example boost_regex.
|
||||||
BOOST_LIB_TOOLSET: Optional: the base name of the toolset.
|
BOOST_LIB_TOOLSET: Optional: the base name of the toolset.
|
||||||
BOOST_DYN_LINK: Optional: when set link to dll rather than static library.
|
BOOST_DYN_LINK: Optional: when set link to dll rather than static library.
|
||||||
BOOST_LIB_DIAGNOSTIC: Optional: when set the header will print out the name
|
BOOST_LIB_DIAGNOSTIC: Optional: when set the header will print out the name
|
||||||
of the library selected (useful for debugging).
|
of the library selected (useful for debugging).
|
||||||
BOOST_AUTO_LINK_NOMANGLE: Specifies that we should link to BOOST_LIB_NAME.lib,
|
BOOST_AUTO_LINK_NOMANGLE: Specifies that we should link to BOOST_LIB_NAME.lib,
|
||||||
rather than a mangled-name version.
|
rather than a mangled-name version.
|
||||||
BOOST_AUTO_LINK_TAGGED: Specifies that we link to libraries built with the --layout=tagged option.
|
BOOST_AUTO_LINK_TAGGED: Specifies that we link to libraries built with the --layout=tagged option.
|
||||||
This is essentially the same as the default name-mangled version, but without
|
This is essentially the same as the default name-mangled version, but without
|
||||||
the compiler name and version, or the Boost version. Just the build options.
|
the compiler name and version, or the Boost version. Just the build options.
|
||||||
|
|
||||||
These macros will be undef'ed at the end of the header, further this header
|
These macros will be undef'ed at the end of the header, further this header
|
||||||
has no include guards - so be sure to include it only once from your library!
|
has no include guards - so be sure to include it only once from your library!
|
||||||
|
|
||||||
Algorithm:
|
Algorithm:
|
||||||
~~~~~~~~~~
|
~~~~~~~~~~
|
||||||
|
|
||||||
Libraries for Borland and Microsoft compilers are automatically
|
Libraries for Borland and Microsoft compilers are automatically
|
||||||
selected here, the name of the lib is selected according to the following
|
selected here, the name of the lib is selected according to the following
|
||||||
formula:
|
formula:
|
||||||
|
|
||||||
BOOST_LIB_PREFIX
|
BOOST_LIB_PREFIX
|
||||||
+ BOOST_LIB_NAME
|
+ BOOST_LIB_NAME
|
||||||
+ "_"
|
+ "_"
|
||||||
+ BOOST_LIB_TOOLSET
|
+ BOOST_LIB_TOOLSET
|
||||||
+ BOOST_LIB_THREAD_OPT
|
+ BOOST_LIB_THREAD_OPT
|
||||||
+ BOOST_LIB_RT_OPT
|
+ BOOST_LIB_RT_OPT
|
||||||
"-"
|
"-"
|
||||||
+ BOOST_LIB_VERSION
|
+ BOOST_LIB_VERSION
|
||||||
|
|
||||||
These are defined as:
|
These are defined as:
|
||||||
|
|
||||||
BOOST_LIB_PREFIX: "lib" for static libraries otherwise "".
|
BOOST_LIB_PREFIX: "lib" for static libraries otherwise "".
|
||||||
|
|
||||||
BOOST_LIB_NAME: The base name of the lib ( for example boost_regex).
|
BOOST_LIB_NAME: The base name of the lib ( for example boost_regex).
|
||||||
|
|
||||||
BOOST_LIB_TOOLSET: The compiler toolset name (vc6, vc7, bcb5 etc).
|
BOOST_LIB_TOOLSET: The compiler toolset name (vc6, vc7, bcb5 etc).
|
||||||
|
|
||||||
BOOST_LIB_THREAD_OPT: "-mt" for multithread builds, otherwise nothing.
|
BOOST_LIB_THREAD_OPT: "-mt" for multithread builds, otherwise nothing.
|
||||||
|
|
||||||
BOOST_LIB_RT_OPT: A suffix that indicates the runtime library used,
|
BOOST_LIB_RT_OPT: A suffix that indicates the runtime library used,
|
||||||
contains one or more of the following letters after
|
contains one or more of the following letters after
|
||||||
a hiphen:
|
a hiphen:
|
||||||
|
|
||||||
s static runtime (dynamic if not present).
|
s static runtime (dynamic if not present).
|
||||||
g debug/diagnostic runtime (release if not present).
|
g debug/diagnostic runtime (release if not present).
|
||||||
y Python debug/diagnostic runtime (release if not present).
|
y Python debug/diagnostic runtime (release if not present).
|
||||||
d debug build (release if not present).
|
d debug build (release if not present).
|
||||||
g debug/diagnostic runtime (release if not present).
|
g debug/diagnostic runtime (release if not present).
|
||||||
p STLPort Build.
|
p STLPort Build.
|
||||||
|
|
||||||
BOOST_LIB_VERSION: The Boost version, in the form x_y, for Boost version x.y.
|
BOOST_LIB_VERSION: The Boost version, in the form x_y, for Boost version x.y.
|
||||||
|
|
||||||
|
|
||||||
***************************************************************************/
|
***************************************************************************/
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
# ifndef BOOST_CONFIG_HPP
|
# ifndef BOOST_CONFIG_HPP
|
||||||
# include <boost/config.hpp>
|
# include <boost/config.hpp>
|
||||||
# endif
|
# endif
|
||||||
#elif defined(_MSC_VER) && !defined(__MWERKS__) && !defined(__EDG_VERSION__)
|
#elif defined(_MSC_VER) && !defined(__MWERKS__) && !defined(__EDG_VERSION__)
|
||||||
//
|
//
|
||||||
// C language compatability (no, honestly)
|
// C language compatability (no, honestly)
|
||||||
//
|
//
|
||||||
# define BOOST_MSVC _MSC_VER
|
# define BOOST_MSVC _MSC_VER
|
||||||
# define BOOST_STRINGIZE(X) BOOST_DO_STRINGIZE(X)
|
# define BOOST_STRINGIZE(X) BOOST_DO_STRINGIZE(X)
|
||||||
# define BOOST_DO_STRINGIZE(X) #X
|
# define BOOST_DO_STRINGIZE(X) #X
|
||||||
#endif
|
#endif
|
||||||
//
|
//
|
||||||
// Only include what follows for known and supported compilers:
|
// Only include what follows for known and supported compilers:
|
||||||
//
|
//
|
||||||
#if defined(BOOST_MSVC) \
|
#if defined(BOOST_MSVC) \
|
||||||
|| defined(__BORLANDC__) \
|
|| defined(__BORLANDC__) \
|
||||||
|| (defined(__MWERKS__) && defined(_WIN32) && (__MWERKS__ >= 0x3000)) \
|
|| (defined(__MWERKS__) && defined(_WIN32) && (__MWERKS__ >= 0x3000)) \
|
||||||
|| (defined(__ICL) && defined(_MSC_EXTENSIONS) && (_MSC_VER >= 1200))
|
|| (defined(__ICL) && defined(_MSC_EXTENSIONS) && (_MSC_VER >= 1200))
|
||||||
|
|
||||||
#ifndef BOOST_VERSION_HPP
|
#ifndef BOOST_VERSION_HPP
|
||||||
# include <boost/version.hpp>
|
# include <boost/version.hpp>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef BOOST_LIB_NAME
|
#ifndef BOOST_LIB_NAME
|
||||||
# error "Macro BOOST_LIB_NAME not set (internal error)"
|
# error "Macro BOOST_LIB_NAME not set (internal error)"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//
|
//
|
||||||
// error check:
|
// error check:
|
||||||
//
|
//
|
||||||
#if defined(__MSVC_RUNTIME_CHECKS) && !defined(_DEBUG)
|
#if defined(__MSVC_RUNTIME_CHECKS) && !defined(_DEBUG)
|
||||||
# pragma message("Using the /RTC option without specifying a debug runtime will lead to linker errors")
|
# pragma message("Using the /RTC option without specifying a debug runtime will lead to linker errors")
|
||||||
# pragma message("Hint: go to the code generation options and switch to one of the debugging runtimes")
|
# pragma message("Hint: go to the code generation options and switch to one of the debugging runtimes")
|
||||||
# error "Incompatible build options"
|
# error "Incompatible build options"
|
||||||
#endif
|
#endif
|
||||||
//
|
//
|
||||||
// select toolset if not defined already:
|
// select toolset if not defined already:
|
||||||
//
|
//
|
||||||
#ifndef BOOST_LIB_TOOLSET
|
#ifndef BOOST_LIB_TOOLSET
|
||||||
// Note: no compilers before 1200 are supported
|
// Note: no compilers before 1200 are supported
|
||||||
#if defined(BOOST_MSVC) && (BOOST_MSVC < 1300)
|
#if defined(BOOST_MSVC) && (BOOST_MSVC < 1300)
|
||||||
|
|
||||||
# ifdef UNDER_CE
|
# ifdef UNDER_CE
|
||||||
// vc6:
|
// vc6:
|
||||||
# define BOOST_LIB_TOOLSET "evc4"
|
# define BOOST_LIB_TOOLSET "evc4"
|
||||||
# else
|
# else
|
||||||
// vc6:
|
// vc6:
|
||||||
# define BOOST_LIB_TOOLSET "vc6"
|
# define BOOST_LIB_TOOLSET "vc6"
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
#elif defined(BOOST_MSVC) && (BOOST_MSVC == 1300)
|
#elif defined(BOOST_MSVC) && (BOOST_MSVC == 1300)
|
||||||
|
|
||||||
// vc7:
|
// vc7:
|
||||||
# define BOOST_LIB_TOOLSET "vc7"
|
# define BOOST_LIB_TOOLSET "vc7"
|
||||||
|
|
||||||
#elif defined(BOOST_MSVC) && (BOOST_MSVC == 1310)
|
#elif defined(BOOST_MSVC) && (BOOST_MSVC == 1310)
|
||||||
|
|
||||||
// vc71:
|
// vc71:
|
||||||
# define BOOST_LIB_TOOLSET "vc71"
|
# define BOOST_LIB_TOOLSET "vc71"
|
||||||
|
|
||||||
#elif defined(BOOST_MSVC) && (BOOST_MSVC == 1400)
|
#elif defined(BOOST_MSVC) && (BOOST_MSVC == 1400)
|
||||||
|
|
||||||
// vc80:
|
// vc80:
|
||||||
# define BOOST_LIB_TOOLSET "vc80"
|
# define BOOST_LIB_TOOLSET "vc80"
|
||||||
|
|
||||||
#elif defined(BOOST_MSVC) && (BOOST_MSVC == 1500)
|
#elif defined(BOOST_MSVC) && (BOOST_MSVC == 1500)
|
||||||
|
|
||||||
// vc90:
|
// vc90:
|
||||||
# define BOOST_LIB_TOOLSET "vc90"
|
# define BOOST_LIB_TOOLSET "vc90"
|
||||||
|
|
||||||
#elif defined(BOOST_MSVC) && (BOOST_MSVC >= 1600)
|
#elif defined(BOOST_MSVC) && (BOOST_MSVC == 1600)
|
||||||
|
|
||||||
// vc10:
|
// vc10:
|
||||||
# define BOOST_LIB_TOOLSET "vc100"
|
# define BOOST_LIB_TOOLSET "vc100"
|
||||||
|
|
||||||
#elif defined(__BORLANDC__)
|
#elif defined(BOOST_MSVC) && (BOOST_MSVC >= 1700)
|
||||||
|
|
||||||
// CBuilder 6:
|
// vc11:
|
||||||
# define BOOST_LIB_TOOLSET "bcb"
|
# define BOOST_LIB_TOOLSET "vc110"
|
||||||
|
|
||||||
#elif defined(__ICL)
|
#elif defined(__BORLANDC__)
|
||||||
|
|
||||||
// Intel C++, no version number:
|
// CBuilder 6:
|
||||||
# define BOOST_LIB_TOOLSET "iw"
|
# define BOOST_LIB_TOOLSET "bcb"
|
||||||
|
|
||||||
#elif defined(__MWERKS__) && (__MWERKS__ <= 0x31FF )
|
#elif defined(__ICL)
|
||||||
|
|
||||||
// Metrowerks CodeWarrior 8.x
|
// Intel C++, no version number:
|
||||||
# define BOOST_LIB_TOOLSET "cw8"
|
# define BOOST_LIB_TOOLSET "iw"
|
||||||
|
|
||||||
#elif defined(__MWERKS__) && (__MWERKS__ <= 0x32FF )
|
#elif defined(__MWERKS__) && (__MWERKS__ <= 0x31FF )
|
||||||
|
|
||||||
// Metrowerks CodeWarrior 9.x
|
// Metrowerks CodeWarrior 8.x
|
||||||
# define BOOST_LIB_TOOLSET "cw9"
|
# define BOOST_LIB_TOOLSET "cw8"
|
||||||
|
|
||||||
#endif
|
#elif defined(__MWERKS__) && (__MWERKS__ <= 0x32FF )
|
||||||
#endif // BOOST_LIB_TOOLSET
|
|
||||||
|
// Metrowerks CodeWarrior 9.x
|
||||||
//
|
# define BOOST_LIB_TOOLSET "cw9"
|
||||||
// select thread opt:
|
|
||||||
//
|
#endif
|
||||||
#if defined(_MT) || defined(__MT__)
|
#endif // BOOST_LIB_TOOLSET
|
||||||
# define BOOST_LIB_THREAD_OPT "-mt"
|
|
||||||
#else
|
//
|
||||||
# define BOOST_LIB_THREAD_OPT
|
// select thread opt:
|
||||||
#endif
|
//
|
||||||
|
#if defined(_MT) || defined(__MT__)
|
||||||
#if defined(_MSC_VER) || defined(__MWERKS__)
|
# define BOOST_LIB_THREAD_OPT "-mt"
|
||||||
|
#else
|
||||||
# ifdef _DLL
|
# define BOOST_LIB_THREAD_OPT
|
||||||
|
#endif
|
||||||
# if (defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION)) && (defined(_STLP_OWN_IOSTREAMS) || defined(__STL_OWN_IOSTREAMS))
|
|
||||||
|
#if defined(_MSC_VER) || defined(__MWERKS__)
|
||||||
# if defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG))\
|
|
||||||
&& defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
|
# ifdef _DLL
|
||||||
# define BOOST_LIB_RT_OPT "-gydp"
|
|
||||||
# elif defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG))
|
# if (defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION)) && (defined(_STLP_OWN_IOSTREAMS) || defined(__STL_OWN_IOSTREAMS))
|
||||||
# define BOOST_LIB_RT_OPT "-gdp"
|
|
||||||
# elif defined(_DEBUG)\
|
# if defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG))\
|
||||||
&& defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
|
&& defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
|
||||||
# define BOOST_LIB_RT_OPT "-gydp"
|
# define BOOST_LIB_RT_OPT "-gydp"
|
||||||
# pragma message("warning: STLPort debug versions are built with /D_STLP_DEBUG=1")
|
# elif defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG))
|
||||||
# error "Build options aren't compatible with pre-built libraries"
|
# define BOOST_LIB_RT_OPT "-gdp"
|
||||||
# elif defined(_DEBUG)
|
# elif defined(_DEBUG)\
|
||||||
# define BOOST_LIB_RT_OPT "-gdp"
|
&& defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
|
||||||
# pragma message("warning: STLPort debug versions are built with /D_STLP_DEBUG=1")
|
# define BOOST_LIB_RT_OPT "-gydp"
|
||||||
# error "Build options aren't compatible with pre-built libraries"
|
# pragma message("warning: STLPort debug versions are built with /D_STLP_DEBUG=1")
|
||||||
# else
|
# error "Build options aren't compatible with pre-built libraries"
|
||||||
# define BOOST_LIB_RT_OPT "-p"
|
# elif defined(_DEBUG)
|
||||||
# endif
|
# define BOOST_LIB_RT_OPT "-gdp"
|
||||||
|
# pragma message("warning: STLPort debug versions are built with /D_STLP_DEBUG=1")
|
||||||
# elif defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION)
|
# error "Build options aren't compatible with pre-built libraries"
|
||||||
|
# else
|
||||||
# if defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG))\
|
# define BOOST_LIB_RT_OPT "-p"
|
||||||
&& defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
|
# endif
|
||||||
# define BOOST_LIB_RT_OPT "-gydpn"
|
|
||||||
# elif defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG))
|
# elif defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION)
|
||||||
# define BOOST_LIB_RT_OPT "-gdpn"
|
|
||||||
# elif defined(_DEBUG)\
|
# if defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG))\
|
||||||
&& defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
|
&& defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
|
||||||
# define BOOST_LIB_RT_OPT "-gydpn"
|
# define BOOST_LIB_RT_OPT "-gydpn"
|
||||||
# pragma message("warning: STLPort debug versions are built with /D_STLP_DEBUG=1")
|
# elif defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG))
|
||||||
# error "Build options aren't compatible with pre-built libraries"
|
# define BOOST_LIB_RT_OPT "-gdpn"
|
||||||
# elif defined(_DEBUG)
|
# elif defined(_DEBUG)\
|
||||||
# define BOOST_LIB_RT_OPT "-gdpn"
|
&& defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
|
||||||
# pragma message("warning: STLPort debug versions are built with /D_STLP_DEBUG=1")
|
# define BOOST_LIB_RT_OPT "-gydpn"
|
||||||
# error "Build options aren't compatible with pre-built libraries"
|
# pragma message("warning: STLPort debug versions are built with /D_STLP_DEBUG=1")
|
||||||
# else
|
# error "Build options aren't compatible with pre-built libraries"
|
||||||
# define BOOST_LIB_RT_OPT "-pn"
|
# elif defined(_DEBUG)
|
||||||
# endif
|
# define BOOST_LIB_RT_OPT "-gdpn"
|
||||||
|
# pragma message("warning: STLPort debug versions are built with /D_STLP_DEBUG=1")
|
||||||
# else
|
# error "Build options aren't compatible with pre-built libraries"
|
||||||
|
# else
|
||||||
# if defined(_DEBUG) && defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
|
# define BOOST_LIB_RT_OPT "-pn"
|
||||||
# define BOOST_LIB_RT_OPT "-gyd"
|
# endif
|
||||||
# elif defined(_DEBUG)
|
|
||||||
# define BOOST_LIB_RT_OPT "-gd"
|
# else
|
||||||
# else
|
|
||||||
# define BOOST_LIB_RT_OPT
|
# if defined(_DEBUG) && defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
|
||||||
# endif
|
# define BOOST_LIB_RT_OPT "-gyd"
|
||||||
|
# elif defined(_DEBUG)
|
||||||
# endif
|
# define BOOST_LIB_RT_OPT "-gd"
|
||||||
|
# else
|
||||||
# else
|
# define BOOST_LIB_RT_OPT
|
||||||
|
# endif
|
||||||
# if (defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION)) && (defined(_STLP_OWN_IOSTREAMS) || defined(__STL_OWN_IOSTREAMS))
|
|
||||||
|
# endif
|
||||||
# if defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG))\
|
|
||||||
&& defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
|
# else
|
||||||
# define BOOST_LIB_RT_OPT "-sgydp"
|
|
||||||
# elif defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG))
|
# if (defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION)) && (defined(_STLP_OWN_IOSTREAMS) || defined(__STL_OWN_IOSTREAMS))
|
||||||
# define BOOST_LIB_RT_OPT "-sgdp"
|
|
||||||
# elif defined(_DEBUG)\
|
# if defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG))\
|
||||||
&& defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
|
&& defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
|
||||||
# define BOOST_LIB_RT_OPT "-sgydp"
|
# define BOOST_LIB_RT_OPT "-sgydp"
|
||||||
# pragma message("warning: STLPort debug versions are built with /D_STLP_DEBUG=1")
|
# elif defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG))
|
||||||
# error "Build options aren't compatible with pre-built libraries"
|
# define BOOST_LIB_RT_OPT "-sgdp"
|
||||||
# elif defined(_DEBUG)
|
# elif defined(_DEBUG)\
|
||||||
# define BOOST_LIB_RT_OPT "-sgdp"
|
&& defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
|
||||||
# pragma message("warning: STLPort debug versions are built with /D_STLP_DEBUG=1")
|
# define BOOST_LIB_RT_OPT "-sgydp"
|
||||||
# error "Build options aren't compatible with pre-built libraries"
|
# pragma message("warning: STLPort debug versions are built with /D_STLP_DEBUG=1")
|
||||||
# else
|
# error "Build options aren't compatible with pre-built libraries"
|
||||||
# define BOOST_LIB_RT_OPT "-sp"
|
# elif defined(_DEBUG)
|
||||||
# endif
|
# define BOOST_LIB_RT_OPT "-sgdp"
|
||||||
|
# pragma message("warning: STLPort debug versions are built with /D_STLP_DEBUG=1")
|
||||||
# elif defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION)
|
# error "Build options aren't compatible with pre-built libraries"
|
||||||
|
# else
|
||||||
# if defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG))\
|
# define BOOST_LIB_RT_OPT "-sp"
|
||||||
&& defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
|
# endif
|
||||||
# define BOOST_LIB_RT_OPT "-sgydpn"
|
|
||||||
# elif defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG))
|
# elif defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION)
|
||||||
# define BOOST_LIB_RT_OPT "-sgdpn"
|
|
||||||
# elif defined(_DEBUG)\
|
# if defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG))\
|
||||||
&& defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
|
&& defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
|
||||||
# define BOOST_LIB_RT_OPT "-sgydpn"
|
# define BOOST_LIB_RT_OPT "-sgydpn"
|
||||||
# pragma message("warning: STLPort debug versions are built with /D_STLP_DEBUG=1")
|
# elif defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG))
|
||||||
# error "Build options aren't compatible with pre-built libraries"
|
# define BOOST_LIB_RT_OPT "-sgdpn"
|
||||||
# elif defined(_DEBUG)
|
# elif defined(_DEBUG)\
|
||||||
# define BOOST_LIB_RT_OPT "-sgdpn"
|
&& defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
|
||||||
# pragma message("warning: STLPort debug versions are built with /D_STLP_DEBUG=1")
|
# define BOOST_LIB_RT_OPT "-sgydpn"
|
||||||
# error "Build options aren't compatible with pre-built libraries"
|
# pragma message("warning: STLPort debug versions are built with /D_STLP_DEBUG=1")
|
||||||
# else
|
# error "Build options aren't compatible with pre-built libraries"
|
||||||
# define BOOST_LIB_RT_OPT "-spn"
|
# elif defined(_DEBUG)
|
||||||
# endif
|
# define BOOST_LIB_RT_OPT "-sgdpn"
|
||||||
|
# pragma message("warning: STLPort debug versions are built with /D_STLP_DEBUG=1")
|
||||||
# else
|
# error "Build options aren't compatible with pre-built libraries"
|
||||||
|
# else
|
||||||
# if defined(_DEBUG)\
|
# define BOOST_LIB_RT_OPT "-spn"
|
||||||
&& defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
|
# endif
|
||||||
# define BOOST_LIB_RT_OPT "-sgyd"
|
|
||||||
# elif defined(_DEBUG)
|
# else
|
||||||
# define BOOST_LIB_RT_OPT "-sgd"
|
|
||||||
# else
|
# if defined(_DEBUG)\
|
||||||
# define BOOST_LIB_RT_OPT "-s"
|
&& defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
|
||||||
# endif
|
# define BOOST_LIB_RT_OPT "-sgyd"
|
||||||
|
# elif defined(_DEBUG)
|
||||||
# endif
|
# define BOOST_LIB_RT_OPT "-sgd"
|
||||||
|
# else
|
||||||
# endif
|
# define BOOST_LIB_RT_OPT "-s"
|
||||||
|
# endif
|
||||||
#elif defined(__BORLANDC__)
|
|
||||||
|
# endif
|
||||||
//
|
|
||||||
// figure out whether we want the debug builds or not:
|
# endif
|
||||||
//
|
|
||||||
#if __BORLANDC__ > 0x561
|
#elif defined(__BORLANDC__)
|
||||||
#pragma defineonoption BOOST_BORLAND_DEBUG -v
|
|
||||||
#endif
|
//
|
||||||
//
|
// figure out whether we want the debug builds or not:
|
||||||
// sanity check:
|
//
|
||||||
//
|
#if __BORLANDC__ > 0x561
|
||||||
#if defined(__STL_DEBUG) || defined(_STLP_DEBUG)
|
#pragma defineonoption BOOST_BORLAND_DEBUG -v
|
||||||
#error "Pre-built versions of the Boost libraries are not provided in STLPort-debug form"
|
#endif
|
||||||
#endif
|
//
|
||||||
|
// sanity check:
|
||||||
# ifdef _RTLDLL
|
//
|
||||||
|
#if defined(__STL_DEBUG) || defined(_STLP_DEBUG)
|
||||||
# if defined(BOOST_BORLAND_DEBUG)\
|
#error "Pre-built versions of the Boost libraries are not provided in STLPort-debug form"
|
||||||
&& defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
|
#endif
|
||||||
# define BOOST_LIB_RT_OPT "-yd"
|
|
||||||
# elif defined(BOOST_BORLAND_DEBUG)
|
# ifdef _RTLDLL
|
||||||
# define BOOST_LIB_RT_OPT "-d"
|
|
||||||
# elif defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
|
# if defined(BOOST_BORLAND_DEBUG)\
|
||||||
# define BOOST_LIB_RT_OPT -y
|
&& defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
|
||||||
# else
|
# define BOOST_LIB_RT_OPT "-yd"
|
||||||
# define BOOST_LIB_RT_OPT
|
# elif defined(BOOST_BORLAND_DEBUG)
|
||||||
# endif
|
# define BOOST_LIB_RT_OPT "-d"
|
||||||
|
# elif defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
|
||||||
# else
|
# define BOOST_LIB_RT_OPT -y
|
||||||
|
# else
|
||||||
# if defined(BOOST_BORLAND_DEBUG)\
|
# define BOOST_LIB_RT_OPT
|
||||||
&& defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
|
# endif
|
||||||
# define BOOST_LIB_RT_OPT "-syd"
|
|
||||||
# elif defined(BOOST_BORLAND_DEBUG)
|
# else
|
||||||
# define BOOST_LIB_RT_OPT "-sd"
|
|
||||||
# elif defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
|
# if defined(BOOST_BORLAND_DEBUG)\
|
||||||
# define BOOST_LIB_RT_OPT "-sy"
|
&& defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
|
||||||
# else
|
# define BOOST_LIB_RT_OPT "-syd"
|
||||||
# define BOOST_LIB_RT_OPT "-s"
|
# elif defined(BOOST_BORLAND_DEBUG)
|
||||||
# endif
|
# define BOOST_LIB_RT_OPT "-sd"
|
||||||
|
# elif defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
|
||||||
# endif
|
# define BOOST_LIB_RT_OPT "-sy"
|
||||||
|
# else
|
||||||
#endif
|
# define BOOST_LIB_RT_OPT "-s"
|
||||||
|
# endif
|
||||||
//
|
|
||||||
// select linkage opt:
|
# endif
|
||||||
//
|
|
||||||
#if (defined(_DLL) || defined(_RTLDLL)) && defined(BOOST_DYN_LINK)
|
#endif
|
||||||
# define BOOST_LIB_PREFIX
|
|
||||||
#elif defined(BOOST_DYN_LINK)
|
//
|
||||||
# error "Mixing a dll boost library with a static runtime is a really bad idea..."
|
// select linkage opt:
|
||||||
#else
|
//
|
||||||
# define BOOST_LIB_PREFIX "lib"
|
#if (defined(_DLL) || defined(_RTLDLL)) && defined(BOOST_DYN_LINK)
|
||||||
#endif
|
# define BOOST_LIB_PREFIX
|
||||||
|
#elif defined(BOOST_DYN_LINK)
|
||||||
//
|
# error "Mixing a dll boost library with a static runtime is a really bad idea..."
|
||||||
// now include the lib:
|
#else
|
||||||
//
|
# define BOOST_LIB_PREFIX "lib"
|
||||||
#if defined(BOOST_LIB_NAME) \
|
#endif
|
||||||
&& defined(BOOST_LIB_PREFIX) \
|
|
||||||
&& defined(BOOST_LIB_TOOLSET) \
|
//
|
||||||
&& defined(BOOST_LIB_THREAD_OPT) \
|
// now include the lib:
|
||||||
&& defined(BOOST_LIB_RT_OPT) \
|
//
|
||||||
&& defined(BOOST_LIB_VERSION)
|
#if defined(BOOST_LIB_NAME) \
|
||||||
|
&& defined(BOOST_LIB_PREFIX) \
|
||||||
#ifdef BOOST_AUTO_LINK_TAGGED
|
&& defined(BOOST_LIB_TOOLSET) \
|
||||||
# pragma comment(lib, BOOST_LIB_PREFIX BOOST_STRINGIZE(BOOST_LIB_NAME) BOOST_LIB_THREAD_OPT BOOST_LIB_RT_OPT ".lib")
|
&& defined(BOOST_LIB_THREAD_OPT) \
|
||||||
# ifdef BOOST_LIB_DIAGNOSTIC
|
&& defined(BOOST_LIB_RT_OPT) \
|
||||||
# pragma message ("Linking to lib file: " BOOST_LIB_PREFIX BOOST_STRINGIZE(BOOST_LIB_NAME) "-" BOOST_LIB_TOOLSET BOOST_LIB_THREAD_OPT BOOST_LIB_RT_OPT "-" BOOST_LIB_VERSION ".lib")
|
&& defined(BOOST_LIB_VERSION)
|
||||||
# endif
|
|
||||||
#elif defined(BOOST_AUTO_LINK_NOMANGLE)
|
#ifdef BOOST_AUTO_LINK_TAGGED
|
||||||
# pragma comment(lib, BOOST_STRINGIZE(BOOST_LIB_NAME) ".lib")
|
# pragma comment(lib, BOOST_LIB_PREFIX BOOST_STRINGIZE(BOOST_LIB_NAME) BOOST_LIB_THREAD_OPT BOOST_LIB_RT_OPT ".lib")
|
||||||
# ifdef BOOST_LIB_DIAGNOSTIC
|
# ifdef BOOST_LIB_DIAGNOSTIC
|
||||||
# pragma message ("Linking to lib file: " BOOST_STRINGIZE(BOOST_LIB_NAME) ".lib")
|
# pragma message ("Linking to lib file: " BOOST_LIB_PREFIX BOOST_STRINGIZE(BOOST_LIB_NAME) BOOST_LIB_THREAD_OPT BOOST_LIB_RT_OPT ".lib")
|
||||||
# endif
|
# endif
|
||||||
#else
|
#elif defined(BOOST_AUTO_LINK_NOMANGLE)
|
||||||
# pragma comment(lib, BOOST_LIB_PREFIX BOOST_STRINGIZE(BOOST_LIB_NAME) "-" BOOST_LIB_TOOLSET BOOST_LIB_THREAD_OPT BOOST_LIB_RT_OPT "-" BOOST_LIB_VERSION ".lib")
|
# pragma comment(lib, BOOST_STRINGIZE(BOOST_LIB_NAME) ".lib")
|
||||||
# ifdef BOOST_LIB_DIAGNOSTIC
|
# ifdef BOOST_LIB_DIAGNOSTIC
|
||||||
# pragma message ("Linking to lib file: " BOOST_LIB_PREFIX BOOST_STRINGIZE(BOOST_LIB_NAME) "-" BOOST_LIB_TOOLSET BOOST_LIB_THREAD_OPT BOOST_LIB_RT_OPT "-" BOOST_LIB_VERSION ".lib")
|
# pragma message ("Linking to lib file: " BOOST_STRINGIZE(BOOST_LIB_NAME) ".lib")
|
||||||
# endif
|
# endif
|
||||||
#endif
|
#else
|
||||||
|
# pragma comment(lib, BOOST_LIB_PREFIX BOOST_STRINGIZE(BOOST_LIB_NAME) "-" BOOST_LIB_TOOLSET BOOST_LIB_THREAD_OPT BOOST_LIB_RT_OPT "-" BOOST_LIB_VERSION ".lib")
|
||||||
#else
|
# ifdef BOOST_LIB_DIAGNOSTIC
|
||||||
# error "some required macros where not defined (internal logic error)."
|
# pragma message ("Linking to lib file: " BOOST_LIB_PREFIX BOOST_STRINGIZE(BOOST_LIB_NAME) "-" BOOST_LIB_TOOLSET BOOST_LIB_THREAD_OPT BOOST_LIB_RT_OPT "-" BOOST_LIB_VERSION ".lib")
|
||||||
#endif
|
# endif
|
||||||
|
#endif
|
||||||
|
|
||||||
#endif // _MSC_VER || __BORLANDC__
|
#else
|
||||||
|
# error "some required macros where not defined (internal logic error)."
|
||||||
//
|
#endif
|
||||||
// finally undef any macros we may have set:
|
|
||||||
//
|
|
||||||
#ifdef BOOST_LIB_PREFIX
|
#endif // _MSC_VER || __BORLANDC__
|
||||||
# undef BOOST_LIB_PREFIX
|
|
||||||
#endif
|
//
|
||||||
#if defined(BOOST_LIB_NAME)
|
// finally undef any macros we may have set:
|
||||||
# undef BOOST_LIB_NAME
|
//
|
||||||
#endif
|
#ifdef BOOST_LIB_PREFIX
|
||||||
// Don't undef this one: it can be set by the user and should be the
|
# undef BOOST_LIB_PREFIX
|
||||||
// same for all libraries:
|
#endif
|
||||||
//#if defined(BOOST_LIB_TOOLSET)
|
#if defined(BOOST_LIB_NAME)
|
||||||
//# undef BOOST_LIB_TOOLSET
|
# undef BOOST_LIB_NAME
|
||||||
//#endif
|
#endif
|
||||||
#if defined(BOOST_LIB_THREAD_OPT)
|
// Don't undef this one: it can be set by the user and should be the
|
||||||
# undef BOOST_LIB_THREAD_OPT
|
// same for all libraries:
|
||||||
#endif
|
//#if defined(BOOST_LIB_TOOLSET)
|
||||||
#if defined(BOOST_LIB_RT_OPT)
|
//# undef BOOST_LIB_TOOLSET
|
||||||
# undef BOOST_LIB_RT_OPT
|
//#endif
|
||||||
#endif
|
#if defined(BOOST_LIB_THREAD_OPT)
|
||||||
#if defined(BOOST_LIB_LINK_OPT)
|
# undef BOOST_LIB_THREAD_OPT
|
||||||
# undef BOOST_LIB_LINK_OPT
|
#endif
|
||||||
#endif
|
#if defined(BOOST_LIB_RT_OPT)
|
||||||
#if defined(BOOST_LIB_DEBUG_OPT)
|
# undef BOOST_LIB_RT_OPT
|
||||||
# undef BOOST_LIB_DEBUG_OPT
|
#endif
|
||||||
#endif
|
#if defined(BOOST_LIB_LINK_OPT)
|
||||||
#if defined(BOOST_DYN_LINK)
|
# undef BOOST_LIB_LINK_OPT
|
||||||
# undef BOOST_DYN_LINK
|
#endif
|
||||||
#endif
|
#if defined(BOOST_LIB_DEBUG_OPT)
|
||||||
#if defined(BOOST_AUTO_LINK_NOMANGLE)
|
# undef BOOST_LIB_DEBUG_OPT
|
||||||
# undef BOOST_AUTO_LINK_NOMANGLE
|
#endif
|
||||||
#endif
|
#if defined(BOOST_DYN_LINK)
|
||||||
|
# undef BOOST_DYN_LINK
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -1,277 +1,285 @@
|
||||||
// (C) Copyright John Maddock 2001 - 2003.
|
// (C) Copyright John Maddock 2001 - 2003.
|
||||||
// (C) Copyright David Abrahams 2002 - 2003.
|
// (C) Copyright David Abrahams 2002 - 2003.
|
||||||
// (C) Copyright Aleksey Gurtovoy 2002.
|
// (C) Copyright Aleksey Gurtovoy 2002.
|
||||||
// Use, modification and distribution are subject to the
|
// Use, modification and distribution are subject to the
|
||||||
// Boost Software License, Version 1.0. (See accompanying file
|
// Boost Software License, Version 1.0. (See accompanying file
|
||||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
|
||||||
// See http://www.boost.org for most recent version.
|
// See http://www.boost.org for most recent version.
|
||||||
|
|
||||||
// Borland C++ compiler setup:
|
// Borland C++ compiler setup:
|
||||||
|
|
||||||
//
|
//
|
||||||
// versions check:
|
// versions check:
|
||||||
// we don't support Borland prior to version 5.4:
|
// we don't support Borland prior to version 5.4:
|
||||||
#if __BORLANDC__ < 0x540
|
#if __BORLANDC__ < 0x540
|
||||||
# error "Compiler not supported or configured - please reconfigure"
|
# error "Compiler not supported or configured - please reconfigure"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// last known compiler version:
|
// last known compiler version:
|
||||||
#if (__BORLANDC__ > 0x613)
|
#if (__BORLANDC__ > 0x613)
|
||||||
//# if defined(BOOST_ASSERT_CONFIG)
|
//# if defined(BOOST_ASSERT_CONFIG)
|
||||||
# error "Unknown compiler version - please run the configure tests and report the results"
|
# error "Unknown compiler version - please run the configure tests and report the results"
|
||||||
//# else
|
//# else
|
||||||
//# pragma message( "Unknown compiler version - please run the configure tests and report the results")
|
//# pragma message( "Unknown compiler version - please run the configure tests and report the results")
|
||||||
//# endif
|
//# endif
|
||||||
#elif (__BORLANDC__ == 0x600)
|
#elif (__BORLANDC__ == 0x600)
|
||||||
# error "CBuilderX preview compiler is no longer supported"
|
# error "CBuilderX preview compiler is no longer supported"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//
|
//
|
||||||
// Support macros to help with standard library detection
|
// Support macros to help with standard library detection
|
||||||
#if (__BORLANDC__ < 0x560) || defined(_USE_OLD_RW_STL)
|
#if (__BORLANDC__ < 0x560) || defined(_USE_OLD_RW_STL)
|
||||||
# define BOOST_BCB_WITH_ROGUE_WAVE
|
# define BOOST_BCB_WITH_ROGUE_WAVE
|
||||||
#elif __BORLANDC__ < 0x570
|
#elif __BORLANDC__ < 0x570
|
||||||
# define BOOST_BCB_WITH_STLPORT
|
# define BOOST_BCB_WITH_STLPORT
|
||||||
#else
|
#else
|
||||||
# define BOOST_BCB_WITH_DINKUMWARE
|
# define BOOST_BCB_WITH_DINKUMWARE
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//
|
//
|
||||||
// Version 5.0 and below:
|
// Version 5.0 and below:
|
||||||
# if __BORLANDC__ <= 0x0550
|
# if __BORLANDC__ <= 0x0550
|
||||||
// Borland C++Builder 4 and 5:
|
// Borland C++Builder 4 and 5:
|
||||||
# define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
|
# define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
|
||||||
# if __BORLANDC__ == 0x0550
|
# if __BORLANDC__ == 0x0550
|
||||||
// Borland C++Builder 5, command-line compiler 5.5:
|
// Borland C++Builder 5, command-line compiler 5.5:
|
||||||
# define BOOST_NO_OPERATORS_IN_NAMESPACE
|
# define BOOST_NO_OPERATORS_IN_NAMESPACE
|
||||||
# endif
|
# endif
|
||||||
// Variadic macros do not exist for C++ Builder versions 5 and below
|
// Variadic macros do not exist for C++ Builder versions 5 and below
|
||||||
#define BOOST_NO_VARIADIC_MACROS
|
#define BOOST_NO_VARIADIC_MACROS
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
// Version 5.51 and below:
|
// Version 5.51 and below:
|
||||||
#if (__BORLANDC__ <= 0x551)
|
#if (__BORLANDC__ <= 0x551)
|
||||||
# define BOOST_NO_CV_SPECIALIZATIONS
|
# define BOOST_NO_CV_SPECIALIZATIONS
|
||||||
# define BOOST_NO_CV_VOID_SPECIALIZATIONS
|
# define BOOST_NO_CV_VOID_SPECIALIZATIONS
|
||||||
# define BOOST_NO_DEDUCED_TYPENAME
|
# define BOOST_NO_DEDUCED_TYPENAME
|
||||||
// workaround for missing WCHAR_MAX/WCHAR_MIN:
|
// workaround for missing WCHAR_MAX/WCHAR_MIN:
|
||||||
#include <climits>
|
#ifdef __cplusplus
|
||||||
#include <cwchar>
|
#include <climits>
|
||||||
#ifndef WCHAR_MAX
|
#include <cwchar>
|
||||||
# define WCHAR_MAX 0xffff
|
#else
|
||||||
#endif
|
#include <limits.h>
|
||||||
#ifndef WCHAR_MIN
|
#include <wchar.h>
|
||||||
# define WCHAR_MIN 0
|
#endif // __cplusplus
|
||||||
#endif
|
#ifndef WCHAR_MAX
|
||||||
#endif
|
# define WCHAR_MAX 0xffff
|
||||||
|
#endif
|
||||||
// Borland C++ Builder 6 and below:
|
#ifndef WCHAR_MIN
|
||||||
#if (__BORLANDC__ <= 0x564)
|
# define WCHAR_MIN 0
|
||||||
|
#endif
|
||||||
# ifdef NDEBUG
|
#endif
|
||||||
// fix broken <cstring> so that Boost.test works:
|
|
||||||
# include <cstring>
|
// Borland C++ Builder 6 and below:
|
||||||
# undef strcmp
|
#if (__BORLANDC__ <= 0x564)
|
||||||
# endif
|
|
||||||
// fix broken errno declaration:
|
# if defined(NDEBUG) && defined(__cplusplus)
|
||||||
# include <errno.h>
|
// fix broken <cstring> so that Boost.test works:
|
||||||
# ifndef errno
|
# include <cstring>
|
||||||
# define errno errno
|
# undef strcmp
|
||||||
# endif
|
# endif
|
||||||
|
// fix broken errno declaration:
|
||||||
#endif
|
# include <errno.h>
|
||||||
|
# ifndef errno
|
||||||
//
|
# define errno errno
|
||||||
// new bug in 5.61:
|
# endif
|
||||||
#if (__BORLANDC__ >= 0x561) && (__BORLANDC__ <= 0x580)
|
|
||||||
// this seems to be needed by the command line compiler, but not the IDE:
|
#endif
|
||||||
# define BOOST_NO_MEMBER_FUNCTION_SPECIALIZATIONS
|
|
||||||
#endif
|
//
|
||||||
|
// new bug in 5.61:
|
||||||
// Borland C++ Builder 2006 Update 2 and below:
|
#if (__BORLANDC__ >= 0x561) && (__BORLANDC__ <= 0x580)
|
||||||
#if (__BORLANDC__ <= 0x582)
|
// this seems to be needed by the command line compiler, but not the IDE:
|
||||||
# define BOOST_NO_SFINAE
|
# define BOOST_NO_MEMBER_FUNCTION_SPECIALIZATIONS
|
||||||
# define BOOST_BCB_PARTIAL_SPECIALIZATION_BUG
|
#endif
|
||||||
# define BOOST_NO_TEMPLATE_TEMPLATES
|
|
||||||
|
// Borland C++ Builder 2006 Update 2 and below:
|
||||||
# define BOOST_NO_PRIVATE_IN_AGGREGATE
|
#if (__BORLANDC__ <= 0x582)
|
||||||
|
# define BOOST_NO_SFINAE
|
||||||
# ifdef _WIN32
|
# define BOOST_BCB_PARTIAL_SPECIALIZATION_BUG
|
||||||
# define BOOST_NO_SWPRINTF
|
# define BOOST_NO_TEMPLATE_TEMPLATES
|
||||||
# elif defined(linux) || defined(__linux__) || defined(__linux)
|
|
||||||
// we should really be able to do without this
|
# define BOOST_NO_PRIVATE_IN_AGGREGATE
|
||||||
// but the wcs* functions aren't imported into std::
|
|
||||||
# define BOOST_NO_STDC_NAMESPACE
|
# ifdef _WIN32
|
||||||
// _CPPUNWIND doesn't get automatically set for some reason:
|
# define BOOST_NO_SWPRINTF
|
||||||
# pragma defineonoption BOOST_CPPUNWIND -x
|
# elif defined(linux) || defined(__linux__) || defined(__linux)
|
||||||
# endif
|
// we should really be able to do without this
|
||||||
#endif
|
// but the wcs* functions aren't imported into std::
|
||||||
|
# define BOOST_NO_STDC_NAMESPACE
|
||||||
#if (__BORLANDC__ <= 0x613) // Beman has asked Alisdair for more info
|
// _CPPUNWIND doesn't get automatically set for some reason:
|
||||||
// we shouldn't really need this - but too many things choke
|
# pragma defineonoption BOOST_CPPUNWIND -x
|
||||||
// without it, this needs more investigation:
|
# endif
|
||||||
# define BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
|
#endif
|
||||||
# define BOOST_NO_IS_ABSTRACT
|
|
||||||
# define BOOST_NO_FUNCTION_TYPE_SPECIALIZATIONS
|
#if (__BORLANDC__ <= 0x613) // Beman has asked Alisdair for more info
|
||||||
# define BOOST_NO_USING_TEMPLATE
|
// we shouldn't really need this - but too many things choke
|
||||||
# define BOOST_SP_NO_SP_CONVERTIBLE
|
// without it, this needs more investigation:
|
||||||
|
# define BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
|
||||||
// Temporary workaround
|
# define BOOST_NO_IS_ABSTRACT
|
||||||
#define BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
|
# define BOOST_NO_FUNCTION_TYPE_SPECIALIZATIONS
|
||||||
#endif
|
# define BOOST_NO_USING_TEMPLATE
|
||||||
|
# define BOOST_SP_NO_SP_CONVERTIBLE
|
||||||
// Borland C++ Builder 2008 and below:
|
|
||||||
# define BOOST_NO_INTEGRAL_INT64_T
|
// Temporary workaround
|
||||||
# define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
|
#define BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
|
||||||
# define BOOST_NO_DEPENDENT_NESTED_DERIVATIONS
|
#endif
|
||||||
# define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
|
|
||||||
# define BOOST_NO_TWO_PHASE_NAME_LOOKUP
|
// Borland C++ Builder 2008 and below:
|
||||||
# define BOOST_NO_USING_DECLARATION_OVERLOADS_FROM_TYPENAME_BASE
|
# define BOOST_NO_INTEGRAL_INT64_T
|
||||||
# define BOOST_NO_NESTED_FRIENDSHIP
|
# define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
|
||||||
# define BOOST_NO_TYPENAME_WITH_CTOR
|
# define BOOST_NO_DEPENDENT_NESTED_DERIVATIONS
|
||||||
#if (__BORLANDC__ < 0x600)
|
# define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
|
||||||
# define BOOST_ILLEGAL_CV_REFERENCES
|
# define BOOST_NO_TWO_PHASE_NAME_LOOKUP
|
||||||
#endif
|
# define BOOST_NO_USING_DECLARATION_OVERLOADS_FROM_TYPENAME_BASE
|
||||||
|
# define BOOST_NO_NESTED_FRIENDSHIP
|
||||||
//
|
# define BOOST_NO_TYPENAME_WITH_CTOR
|
||||||
// Positive Feature detection
|
#if (__BORLANDC__ < 0x600)
|
||||||
//
|
# define BOOST_ILLEGAL_CV_REFERENCES
|
||||||
// Borland C++ Builder 2008 and below:
|
#endif
|
||||||
#if (__BORLANDC__ >= 0x599)
|
|
||||||
# pragma defineonoption BOOST_CODEGEAR_0X_SUPPORT -Ax
|
//
|
||||||
#endif
|
// Positive Feature detection
|
||||||
//
|
//
|
||||||
// C++0x Macros:
|
// Borland C++ Builder 2008 and below:
|
||||||
//
|
#if (__BORLANDC__ >= 0x599)
|
||||||
#if !defined( BOOST_CODEGEAR_0X_SUPPORT ) || (__BORLANDC__ < 0x610)
|
# pragma defineonoption BOOST_CODEGEAR_0X_SUPPORT -Ax
|
||||||
# define BOOST_NO_CHAR16_T
|
#endif
|
||||||
# define BOOST_NO_CHAR32_T
|
//
|
||||||
# define BOOST_NO_DECLTYPE
|
// C++0x Macros:
|
||||||
# define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS
|
//
|
||||||
# define BOOST_NO_EXTERN_TEMPLATE
|
#if !defined( BOOST_CODEGEAR_0X_SUPPORT ) || (__BORLANDC__ < 0x610)
|
||||||
# define BOOST_NO_RVALUE_REFERENCES
|
# define BOOST_NO_CHAR16_T
|
||||||
# define BOOST_NO_SCOPED_ENUMS
|
# define BOOST_NO_CHAR32_T
|
||||||
# define BOOST_NO_STATIC_ASSERT
|
# define BOOST_NO_DECLTYPE
|
||||||
#else
|
# define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS
|
||||||
# define BOOST_HAS_ALIGNOF
|
# define BOOST_NO_EXTERN_TEMPLATE
|
||||||
# define BOOST_HAS_CHAR16_T
|
# define BOOST_NO_RVALUE_REFERENCES
|
||||||
# define BOOST_HAS_CHAR32_T
|
# define BOOST_NO_SCOPED_ENUMS
|
||||||
# define BOOST_HAS_DECLTYPE
|
# define BOOST_NO_STATIC_ASSERT
|
||||||
# define BOOST_HAS_EXPLICIT_CONVERSION_OPS
|
#else
|
||||||
# define BOOST_HAS_REF_QUALIFIER
|
# define BOOST_HAS_ALIGNOF
|
||||||
# define BOOST_HAS_RVALUE_REFS
|
# define BOOST_HAS_CHAR16_T
|
||||||
# define BOOST_HAS_STATIC_ASSERT
|
# define BOOST_HAS_CHAR32_T
|
||||||
#endif
|
# define BOOST_HAS_DECLTYPE
|
||||||
|
# define BOOST_HAS_EXPLICIT_CONVERSION_OPS
|
||||||
#define BOOST_NO_AUTO_DECLARATIONS
|
# define BOOST_HAS_REF_QUALIFIER
|
||||||
#define BOOST_NO_AUTO_MULTIDECLARATIONS
|
# define BOOST_HAS_RVALUE_REFS
|
||||||
#define BOOST_NO_CONCEPTS
|
# define BOOST_HAS_STATIC_ASSERT
|
||||||
#define BOOST_NO_CONSTEXPR
|
#endif
|
||||||
#define BOOST_NO_DEFAULTED_FUNCTIONS
|
|
||||||
#define BOOST_NO_DELETED_FUNCTIONS
|
#define BOOST_NO_AUTO_DECLARATIONS
|
||||||
#define BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS
|
#define BOOST_NO_AUTO_MULTIDECLARATIONS
|
||||||
#define BOOST_NO_INITIALIZER_LISTS
|
#define BOOST_NO_CONSTEXPR
|
||||||
#define BOOST_NO_LAMBDAS
|
#define BOOST_NO_DECLTYPE_N3276
|
||||||
#define BOOST_NO_NULLPTR
|
#define BOOST_NO_DEFAULTED_FUNCTIONS
|
||||||
#define BOOST_NO_RAW_LITERALS
|
#define BOOST_NO_DELETED_FUNCTIONS
|
||||||
#define BOOST_NO_RVALUE_REFERENCES
|
#define BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS
|
||||||
#define BOOST_NO_SCOPED_ENUMS
|
#define BOOST_NO_INITIALIZER_LISTS
|
||||||
#define BOOST_NO_SFINAE_EXPR
|
#define BOOST_NO_LAMBDAS
|
||||||
#define BOOST_NO_TEMPLATE_ALIASES
|
#define BOOST_NO_NULLPTR
|
||||||
#define BOOST_NO_UNICODE_LITERALS // UTF-8 still not supported
|
#define BOOST_NO_RAW_LITERALS
|
||||||
#define BOOST_NO_VARIADIC_TEMPLATES
|
#define BOOST_NO_RVALUE_REFERENCES
|
||||||
|
#define BOOST_NO_SCOPED_ENUMS
|
||||||
#if __BORLANDC__ >= 0x590
|
#define BOOST_NO_SFINAE_EXPR
|
||||||
# define BOOST_HAS_TR1_HASH
|
#define BOOST_NO_TEMPLATE_ALIASES
|
||||||
|
#define BOOST_NO_UNICODE_LITERALS // UTF-8 still not supported
|
||||||
# define BOOST_HAS_MACRO_USE_FACET
|
#define BOOST_NO_VARIADIC_TEMPLATES
|
||||||
#endif
|
#define BOOST_NO_NOEXCEPT
|
||||||
|
#define BOOST_NO_UNIFIED_INITIALIZATION_SYNTAX
|
||||||
//
|
|
||||||
// Post 0x561 we have long long and stdint.h:
|
#if __BORLANDC__ >= 0x590
|
||||||
#if __BORLANDC__ >= 0x561
|
# define BOOST_HAS_TR1_HASH
|
||||||
# ifndef __NO_LONG_LONG
|
|
||||||
# define BOOST_HAS_LONG_LONG
|
# define BOOST_HAS_MACRO_USE_FACET
|
||||||
# else
|
#endif
|
||||||
# define BOOST_NO_LONG_LONG
|
|
||||||
# endif
|
//
|
||||||
// On non-Win32 platforms let the platform config figure this out:
|
// Post 0x561 we have long long and stdint.h:
|
||||||
# ifdef _WIN32
|
#if __BORLANDC__ >= 0x561
|
||||||
# define BOOST_HAS_STDINT_H
|
# ifndef __NO_LONG_LONG
|
||||||
# endif
|
# define BOOST_HAS_LONG_LONG
|
||||||
#endif
|
# else
|
||||||
|
# define BOOST_NO_LONG_LONG
|
||||||
// Borland C++Builder 6 defaults to using STLPort. If _USE_OLD_RW_STL is
|
# endif
|
||||||
// defined, then we have 0x560 or greater with the Rogue Wave implementation
|
// On non-Win32 platforms let the platform config figure this out:
|
||||||
// which presumably has the std::DBL_MAX bug.
|
# ifdef _WIN32
|
||||||
#if defined( BOOST_BCB_WITH_ROGUE_WAVE )
|
# define BOOST_HAS_STDINT_H
|
||||||
// <climits> is partly broken, some macros define symbols that are really in
|
# endif
|
||||||
// namespace std, so you end up having to use illegal constructs like
|
#endif
|
||||||
// std::DBL_MAX, as a fix we'll just include float.h and have done with:
|
|
||||||
#include <float.h>
|
// Borland C++Builder 6 defaults to using STLPort. If _USE_OLD_RW_STL is
|
||||||
#endif
|
// defined, then we have 0x560 or greater with the Rogue Wave implementation
|
||||||
//
|
// which presumably has the std::DBL_MAX bug.
|
||||||
// __int64:
|
#if defined( BOOST_BCB_WITH_ROGUE_WAVE )
|
||||||
//
|
// <climits> is partly broken, some macros define symbols that are really in
|
||||||
#if (__BORLANDC__ >= 0x530) && !defined(__STRICT_ANSI__)
|
// namespace std, so you end up having to use illegal constructs like
|
||||||
# define BOOST_HAS_MS_INT64
|
// std::DBL_MAX, as a fix we'll just include float.h and have done with:
|
||||||
#endif
|
#include <float.h>
|
||||||
//
|
#endif
|
||||||
// check for exception handling support:
|
//
|
||||||
//
|
// __int64:
|
||||||
#if !defined(_CPPUNWIND) && !defined(BOOST_CPPUNWIND) && !defined(__EXCEPTIONS) && !defined(BOOST_NO_EXCEPTIONS)
|
//
|
||||||
# define BOOST_NO_EXCEPTIONS
|
#if (__BORLANDC__ >= 0x530) && !defined(__STRICT_ANSI__)
|
||||||
#endif
|
# define BOOST_HAS_MS_INT64
|
||||||
//
|
#endif
|
||||||
// all versions have a <dirent.h>:
|
//
|
||||||
//
|
// check for exception handling support:
|
||||||
#ifndef __STRICT_ANSI__
|
//
|
||||||
# define BOOST_HAS_DIRENT_H
|
#if !defined(_CPPUNWIND) && !defined(BOOST_CPPUNWIND) && !defined(__EXCEPTIONS) && !defined(BOOST_NO_EXCEPTIONS)
|
||||||
#endif
|
# define BOOST_NO_EXCEPTIONS
|
||||||
//
|
#endif
|
||||||
// all versions support __declspec:
|
//
|
||||||
//
|
// all versions have a <dirent.h>:
|
||||||
#if defined(__STRICT_ANSI__)
|
//
|
||||||
// config/platform/win32.hpp will define BOOST_SYMBOL_EXPORT, etc., unless already defined
|
#ifndef __STRICT_ANSI__
|
||||||
# define BOOST_SYMBOL_EXPORT
|
# define BOOST_HAS_DIRENT_H
|
||||||
#endif
|
#endif
|
||||||
//
|
//
|
||||||
// ABI fixing headers:
|
// all versions support __declspec:
|
||||||
//
|
//
|
||||||
#if __BORLANDC__ != 0x600 // not implemented for version 6 compiler yet
|
#if defined(__STRICT_ANSI__)
|
||||||
#ifndef BOOST_ABI_PREFIX
|
// config/platform/win32.hpp will define BOOST_SYMBOL_EXPORT, etc., unless already defined
|
||||||
# define BOOST_ABI_PREFIX "boost/config/abi/borland_prefix.hpp"
|
# define BOOST_SYMBOL_EXPORT
|
||||||
#endif
|
#endif
|
||||||
#ifndef BOOST_ABI_SUFFIX
|
//
|
||||||
# define BOOST_ABI_SUFFIX "boost/config/abi/borland_suffix.hpp"
|
// ABI fixing headers:
|
||||||
#endif
|
//
|
||||||
#endif
|
#if __BORLANDC__ != 0x600 // not implemented for version 6 compiler yet
|
||||||
//
|
#ifndef BOOST_ABI_PREFIX
|
||||||
// Disable Win32 support in ANSI mode:
|
# define BOOST_ABI_PREFIX "boost/config/abi/borland_prefix.hpp"
|
||||||
//
|
#endif
|
||||||
#if __BORLANDC__ < 0x600
|
#ifndef BOOST_ABI_SUFFIX
|
||||||
# pragma defineonoption BOOST_DISABLE_WIN32 -A
|
# define BOOST_ABI_SUFFIX "boost/config/abi/borland_suffix.hpp"
|
||||||
#elif defined(__STRICT_ANSI__)
|
#endif
|
||||||
# define BOOST_DISABLE_WIN32
|
#endif
|
||||||
#endif
|
//
|
||||||
//
|
// Disable Win32 support in ANSI mode:
|
||||||
// MSVC compatibility mode does some nasty things:
|
//
|
||||||
// TODO: look up if this doesn't apply to the whole 12xx range
|
#if __BORLANDC__ < 0x600
|
||||||
//
|
# pragma defineonoption BOOST_DISABLE_WIN32 -A
|
||||||
#if defined(_MSC_VER) && (_MSC_VER <= 1200)
|
#elif defined(__STRICT_ANSI__)
|
||||||
# define BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP
|
# define BOOST_DISABLE_WIN32
|
||||||
# define BOOST_NO_VOID_RETURNS
|
#endif
|
||||||
#endif
|
//
|
||||||
|
// MSVC compatibility mode does some nasty things:
|
||||||
// Borland did not implement value-initialization completely, as I reported
|
// TODO: look up if this doesn't apply to the whole 12xx range
|
||||||
// in 2007, Borland Report 51854, "Value-initialization: POD struct should be
|
//
|
||||||
// zero-initialized", http://qc.embarcadero.com/wc/qcmain.aspx?d=51854
|
#if defined(_MSC_VER) && (_MSC_VER <= 1200)
|
||||||
// See also: http://www.boost.org/libs/utility/value_init.htm#compiler_issues
|
# define BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP
|
||||||
// (Niels Dekker, LKEB, April 2010)
|
# define BOOST_NO_VOID_RETURNS
|
||||||
#define BOOST_NO_COMPLETE_VALUE_INITIALIZATION
|
#endif
|
||||||
|
|
||||||
#define BOOST_COMPILER "Borland C++ version " BOOST_STRINGIZE(__BORLANDC__)
|
// Borland did not implement value-initialization completely, as I reported
|
||||||
|
// in 2007, Borland Report 51854, "Value-initialization: POD struct should be
|
||||||
|
// zero-initialized", http://qc.embarcadero.com/wc/qcmain.aspx?d=51854
|
||||||
|
// See also: http://www.boost.org/libs/utility/value_init.htm#compiler_issues
|
||||||
|
// (Niels Dekker, LKEB, April 2010)
|
||||||
|
#define BOOST_NO_COMPLETE_VALUE_INITIALIZATION
|
||||||
|
|
||||||
|
#define BOOST_COMPILER "Borland C++ version " BOOST_STRINGIZE(__BORLANDC__)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,63 +1,121 @@
|
||||||
// (C) Copyright Douglas Gregor 2010
|
// (C) Copyright Douglas Gregor 2010
|
||||||
//
|
//
|
||||||
// Use, modification and distribution are subject to the
|
// Use, modification and distribution are subject to the
|
||||||
// Boost Software License, Version 1.0. (See accompanying file
|
// Boost Software License, Version 1.0. (See accompanying file
|
||||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
|
||||||
// See http://www.boost.org for most recent version.
|
// See http://www.boost.org for most recent version.
|
||||||
|
|
||||||
// Clang compiler setup.
|
// Clang compiler setup.
|
||||||
|
|
||||||
#if __has_feature(cxx_exceptions) && !defined(BOOST_NO_EXCEPTIONS)
|
#if __has_feature(cxx_exceptions) && !defined(BOOST_NO_EXCEPTIONS)
|
||||||
#else
|
#else
|
||||||
# define BOOST_NO_EXCEPTIONS
|
# define BOOST_NO_EXCEPTIONS
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if __has_feature(cxx_rtti)
|
#if !__has_feature(cxx_rtti)
|
||||||
#else
|
# define BOOST_NO_RTTI
|
||||||
# define BOOST_NO_RTTI
|
#endif
|
||||||
#endif
|
|
||||||
|
#if defined(__int64)
|
||||||
#if defined(__int64)
|
# define BOOST_HAS_MS_INT64
|
||||||
# define BOOST_HAS_MS_INT64
|
#endif
|
||||||
#endif
|
|
||||||
|
#define BOOST_HAS_NRVO
|
||||||
#define BOOST_HAS_NRVO
|
|
||||||
|
// Clang supports "long long" in all compilation modes.
|
||||||
// NOTE: Clang's C++0x support is not worth detecting. However, it
|
|
||||||
// supports both extern templates and "long long" even in C++98/03
|
#if !__has_feature(cxx_auto_type)
|
||||||
// mode.
|
# define BOOST_NO_AUTO_DECLARATIONS
|
||||||
#define BOOST_NO_AUTO_DECLARATIONS
|
# define BOOST_NO_AUTO_MULTIDECLARATIONS
|
||||||
#define BOOST_NO_AUTO_MULTIDECLARATIONS
|
#endif
|
||||||
#define BOOST_NO_CHAR16_T
|
|
||||||
#define BOOST_NO_CHAR32_T
|
#if !(defined(__GXX_EXPERIMENTAL_CXX0X__) || __cplusplus >= 201103L)
|
||||||
#define BOOST_NO_CONCEPTS
|
# define BOOST_NO_CHAR16_T
|
||||||
#define BOOST_NO_CONSTEXPR
|
# define BOOST_NO_CHAR32_T
|
||||||
#define BOOST_NO_DECLTYPE
|
#endif
|
||||||
#define BOOST_NO_DEFAULTED_FUNCTIONS
|
|
||||||
#define BOOST_NO_DELETED_FUNCTIONS
|
#if !__has_feature(cxx_constexpr)
|
||||||
#define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS
|
# define BOOST_NO_CONSTEXPR
|
||||||
#define BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS
|
#endif
|
||||||
#define BOOST_NO_INITIALIZER_LISTS
|
|
||||||
#define BOOST_NO_LAMBDAS
|
#if !__has_feature(cxx_decltype)
|
||||||
#define BOOST_NO_NULLPTR
|
# define BOOST_NO_DECLTYPE
|
||||||
#define BOOST_NO_RAW_LITERALS
|
#endif
|
||||||
#define BOOST_NO_RVALUE_REFERENCES
|
|
||||||
#define BOOST_NO_SCOPED_ENUMS
|
#define BOOST_NO_DECLTYPE_N3276
|
||||||
#define BOOST_NO_STATIC_ASSERT
|
|
||||||
#define BOOST_NO_TEMPLATE_ALIASES
|
#if !__has_feature(cxx_defaulted_functions)
|
||||||
#define BOOST_NO_UNICODE_LITERALS
|
# define BOOST_NO_DEFAULTED_FUNCTIONS
|
||||||
#define BOOST_NO_VARIADIC_TEMPLATES
|
#endif
|
||||||
#define BOOST_NO_VARIADIC_MACROS
|
|
||||||
|
#if !__has_feature(cxx_deleted_functions)
|
||||||
// HACK: Clang does support extern templates, but Boost's test for
|
# define BOOST_NO_DELETED_FUNCTIONS
|
||||||
// them is wrong.
|
#endif
|
||||||
#define BOOST_NO_EXTERN_TEMPLATE
|
|
||||||
|
#if !__has_feature(cxx_explicit_conversions)
|
||||||
#ifndef BOOST_COMPILER
|
# define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS
|
||||||
# define BOOST_COMPILER "Clang version " __clang_version__
|
#endif
|
||||||
#endif
|
|
||||||
|
#if !__has_feature(cxx_default_function_template_args)
|
||||||
// Macro used to identify the Clang compiler.
|
# define BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS
|
||||||
#define BOOST_CLANG 1
|
#endif
|
||||||
|
|
||||||
|
#if !__has_feature(cxx_generalized_initializers)
|
||||||
|
# define BOOST_NO_INITIALIZER_LISTS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if !__has_feature(cxx_lambdas)
|
||||||
|
# define BOOST_NO_LAMBDAS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if !__has_feature(cxx_noexcept)
|
||||||
|
# define BOOST_NO_NOEXCEPT
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if !__has_feature(cxx_nullptr)
|
||||||
|
# define BOOST_NO_NULLPTR
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if !__has_feature(cxx_raw_string_literals)
|
||||||
|
# define BOOST_NO_RAW_LITERALS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if !__has_feature(cxx_generalized_initializers)
|
||||||
|
# define BOOST_NO_UNIFIED_INITIALIZATION_SYNTAX
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if !__has_feature(cxx_rvalue_references)
|
||||||
|
# define BOOST_NO_RVALUE_REFERENCES
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if !__has_feature(cxx_strong_enums)
|
||||||
|
# define BOOST_NO_SCOPED_ENUMS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if !__has_feature(cxx_static_assert)
|
||||||
|
# define BOOST_NO_STATIC_ASSERT
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if !__has_feature(cxx_alias_templates)
|
||||||
|
# define BOOST_NO_TEMPLATE_ALIASES
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if !__has_feature(cxx_unicode_literals)
|
||||||
|
# define BOOST_NO_UNICODE_LITERALS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if !__has_feature(cxx_variadic_templates)
|
||||||
|
# define BOOST_NO_VARIADIC_TEMPLATES
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Clang always supports variadic macros
|
||||||
|
// Clang always supports extern templates
|
||||||
|
|
||||||
|
#ifndef BOOST_COMPILER
|
||||||
|
# define BOOST_COMPILER "Clang version " __clang_version__
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Macro used to identify the Clang compiler.
|
||||||
|
#define BOOST_CLANG 1
|
||||||
|
|
||||||
|
|
|
@ -1,177 +1,178 @@
|
||||||
// (C) Copyright John Maddock 2001 - 2003.
|
// (C) Copyright John Maddock 2001 - 2003.
|
||||||
// (C) Copyright David Abrahams 2002 - 2003.
|
// (C) Copyright David Abrahams 2002 - 2003.
|
||||||
// (C) Copyright Aleksey Gurtovoy 2002.
|
// (C) Copyright Aleksey Gurtovoy 2002.
|
||||||
// Use, modification and distribution are subject to the
|
// Use, modification and distribution are subject to the
|
||||||
// Boost Software License, Version 1.0. (See accompanying file
|
// Boost Software License, Version 1.0. (See accompanying file
|
||||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
|
||||||
// See http://www.boost.org for most recent version.
|
// See http://www.boost.org for most recent version.
|
||||||
|
|
||||||
// CodeGear C++ compiler setup:
|
// CodeGear C++ compiler setup:
|
||||||
|
|
||||||
#if !defined( BOOST_WITH_CODEGEAR_WARNINGS )
|
#if !defined( BOOST_WITH_CODEGEAR_WARNINGS )
|
||||||
// these warnings occur frequently in optimized template code
|
// these warnings occur frequently in optimized template code
|
||||||
# pragma warn -8004 // var assigned value, but never used
|
# pragma warn -8004 // var assigned value, but never used
|
||||||
# pragma warn -8008 // condition always true/false
|
# pragma warn -8008 // condition always true/false
|
||||||
# pragma warn -8066 // dead code can never execute
|
# pragma warn -8066 // dead code can never execute
|
||||||
# pragma warn -8104 // static members with ctors not threadsafe
|
# pragma warn -8104 // static members with ctors not threadsafe
|
||||||
# pragma warn -8105 // reference member in class without ctors
|
# pragma warn -8105 // reference member in class without ctors
|
||||||
#endif
|
#endif
|
||||||
//
|
//
|
||||||
// versions check:
|
// versions check:
|
||||||
// last known and checked version is 0x621
|
// last known and checked version is 0x621
|
||||||
#if (__CODEGEARC__ > 0x621)
|
#if (__CODEGEARC__ > 0x621)
|
||||||
# if defined(BOOST_ASSERT_CONFIG)
|
# if defined(BOOST_ASSERT_CONFIG)
|
||||||
# error "Unknown compiler version - please run the configure tests and report the results"
|
# error "Unknown compiler version - please run the configure tests and report the results"
|
||||||
# else
|
# else
|
||||||
# pragma message( "Unknown compiler version - please run the configure tests and report the results")
|
# pragma message( "Unknown compiler version - please run the configure tests and report the results")
|
||||||
# endif
|
# endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// CodeGear C++ Builder 2009
|
// CodeGear C++ Builder 2009
|
||||||
#if (__CODEGEARC__ <= 0x613)
|
#if (__CODEGEARC__ <= 0x613)
|
||||||
# define BOOST_NO_INTEGRAL_INT64_T
|
# define BOOST_NO_INTEGRAL_INT64_T
|
||||||
# define BOOST_NO_DEPENDENT_NESTED_DERIVATIONS
|
# define BOOST_NO_DEPENDENT_NESTED_DERIVATIONS
|
||||||
# define BOOST_NO_PRIVATE_IN_AGGREGATE
|
# define BOOST_NO_PRIVATE_IN_AGGREGATE
|
||||||
# define BOOST_NO_USING_DECLARATION_OVERLOADS_FROM_TYPENAME_BASE
|
# define BOOST_NO_USING_DECLARATION_OVERLOADS_FROM_TYPENAME_BASE
|
||||||
// we shouldn't really need this - but too many things choke
|
// we shouldn't really need this - but too many things choke
|
||||||
// without it, this needs more investigation:
|
// without it, this needs more investigation:
|
||||||
# define BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
|
# define BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
|
||||||
# define BOOST_SP_NO_SP_CONVERTIBLE
|
# define BOOST_SP_NO_SP_CONVERTIBLE
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// CodeGear C++ Builder 2010
|
// CodeGear C++ Builder 2010
|
||||||
#if (__CODEGEARC__ <= 0x621)
|
#if (__CODEGEARC__ <= 0x621)
|
||||||
# define BOOST_NO_TYPENAME_WITH_CTOR // Cannot use typename keyword when making temporaries of a dependant type
|
# define BOOST_NO_TYPENAME_WITH_CTOR // Cannot use typename keyword when making temporaries of a dependant type
|
||||||
# define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
|
# define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
|
||||||
# define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
|
# define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
|
||||||
# define BOOST_NO_NESTED_FRIENDSHIP // TC1 gives nested classes access rights as any other member
|
# define BOOST_NO_NESTED_FRIENDSHIP // TC1 gives nested classes access rights as any other member
|
||||||
# define BOOST_NO_USING_TEMPLATE
|
# define BOOST_NO_USING_TEMPLATE
|
||||||
# define BOOST_NO_TWO_PHASE_NAME_LOOKUP
|
# define BOOST_NO_TWO_PHASE_NAME_LOOKUP
|
||||||
// Temporary hack, until specific MPL preprocessed headers are generated
|
// Temporary hack, until specific MPL preprocessed headers are generated
|
||||||
# define BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
|
# define BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
|
||||||
|
|
||||||
// CodeGear has not yet completely implemented value-initialization, for
|
// CodeGear has not yet completely implemented value-initialization, for
|
||||||
// example for array types, as I reported in 2010: Embarcadero Report 83751,
|
// example for array types, as I reported in 2010: Embarcadero Report 83751,
|
||||||
// "Value-initialization: arrays should have each element value-initialized",
|
// "Value-initialization: arrays should have each element value-initialized",
|
||||||
// http://qc.embarcadero.com/wc/qcmain.aspx?d=83751
|
// http://qc.embarcadero.com/wc/qcmain.aspx?d=83751
|
||||||
// Last checked version: Embarcadero C++ 6.21
|
// Last checked version: Embarcadero C++ 6.21
|
||||||
// See also: http://www.boost.org/libs/utility/value_init.htm#compiler_issues
|
// See also: http://www.boost.org/libs/utility/value_init.htm#compiler_issues
|
||||||
// (Niels Dekker, LKEB, April 2010)
|
// (Niels Dekker, LKEB, April 2010)
|
||||||
# define BOOST_NO_COMPLETE_VALUE_INITIALIZATION
|
# define BOOST_NO_COMPLETE_VALUE_INITIALIZATION
|
||||||
|
|
||||||
# ifdef NDEBUG
|
# if defined(NDEBUG) && defined(__cplusplus)
|
||||||
// fix broken <cstring> so that Boost.test works:
|
// fix broken <cstring> so that Boost.test works:
|
||||||
# include <cstring>
|
# include <cstring>
|
||||||
# undef strcmp
|
# undef strcmp
|
||||||
# endif
|
# endif
|
||||||
// fix broken errno declaration:
|
// fix broken errno declaration:
|
||||||
# include <errno.h>
|
# include <errno.h>
|
||||||
# ifndef errno
|
# ifndef errno
|
||||||
# define errno errno
|
# define errno errno
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
//
|
//
|
||||||
// C++0x macros:
|
// C++0x macros:
|
||||||
//
|
//
|
||||||
#if (__CODEGEARC__ <= 0x620)
|
#if (__CODEGEARC__ <= 0x620)
|
||||||
#define BOOST_NO_STATIC_ASSERT
|
#define BOOST_NO_STATIC_ASSERT
|
||||||
#else
|
#else
|
||||||
#define BOOST_HAS_STATIC_ASSERT
|
#define BOOST_HAS_STATIC_ASSERT
|
||||||
#endif
|
#endif
|
||||||
#define BOOST_HAS_CHAR16_T
|
#define BOOST_HAS_CHAR16_T
|
||||||
#define BOOST_HAS_CHAR32_T
|
#define BOOST_HAS_CHAR32_T
|
||||||
#define BOOST_HAS_LONG_LONG
|
#define BOOST_HAS_LONG_LONG
|
||||||
// #define BOOST_HAS_ALIGNOF
|
// #define BOOST_HAS_ALIGNOF
|
||||||
#define BOOST_HAS_DECLTYPE
|
#define BOOST_HAS_DECLTYPE
|
||||||
#define BOOST_HAS_EXPLICIT_CONVERSION_OPS
|
#define BOOST_HAS_EXPLICIT_CONVERSION_OPS
|
||||||
// #define BOOST_HAS_RVALUE_REFS
|
// #define BOOST_HAS_RVALUE_REFS
|
||||||
#define BOOST_HAS_SCOPED_ENUM
|
#define BOOST_HAS_SCOPED_ENUM
|
||||||
// #define BOOST_HAS_STATIC_ASSERT
|
// #define BOOST_HAS_STATIC_ASSERT
|
||||||
#define BOOST_HAS_STD_TYPE_TRAITS
|
#define BOOST_HAS_STD_TYPE_TRAITS
|
||||||
|
|
||||||
#define BOOST_NO_AUTO_DECLARATIONS
|
#define BOOST_NO_AUTO_DECLARATIONS
|
||||||
#define BOOST_NO_AUTO_MULTIDECLARATIONS
|
#define BOOST_NO_AUTO_MULTIDECLARATIONS
|
||||||
#define BOOST_NO_CONCEPTS
|
#define BOOST_NO_CONSTEXPR
|
||||||
#define BOOST_NO_CONSTEXPR
|
#define BOOST_NO_DEFAULTED_FUNCTIONS
|
||||||
#define BOOST_NO_DEFAULTED_FUNCTIONS
|
#define BOOST_NO_DELETED_FUNCTIONS
|
||||||
#define BOOST_NO_DELETED_FUNCTIONS
|
#define BOOST_NO_EXTERN_TEMPLATE
|
||||||
#define BOOST_NO_EXTERN_TEMPLATE
|
#define BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS
|
||||||
#define BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS
|
#define BOOST_NO_INITIALIZER_LISTS
|
||||||
#define BOOST_NO_INITIALIZER_LISTS
|
#define BOOST_NO_LAMBDAS
|
||||||
#define BOOST_NO_LAMBDAS
|
#define BOOST_NO_NOEXCEPT
|
||||||
#define BOOST_NO_NULLPTR
|
#define BOOST_NO_NULLPTR
|
||||||
#define BOOST_NO_RAW_LITERALS
|
#define BOOST_NO_RAW_LITERALS
|
||||||
#define BOOST_NO_RVALUE_REFERENCES
|
#define BOOST_NO_RVALUE_REFERENCES
|
||||||
#define BOOST_NO_SFINAE_EXPR
|
#define BOOST_NO_SFINAE_EXPR
|
||||||
#define BOOST_NO_TEMPLATE_ALIASES
|
#define BOOST_NO_TEMPLATE_ALIASES
|
||||||
#define BOOST_NO_UNICODE_LITERALS
|
#define BOOST_NO_UNICODE_LITERALS
|
||||||
#define BOOST_NO_VARIADIC_TEMPLATES
|
#define BOOST_NO_VARIADIC_TEMPLATES
|
||||||
|
#define BOOST_NO_UNIFIED_INITIALIZATION_SYNTAX
|
||||||
//
|
|
||||||
// TR1 macros:
|
//
|
||||||
//
|
// TR1 macros:
|
||||||
#define BOOST_HAS_TR1_HASH
|
//
|
||||||
#define BOOST_HAS_TR1_TYPE_TRAITS
|
#define BOOST_HAS_TR1_HASH
|
||||||
#define BOOST_HAS_TR1_UNORDERED_MAP
|
#define BOOST_HAS_TR1_TYPE_TRAITS
|
||||||
#define BOOST_HAS_TR1_UNORDERED_SET
|
#define BOOST_HAS_TR1_UNORDERED_MAP
|
||||||
|
#define BOOST_HAS_TR1_UNORDERED_SET
|
||||||
#define BOOST_HAS_MACRO_USE_FACET
|
|
||||||
|
#define BOOST_HAS_MACRO_USE_FACET
|
||||||
#define BOOST_NO_INITIALIZER_LISTS
|
|
||||||
|
#define BOOST_NO_INITIALIZER_LISTS
|
||||||
// On non-Win32 platforms let the platform config figure this out:
|
|
||||||
#ifdef _WIN32
|
// On non-Win32 platforms let the platform config figure this out:
|
||||||
# define BOOST_HAS_STDINT_H
|
#ifdef _WIN32
|
||||||
#endif
|
# define BOOST_HAS_STDINT_H
|
||||||
|
#endif
|
||||||
//
|
|
||||||
// __int64:
|
//
|
||||||
//
|
// __int64:
|
||||||
#if !defined(__STRICT_ANSI__)
|
//
|
||||||
# define BOOST_HAS_MS_INT64
|
#if !defined(__STRICT_ANSI__)
|
||||||
#endif
|
# define BOOST_HAS_MS_INT64
|
||||||
//
|
#endif
|
||||||
// check for exception handling support:
|
//
|
||||||
//
|
// check for exception handling support:
|
||||||
#if !defined(_CPPUNWIND) && !defined(BOOST_CPPUNWIND) && !defined(__EXCEPTIONS) && !defined(BOOST_NO_EXCEPTIONS)
|
//
|
||||||
# define BOOST_NO_EXCEPTIONS
|
#if !defined(_CPPUNWIND) && !defined(BOOST_CPPUNWIND) && !defined(__EXCEPTIONS) && !defined(BOOST_NO_EXCEPTIONS)
|
||||||
#endif
|
# define BOOST_NO_EXCEPTIONS
|
||||||
//
|
#endif
|
||||||
// all versions have a <dirent.h>:
|
//
|
||||||
//
|
// all versions have a <dirent.h>:
|
||||||
#if !defined(__STRICT_ANSI__)
|
//
|
||||||
# define BOOST_HAS_DIRENT_H
|
#if !defined(__STRICT_ANSI__)
|
||||||
#endif
|
# define BOOST_HAS_DIRENT_H
|
||||||
//
|
#endif
|
||||||
// all versions support __declspec:
|
//
|
||||||
//
|
// all versions support __declspec:
|
||||||
#if defined(__STRICT_ANSI__)
|
//
|
||||||
// config/platform/win32.hpp will define BOOST_SYMBOL_EXPORT, etc., unless already defined
|
#if defined(__STRICT_ANSI__)
|
||||||
# define BOOST_SYMBOL_EXPORT
|
// config/platform/win32.hpp will define BOOST_SYMBOL_EXPORT, etc., unless already defined
|
||||||
#endif
|
# define BOOST_SYMBOL_EXPORT
|
||||||
//
|
#endif
|
||||||
// ABI fixing headers:
|
//
|
||||||
//
|
// ABI fixing headers:
|
||||||
#ifndef BOOST_ABI_PREFIX
|
//
|
||||||
# define BOOST_ABI_PREFIX "boost/config/abi/borland_prefix.hpp"
|
#ifndef BOOST_ABI_PREFIX
|
||||||
#endif
|
# define BOOST_ABI_PREFIX "boost/config/abi/borland_prefix.hpp"
|
||||||
#ifndef BOOST_ABI_SUFFIX
|
#endif
|
||||||
# define BOOST_ABI_SUFFIX "boost/config/abi/borland_suffix.hpp"
|
#ifndef BOOST_ABI_SUFFIX
|
||||||
#endif
|
# define BOOST_ABI_SUFFIX "boost/config/abi/borland_suffix.hpp"
|
||||||
//
|
#endif
|
||||||
// Disable Win32 support in ANSI mode:
|
//
|
||||||
//
|
// Disable Win32 support in ANSI mode:
|
||||||
# pragma defineonoption BOOST_DISABLE_WIN32 -A
|
//
|
||||||
//
|
# pragma defineonoption BOOST_DISABLE_WIN32 -A
|
||||||
// MSVC compatibility mode does some nasty things:
|
//
|
||||||
// TODO: look up if this doesn't apply to the whole 12xx range
|
// MSVC compatibility mode does some nasty things:
|
||||||
//
|
// TODO: look up if this doesn't apply to the whole 12xx range
|
||||||
#if defined(_MSC_VER) && (_MSC_VER <= 1200)
|
//
|
||||||
# define BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP
|
#if defined(_MSC_VER) && (_MSC_VER <= 1200)
|
||||||
# define BOOST_NO_VOID_RETURNS
|
# define BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP
|
||||||
#endif
|
# define BOOST_NO_VOID_RETURNS
|
||||||
|
#endif
|
||||||
#define BOOST_COMPILER "CodeGear C++ version " BOOST_STRINGIZE(__CODEGEARC__)
|
|
||||||
|
#define BOOST_COMPILER "CodeGear C++ version " BOOST_STRINGIZE(__CODEGEARC__)
|
||||||
|
|
||||||
|
|
|
@ -1,59 +1,59 @@
|
||||||
// (C) Copyright John Maddock 2001.
|
// (C) Copyright John Maddock 2001.
|
||||||
// (C) Copyright Douglas Gregor 2001.
|
// (C) Copyright Douglas Gregor 2001.
|
||||||
// (C) Copyright Peter Dimov 2001.
|
// (C) Copyright Peter Dimov 2001.
|
||||||
// (C) Copyright Aleksey Gurtovoy 2003.
|
// (C) Copyright Aleksey Gurtovoy 2003.
|
||||||
// (C) Copyright Beman Dawes 2003.
|
// (C) Copyright Beman Dawes 2003.
|
||||||
// (C) Copyright Jens Maurer 2003.
|
// (C) Copyright Jens Maurer 2003.
|
||||||
// Use, modification and distribution are subject to the
|
// Use, modification and distribution are subject to the
|
||||||
// Boost Software License, Version 1.0. (See accompanying file
|
// Boost Software License, Version 1.0. (See accompanying file
|
||||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
|
||||||
// See http://www.boost.org for most recent version.
|
// See http://www.boost.org for most recent version.
|
||||||
|
|
||||||
// Comeau C++ compiler setup:
|
// Comeau C++ compiler setup:
|
||||||
|
|
||||||
#include "boost/config/compiler/common_edg.hpp"
|
#include "boost/config/compiler/common_edg.hpp"
|
||||||
|
|
||||||
#if (__COMO_VERSION__ <= 4245)
|
#if (__COMO_VERSION__ <= 4245)
|
||||||
|
|
||||||
# if defined(_MSC_VER) && _MSC_VER <= 1300
|
# if defined(_MSC_VER) && _MSC_VER <= 1300
|
||||||
# if _MSC_VER > 100
|
# if _MSC_VER > 100
|
||||||
// only set this in non-strict mode:
|
// only set this in non-strict mode:
|
||||||
# define BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP
|
# define BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP
|
||||||
# endif
|
# endif
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
// Void returns don't work when emulating VC 6 (Peter Dimov)
|
// Void returns don't work when emulating VC 6 (Peter Dimov)
|
||||||
// TODO: look up if this doesn't apply to the whole 12xx range
|
// TODO: look up if this doesn't apply to the whole 12xx range
|
||||||
# if defined(_MSC_VER) && (_MSC_VER < 1300)
|
# if defined(_MSC_VER) && (_MSC_VER < 1300)
|
||||||
# define BOOST_NO_VOID_RETURNS
|
# define BOOST_NO_VOID_RETURNS
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
#endif // version 4245
|
#endif // version 4245
|
||||||
|
|
||||||
//
|
//
|
||||||
// enable __int64 support in VC emulation mode
|
// enable __int64 support in VC emulation mode
|
||||||
//
|
//
|
||||||
# if defined(_MSC_VER) && (_MSC_VER >= 1200)
|
# if defined(_MSC_VER) && (_MSC_VER >= 1200)
|
||||||
# define BOOST_HAS_MS_INT64
|
# define BOOST_HAS_MS_INT64
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
#define BOOST_COMPILER "Comeau compiler version " BOOST_STRINGIZE(__COMO_VERSION__)
|
#define BOOST_COMPILER "Comeau compiler version " BOOST_STRINGIZE(__COMO_VERSION__)
|
||||||
|
|
||||||
//
|
//
|
||||||
// versions check:
|
// versions check:
|
||||||
// we don't know Comeau prior to version 4245:
|
// we don't know Comeau prior to version 4245:
|
||||||
#if __COMO_VERSION__ < 4245
|
#if __COMO_VERSION__ < 4245
|
||||||
# error "Compiler not configured - please reconfigure"
|
# error "Compiler not configured - please reconfigure"
|
||||||
#endif
|
#endif
|
||||||
//
|
//
|
||||||
// last known and checked version is 4245:
|
// last known and checked version is 4245:
|
||||||
#if (__COMO_VERSION__ > 4245)
|
#if (__COMO_VERSION__ > 4245)
|
||||||
# if defined(BOOST_ASSERT_CONFIG)
|
# if defined(BOOST_ASSERT_CONFIG)
|
||||||
# error "Unknown compiler version - please run the configure tests and report the results"
|
# error "Unknown compiler version - please run the configure tests and report the results"
|
||||||
# endif
|
# endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,97 +1,101 @@
|
||||||
// (C) Copyright John Maddock 2001 - 2002.
|
// (C) Copyright John Maddock 2001 - 2002.
|
||||||
// (C) Copyright Jens Maurer 2001.
|
// (C) Copyright Jens Maurer 2001.
|
||||||
// (C) Copyright David Abrahams 2002.
|
// (C) Copyright David Abrahams 2002.
|
||||||
// (C) Copyright Aleksey Gurtovoy 2002.
|
// (C) Copyright Aleksey Gurtovoy 2002.
|
||||||
// (C) Copyright Markus Schoepflin 2005.
|
// (C) Copyright Markus Schoepflin 2005.
|
||||||
// Use, modification and distribution are subject to the
|
// Use, modification and distribution are subject to the
|
||||||
// Boost Software License, Version 1.0. (See accompanying file
|
// Boost Software License, Version 1.0. (See accompanying file
|
||||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
|
||||||
// See http://www.boost.org for most recent version.
|
// See http://www.boost.org for most recent version.
|
||||||
|
|
||||||
//
|
//
|
||||||
// Options common to all edg based compilers.
|
// Options common to all edg based compilers.
|
||||||
//
|
//
|
||||||
// This is included from within the individual compiler mini-configs.
|
// This is included from within the individual compiler mini-configs.
|
||||||
|
|
||||||
#ifndef __EDG_VERSION__
|
#ifndef __EDG_VERSION__
|
||||||
# error This file requires that __EDG_VERSION__ be defined.
|
# error This file requires that __EDG_VERSION__ be defined.
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if (__EDG_VERSION__ <= 238)
|
#if (__EDG_VERSION__ <= 238)
|
||||||
# define BOOST_NO_INTEGRAL_INT64_T
|
# define BOOST_NO_INTEGRAL_INT64_T
|
||||||
# define BOOST_NO_SFINAE
|
# define BOOST_NO_SFINAE
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if (__EDG_VERSION__ <= 240)
|
#if (__EDG_VERSION__ <= 240)
|
||||||
# define BOOST_NO_VOID_RETURNS
|
# define BOOST_NO_VOID_RETURNS
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if (__EDG_VERSION__ <= 241) && !defined(BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP)
|
#if (__EDG_VERSION__ <= 241) && !defined(BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP)
|
||||||
# define BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP
|
# define BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if (__EDG_VERSION__ <= 244) && !defined(BOOST_NO_TEMPLATE_TEMPLATES)
|
#if (__EDG_VERSION__ <= 244) && !defined(BOOST_NO_TEMPLATE_TEMPLATES)
|
||||||
# define BOOST_NO_TEMPLATE_TEMPLATES
|
# define BOOST_NO_TEMPLATE_TEMPLATES
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if (__EDG_VERSION__ < 300) && !defined(BOOST_NO_IS_ABSTRACT)
|
#if (__EDG_VERSION__ < 300) && !defined(BOOST_NO_IS_ABSTRACT)
|
||||||
# define BOOST_NO_IS_ABSTRACT
|
# define BOOST_NO_IS_ABSTRACT
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if (__EDG_VERSION__ <= 303) && !defined(BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL)
|
#if (__EDG_VERSION__ <= 303) && !defined(BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL)
|
||||||
# define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
|
# define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// See also kai.hpp which checks a Kai-specific symbol for EH
|
// See also kai.hpp which checks a Kai-specific symbol for EH
|
||||||
# if !defined(__KCC) && !defined(__EXCEPTIONS) && !defined(BOOST_NO_EXCEPTIONS)
|
# if !defined(__KCC) && !defined(__EXCEPTIONS) && !defined(BOOST_NO_EXCEPTIONS)
|
||||||
# define BOOST_NO_EXCEPTIONS
|
# define BOOST_NO_EXCEPTIONS
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
# if !defined(__NO_LONG_LONG)
|
# if !defined(__NO_LONG_LONG)
|
||||||
# define BOOST_HAS_LONG_LONG
|
# define BOOST_HAS_LONG_LONG
|
||||||
# else
|
# else
|
||||||
# define BOOST_NO_LONG_LONG
|
# define BOOST_NO_LONG_LONG
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
//
|
//
|
||||||
// C++0x features
|
// C++0x features
|
||||||
//
|
//
|
||||||
// See above for BOOST_NO_LONG_LONG
|
// See above for BOOST_NO_LONG_LONG
|
||||||
//
|
//
|
||||||
#if (__EDG_VERSION__ < 310)
|
#if (__EDG_VERSION__ < 310)
|
||||||
# define BOOST_NO_EXTERN_TEMPLATE
|
# define BOOST_NO_EXTERN_TEMPLATE
|
||||||
#endif
|
#endif
|
||||||
#if (__EDG_VERSION__ <= 310) || !defined(BOOST_STRICT_CONFIG)
|
#if (__EDG_VERSION__ <= 310)
|
||||||
// No support for initializer lists
|
// No support for initializer lists
|
||||||
# define BOOST_NO_INITIALIZER_LISTS
|
# define BOOST_NO_INITIALIZER_LISTS
|
||||||
#endif
|
#endif
|
||||||
|
#if (__EDG_VERSION__ < 400)
|
||||||
#define BOOST_NO_AUTO_DECLARATIONS
|
# define BOOST_NO_VARIADIC_MACROS
|
||||||
#define BOOST_NO_AUTO_MULTIDECLARATIONS
|
#endif
|
||||||
#define BOOST_NO_CHAR16_T
|
|
||||||
#define BOOST_NO_CHAR32_T
|
#define BOOST_NO_AUTO_DECLARATIONS
|
||||||
#define BOOST_NO_CONCEPTS
|
#define BOOST_NO_AUTO_MULTIDECLARATIONS
|
||||||
#define BOOST_NO_CONSTEXPR
|
#define BOOST_NO_CHAR16_T
|
||||||
#define BOOST_NO_DECLTYPE
|
#define BOOST_NO_CHAR32_T
|
||||||
#define BOOST_NO_DEFAULTED_FUNCTIONS
|
#define BOOST_NO_CONSTEXPR
|
||||||
#define BOOST_NO_DELETED_FUNCTIONS
|
#define BOOST_NO_DECLTYPE
|
||||||
#define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS
|
#define BOOST_NO_DECLTYPE_N3276
|
||||||
#define BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS
|
#define BOOST_NO_DEFAULTED_FUNCTIONS
|
||||||
#define BOOST_NO_LAMBDAS
|
#define BOOST_NO_DELETED_FUNCTIONS
|
||||||
#define BOOST_NO_NULLPTR
|
#define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS
|
||||||
#define BOOST_NO_RAW_LITERALS
|
#define BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS
|
||||||
#define BOOST_NO_RVALUE_REFERENCES
|
#define BOOST_NO_LAMBDAS
|
||||||
#define BOOST_NO_SCOPED_ENUMS
|
#define BOOST_NO_NOEXCEPT
|
||||||
#define BOOST_NO_SFINAE_EXPR
|
#define BOOST_NO_NULLPTR
|
||||||
#define BOOST_NO_STATIC_ASSERT
|
#define BOOST_NO_RAW_LITERALS
|
||||||
#define BOOST_NO_TEMPLATE_ALIASES
|
#define BOOST_NO_RVALUE_REFERENCES
|
||||||
#define BOOST_NO_UNICODE_LITERALS
|
#define BOOST_NO_SCOPED_ENUMS
|
||||||
#define BOOST_NO_VARIADIC_TEMPLATES
|
#define BOOST_NO_SFINAE_EXPR
|
||||||
#define BOOST_NO_VARIADIC_MACROS
|
#define BOOST_NO_STATIC_ASSERT
|
||||||
|
#define BOOST_NO_TEMPLATE_ALIASES
|
||||||
#ifdef c_plusplus
|
#define BOOST_NO_UNICODE_LITERALS
|
||||||
// EDG has "long long" in non-strict mode
|
#define BOOST_NO_VARIADIC_TEMPLATES
|
||||||
// However, some libraries have insufficient "long long" support
|
#define BOOST_NO_UNIFIED_INITIALIZATION_SYNTAX
|
||||||
// #define BOOST_HAS_LONG_LONG
|
|
||||||
#endif
|
#ifdef c_plusplus
|
||||||
|
// EDG has "long long" in non-strict mode
|
||||||
|
// However, some libraries have insufficient "long long" support
|
||||||
|
// #define BOOST_HAS_LONG_LONG
|
||||||
|
#endif
|
||||||
|
|
|
@ -1,19 +1,19 @@
|
||||||
// (C) Copyright John Maddock 2001 - 2003.
|
// (C) Copyright John Maddock 2001 - 2003.
|
||||||
// Use, modification and distribution are subject to the
|
// Use, modification and distribution are subject to the
|
||||||
// Boost Software License, Version 1.0. (See accompanying file
|
// Boost Software License, Version 1.0. (See accompanying file
|
||||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
|
||||||
// See http://www.boost.org for most recent version.
|
// See http://www.boost.org for most recent version.
|
||||||
|
|
||||||
// Tru64 C++ compiler setup (now HP):
|
// Tru64 C++ compiler setup (now HP):
|
||||||
|
|
||||||
#define BOOST_COMPILER "HP Tru64 C++ " BOOST_STRINGIZE(__DECCXX_VER)
|
#define BOOST_COMPILER "HP Tru64 C++ " BOOST_STRINGIZE(__DECCXX_VER)
|
||||||
|
|
||||||
#include "boost/config/compiler/common_edg.hpp"
|
#include "boost/config/compiler/common_edg.hpp"
|
||||||
|
|
||||||
//
|
//
|
||||||
// versions check:
|
// versions check:
|
||||||
// Nothing to do here?
|
// Nothing to do here?
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,61 @@
|
||||||
|
// (C) Copyright John Maddock 2011.
|
||||||
|
// Use, modification and distribution are subject to the
|
||||||
|
// Boost Software License, Version 1.0. (See accompanying file
|
||||||
|
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
|
||||||
|
// See http://www.boost.org for most recent version.
|
||||||
|
|
||||||
|
// Greenhills C compiler setup:
|
||||||
|
|
||||||
|
#define BOOST_COMPILER "Cray C version " BOOST_STRINGIZE(_RELEASE)
|
||||||
|
|
||||||
|
#if _RELEASE < 7
|
||||||
|
# error "Boost is not configured for Cray compilers prior to version 7, please try the configure script."
|
||||||
|
#endif
|
||||||
|
|
||||||
|
//
|
||||||
|
// Check this is a recent EDG based compiler, otherwise we don't support it here:
|
||||||
|
//
|
||||||
|
#ifndef __EDG_VERSION__
|
||||||
|
# error "Unsupported Cray compiler, please try running the configure script."
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include "boost/config/compiler/common_edg.hpp"
|
||||||
|
|
||||||
|
//
|
||||||
|
// Cray peculiarities, probably version 7 specific:
|
||||||
|
//
|
||||||
|
#undef BOOST_NO_AUTO_DECLARATIONS
|
||||||
|
#undef BOOST_NO_AUTO_MULTIDECLARATIONS
|
||||||
|
#define BOOST_HAS_NRVO
|
||||||
|
#define BOOST_NO_VARIADIC_TEMPLATES
|
||||||
|
#define BOOST_NO_UNIFIED_INITIALIZATION_SYNTAX
|
||||||
|
#define BOOST_NO_UNICODE_LITERALS
|
||||||
|
#define BOOST_NO_TWO_PHASE_NAME_LOOKUP
|
||||||
|
#define BOOST_HAS_NRVO
|
||||||
|
#define BOOST_NO_TEMPLATE_ALIASES
|
||||||
|
#define BOOST_NO_STATIC_ASSERT
|
||||||
|
#define BOOST_NO_SFINAE_EXPR
|
||||||
|
#define BOOST_NO_SCOPED_ENUMS
|
||||||
|
#define BOOST_NO_RVALUE_REFERENCES
|
||||||
|
#define BOOST_NO_RAW_LITERALS
|
||||||
|
#define BOOST_NO_NULLPTR
|
||||||
|
#define BOOST_NO_NOEXCEPT
|
||||||
|
#define BOOST_NO_LAMBDAS
|
||||||
|
#define BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS
|
||||||
|
#define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS
|
||||||
|
#define BOOST_NO_DELETED_FUNCTIONS
|
||||||
|
#define BOOST_NO_DEFAULTED_FUNCTIONS
|
||||||
|
#define BOOST_NO_DECLTYPE_N3276
|
||||||
|
#define BOOST_NO_DECLTYPE
|
||||||
|
#define BOOST_NO_CONSTEXPR
|
||||||
|
#define BOOST_NO_COMPLETE_VALUE_INITIALIZATION
|
||||||
|
#define BOOST_NO_CHAR32_T
|
||||||
|
#define BOOST_NO_CHAR16_T
|
||||||
|
//#define BOOST_BCB_PARTIAL_SPECIALIZATION_BUG
|
||||||
|
#define BOOST_MATH_DISABLE_STD_FPCLASSIFY
|
||||||
|
//#define BOOST_HAS_FPCLASSIFY
|
||||||
|
|
||||||
|
#define BOOST_SP_USE_PTHREADS
|
||||||
|
#define BOOST_AC_USE_PTHREADS
|
||||||
|
|
|
@ -1,96 +1,101 @@
|
||||||
// Copyright (C) Christof Meerwald 2003
|
// Copyright (C) Christof Meerwald 2003
|
||||||
// Copyright (C) Dan Watkins 2003
|
// Copyright (C) Dan Watkins 2003
|
||||||
//
|
//
|
||||||
// Use, modification and distribution are subject to the
|
// Use, modification and distribution are subject to the
|
||||||
// Boost Software License, Version 1.0. (See accompanying file
|
// Boost Software License, Version 1.0. (See accompanying file
|
||||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
|
||||||
// Digital Mars C++ compiler setup:
|
// Digital Mars C++ compiler setup:
|
||||||
#define BOOST_COMPILER __DMC_VERSION_STRING__
|
#define BOOST_COMPILER __DMC_VERSION_STRING__
|
||||||
|
|
||||||
#define BOOST_HAS_LONG_LONG
|
#define BOOST_HAS_LONG_LONG
|
||||||
#define BOOST_HAS_PRAGMA_ONCE
|
#define BOOST_HAS_PRAGMA_ONCE
|
||||||
|
|
||||||
#if (__DMC__ <= 0x833)
|
#if (__DMC__ <= 0x833)
|
||||||
#define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
|
#define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
|
||||||
#define BOOST_NO_TEMPLATE_TEMPLATES
|
#define BOOST_NO_TEMPLATE_TEMPLATES
|
||||||
#define BOOST_NEEDS_TOKEN_PASTING_OP_FOR_TOKENS_JUXTAPOSING
|
#define BOOST_NEEDS_TOKEN_PASTING_OP_FOR_TOKENS_JUXTAPOSING
|
||||||
#define BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS
|
#define BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS
|
||||||
#define BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS
|
#define BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS
|
||||||
#endif
|
#endif
|
||||||
#if (__DMC__ <= 0x840) || !defined(BOOST_STRICT_CONFIG)
|
#if (__DMC__ <= 0x840) || !defined(BOOST_STRICT_CONFIG)
|
||||||
#define BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS
|
#define BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS
|
||||||
#define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
|
#define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
|
||||||
#define BOOST_NO_OPERATORS_IN_NAMESPACE
|
#define BOOST_NO_OPERATORS_IN_NAMESPACE
|
||||||
#define BOOST_NO_UNREACHABLE_RETURN_DETECTION
|
#define BOOST_NO_UNREACHABLE_RETURN_DETECTION
|
||||||
#define BOOST_NO_SFINAE
|
#define BOOST_NO_SFINAE
|
||||||
#define BOOST_NO_USING_TEMPLATE
|
#define BOOST_NO_USING_TEMPLATE
|
||||||
#define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
|
#define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//
|
//
|
||||||
// has macros:
|
// has macros:
|
||||||
#if (__DMC__ >= 0x840)
|
#if (__DMC__ >= 0x840)
|
||||||
#define BOOST_HAS_DIRENT_H
|
#define BOOST_HAS_DIRENT_H
|
||||||
#define BOOST_HAS_STDINT_H
|
#define BOOST_HAS_STDINT_H
|
||||||
#define BOOST_HAS_WINTHREADS
|
#define BOOST_HAS_WINTHREADS
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if (__DMC__ >= 0x847)
|
#if (__DMC__ >= 0x847)
|
||||||
#define BOOST_HAS_EXPM1
|
#define BOOST_HAS_EXPM1
|
||||||
#define BOOST_HAS_LOG1P
|
#define BOOST_HAS_LOG1P
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//
|
//
|
||||||
// Is this really the best way to detect whether the std lib is in namespace std?
|
// Is this really the best way to detect whether the std lib is in namespace std?
|
||||||
//
|
//
|
||||||
#include <cstddef>
|
#ifdef __cplusplus
|
||||||
#if !defined(__STL_IMPORT_VENDOR_CSTD) && !defined(_STLP_IMPORT_VENDOR_CSTD)
|
#include <cstddef>
|
||||||
# define BOOST_NO_STDC_NAMESPACE
|
#endif
|
||||||
#endif
|
#if !defined(__STL_IMPORT_VENDOR_CSTD) && !defined(_STLP_IMPORT_VENDOR_CSTD)
|
||||||
|
# define BOOST_NO_STDC_NAMESPACE
|
||||||
|
#endif
|
||||||
// check for exception handling support:
|
|
||||||
#if !defined(_CPPUNWIND) && !defined(BOOST_NO_EXCEPTIONS)
|
|
||||||
# define BOOST_NO_EXCEPTIONS
|
// check for exception handling support:
|
||||||
#endif
|
#if !defined(_CPPUNWIND) && !defined(BOOST_NO_EXCEPTIONS)
|
||||||
|
# define BOOST_NO_EXCEPTIONS
|
||||||
//
|
#endif
|
||||||
// C++0x features
|
|
||||||
//
|
//
|
||||||
#define BOOST_NO_AUTO_DECLARATIONS
|
// C++0x features
|
||||||
#define BOOST_NO_AUTO_MULTIDECLARATIONS
|
//
|
||||||
#define BOOST_NO_CHAR16_T
|
#define BOOST_NO_AUTO_DECLARATIONS
|
||||||
#define BOOST_NO_CHAR32_T
|
#define BOOST_NO_AUTO_MULTIDECLARATIONS
|
||||||
#define BOOST_NO_CONCEPTS
|
#define BOOST_NO_CHAR16_T
|
||||||
#define BOOST_NO_CONSTEXPR
|
#define BOOST_NO_CHAR32_T
|
||||||
#define BOOST_NO_DECLTYPE
|
#define BOOST_NO_CONSTEXPR
|
||||||
#define BOOST_NO_DEFAULTED_FUNCTIONS
|
#define BOOST_NO_DECLTYPE
|
||||||
#define BOOST_NO_DELETED_FUNCTIONS
|
#define BOOST_NO_DECLTYPE_N3276
|
||||||
#define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS
|
#define BOOST_NO_DEFAULTED_FUNCTIONS
|
||||||
#define BOOST_NO_EXTERN_TEMPLATE
|
#define BOOST_NO_DELETED_FUNCTIONS
|
||||||
#define BOOST_NO_INITIALIZER_LISTS
|
#define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS
|
||||||
#define BOOST_NO_LAMBDAS
|
#define BOOST_NO_EXTERN_TEMPLATE
|
||||||
#define BOOST_NO_NULLPTR
|
#define BOOST_NO_INITIALIZER_LISTS
|
||||||
#define BOOST_NO_RAW_LITERALS
|
#define BOOST_NO_LAMBDAS
|
||||||
#define BOOST_NO_RVALUE_REFERENCES
|
#define BOOST_NO_NOEXCEPT
|
||||||
#define BOOST_NO_SCOPED_ENUMS
|
#define BOOST_NO_NULLPTR
|
||||||
#define BOOST_NO_SFINAE_EXPR
|
#define BOOST_NO_RAW_LITERALS
|
||||||
#define BOOST_NO_STATIC_ASSERT
|
#define BOOST_NO_RVALUE_REFERENCES
|
||||||
#define BOOST_NO_TEMPLATE_ALIASES
|
#define BOOST_NO_SCOPED_ENUMS
|
||||||
#define BOOST_NO_UNICODE_LITERALS
|
#define BOOST_NO_SFINAE_EXPR
|
||||||
#define BOOST_NO_VARIADIC_TEMPLATES
|
#define BOOST_NO_STATIC_ASSERT
|
||||||
#if (__DMC__ < 0x812)
|
#define BOOST_NO_TEMPLATE_ALIASES
|
||||||
#define BOOST_NO_VARIADIC_MACROS
|
#define BOOST_NO_UNICODE_LITERALS
|
||||||
#endif
|
#define BOOST_NO_VARIADIC_TEMPLATES
|
||||||
|
#define BOOST_NO_UNIFIED_INITIALIZATION_SYNTAX
|
||||||
#if __DMC__ < 0x800
|
|
||||||
#error "Compiler not supported or configured - please reconfigure"
|
#if (__DMC__ < 0x812)
|
||||||
#endif
|
#define BOOST_NO_VARIADIC_MACROS
|
||||||
//
|
#endif
|
||||||
// last known and checked version is ...:
|
|
||||||
#if (__DMC__ > 0x848)
|
#if __DMC__ < 0x800
|
||||||
# if defined(BOOST_ASSERT_CONFIG)
|
#error "Compiler not supported or configured - please reconfigure"
|
||||||
# error "Unknown compiler version - please run the configure tests and report the results"
|
#endif
|
||||||
# endif
|
//
|
||||||
#endif
|
// last known and checked version is ...:
|
||||||
|
#if (__DMC__ > 0x848)
|
||||||
|
# if defined(BOOST_ASSERT_CONFIG)
|
||||||
|
# error "Unknown compiler version - please run the configure tests and report the results"
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
|
|
@ -1,245 +1,252 @@
|
||||||
// (C) Copyright John Maddock 2001 - 2003.
|
// (C) Copyright John Maddock 2001 - 2003.
|
||||||
// (C) Copyright Darin Adler 2001 - 2002.
|
// (C) Copyright Darin Adler 2001 - 2002.
|
||||||
// (C) Copyright Jens Maurer 2001 - 2002.
|
// (C) Copyright Jens Maurer 2001 - 2002.
|
||||||
// (C) Copyright Beman Dawes 2001 - 2003.
|
// (C) Copyright Beman Dawes 2001 - 2003.
|
||||||
// (C) Copyright Douglas Gregor 2002.
|
// (C) Copyright Douglas Gregor 2002.
|
||||||
// (C) Copyright David Abrahams 2002 - 2003.
|
// (C) Copyright David Abrahams 2002 - 2003.
|
||||||
// (C) Copyright Synge Todo 2003.
|
// (C) Copyright Synge Todo 2003.
|
||||||
// Use, modification and distribution are subject to the
|
// Use, modification and distribution are subject to the
|
||||||
// Boost Software License, Version 1.0. (See accompanying file
|
// Boost Software License, Version 1.0. (See accompanying file
|
||||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
|
||||||
// See http://www.boost.org for most recent version.
|
// See http://www.boost.org for most recent version.
|
||||||
|
|
||||||
// GNU C++ compiler setup:
|
// GNU C++ compiler setup:
|
||||||
|
|
||||||
#if __GNUC__ < 3
|
#if __GNUC__ < 3
|
||||||
# if __GNUC_MINOR__ == 91
|
# if __GNUC_MINOR__ == 91
|
||||||
// egcs 1.1 won't parse shared_ptr.hpp without this:
|
// egcs 1.1 won't parse shared_ptr.hpp without this:
|
||||||
# define BOOST_NO_AUTO_PTR
|
# define BOOST_NO_AUTO_PTR
|
||||||
# endif
|
# endif
|
||||||
# if __GNUC_MINOR__ < 95
|
# if __GNUC_MINOR__ < 95
|
||||||
//
|
//
|
||||||
// Prior to gcc 2.95 member templates only partly
|
// Prior to gcc 2.95 member templates only partly
|
||||||
// work - define BOOST_MSVC6_MEMBER_TEMPLATES
|
// work - define BOOST_MSVC6_MEMBER_TEMPLATES
|
||||||
// instead since inline member templates mostly work.
|
// instead since inline member templates mostly work.
|
||||||
//
|
//
|
||||||
# define BOOST_NO_MEMBER_TEMPLATES
|
# define BOOST_NO_MEMBER_TEMPLATES
|
||||||
# if __GNUC_MINOR__ >= 9
|
# if __GNUC_MINOR__ >= 9
|
||||||
# define BOOST_MSVC6_MEMBER_TEMPLATES
|
# define BOOST_MSVC6_MEMBER_TEMPLATES
|
||||||
# endif
|
# endif
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
# if __GNUC_MINOR__ < 96
|
# if __GNUC_MINOR__ < 96
|
||||||
# define BOOST_NO_SFINAE
|
# define BOOST_NO_SFINAE
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
# if __GNUC_MINOR__ <= 97
|
# if __GNUC_MINOR__ <= 97
|
||||||
# define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
|
# define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
|
||||||
# define BOOST_NO_OPERATORS_IN_NAMESPACE
|
# define BOOST_NO_OPERATORS_IN_NAMESPACE
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
# define BOOST_NO_USING_DECLARATION_OVERLOADS_FROM_TYPENAME_BASE
|
# define BOOST_NO_USING_DECLARATION_OVERLOADS_FROM_TYPENAME_BASE
|
||||||
# define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
|
# define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
|
||||||
# define BOOST_NO_IS_ABSTRACT
|
# define BOOST_NO_IS_ABSTRACT
|
||||||
# define BOOST_NO_EXTERN_TEMPLATE
|
# define BOOST_NO_EXTERN_TEMPLATE
|
||||||
// Variadic macros do not exist for gcc versions before 3.0
|
// Variadic macros do not exist for gcc versions before 3.0
|
||||||
# define BOOST_NO_VARIADIC_MACROS
|
# define BOOST_NO_VARIADIC_MACROS
|
||||||
#elif __GNUC__ == 3
|
#elif __GNUC__ == 3
|
||||||
# if defined (__PATHSCALE__)
|
# if defined (__PATHSCALE__)
|
||||||
# define BOOST_NO_TWO_PHASE_NAME_LOOKUP
|
# define BOOST_NO_TWO_PHASE_NAME_LOOKUP
|
||||||
# define BOOST_NO_IS_ABSTRACT
|
# define BOOST_NO_IS_ABSTRACT
|
||||||
# endif
|
# endif
|
||||||
//
|
//
|
||||||
// gcc-3.x problems:
|
// gcc-3.x problems:
|
||||||
//
|
//
|
||||||
// Bug specific to gcc 3.1 and 3.2:
|
// Bug specific to gcc 3.1 and 3.2:
|
||||||
//
|
//
|
||||||
# if ((__GNUC_MINOR__ == 1) || (__GNUC_MINOR__ == 2))
|
# if ((__GNUC_MINOR__ == 1) || (__GNUC_MINOR__ == 2))
|
||||||
# define BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS
|
# define BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS
|
||||||
# endif
|
# endif
|
||||||
# if __GNUC_MINOR__ < 4
|
# if __GNUC_MINOR__ < 4
|
||||||
# define BOOST_NO_IS_ABSTRACT
|
# define BOOST_NO_IS_ABSTRACT
|
||||||
# endif
|
# endif
|
||||||
# define BOOST_NO_EXTERN_TEMPLATE
|
# define BOOST_NO_EXTERN_TEMPLATE
|
||||||
#endif
|
#endif
|
||||||
#if __GNUC__ < 4
|
#if __GNUC__ < 4
|
||||||
//
|
//
|
||||||
// All problems to gcc-3.x and earlier here:
|
// All problems to gcc-3.x and earlier here:
|
||||||
//
|
//
|
||||||
#define BOOST_NO_TWO_PHASE_NAME_LOOKUP
|
#define BOOST_NO_TWO_PHASE_NAME_LOOKUP
|
||||||
# ifdef __OPEN64__
|
# ifdef __OPEN64__
|
||||||
# define BOOST_NO_IS_ABSTRACT
|
# define BOOST_NO_IS_ABSTRACT
|
||||||
# endif
|
# endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if __GNUC__ < 4 || ( __GNUC__ == 4 && __GNUC_MINOR__ < 4 )
|
#if __GNUC__ < 4 || ( __GNUC__ == 4 && __GNUC_MINOR__ < 4 )
|
||||||
// Previous versions of GCC did not completely implement value-initialization:
|
// Previous versions of GCC did not completely implement value-initialization:
|
||||||
// GCC Bug 30111, "Value-initialization of POD base class doesn't initialize
|
// GCC Bug 30111, "Value-initialization of POD base class doesn't initialize
|
||||||
// members", reported by Jonathan Wakely in 2006,
|
// members", reported by Jonathan Wakely in 2006,
|
||||||
// http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30111 (fixed for GCC 4.4)
|
// http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30111 (fixed for GCC 4.4)
|
||||||
// GCC Bug 33916, "Default constructor fails to initialize array members",
|
// GCC Bug 33916, "Default constructor fails to initialize array members",
|
||||||
// reported by Michael Elizabeth Chastain in 2007,
|
// reported by Michael Elizabeth Chastain in 2007,
|
||||||
// http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33916 (fixed for GCC 4.2.4)
|
// http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33916 (fixed for GCC 4.2.4)
|
||||||
// See also: http://www.boost.org/libs/utility/value_init.htm#compiler_issues
|
// See also: http://www.boost.org/libs/utility/value_init.htm#compiler_issues
|
||||||
#define BOOST_NO_COMPLETE_VALUE_INITIALIZATION
|
#define BOOST_NO_COMPLETE_VALUE_INITIALIZATION
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if !defined(__EXCEPTIONS) && !defined(BOOST_NO_EXCEPTIONS)
|
#if !defined(__EXCEPTIONS) && !defined(BOOST_NO_EXCEPTIONS)
|
||||||
# define BOOST_NO_EXCEPTIONS
|
# define BOOST_NO_EXCEPTIONS
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
//
|
//
|
||||||
// Threading support: Turn this on unconditionally here (except for
|
// Threading support: Turn this on unconditionally here (except for
|
||||||
// those platforms where we can know for sure). It will get turned off again
|
// those platforms where we can know for sure). It will get turned off again
|
||||||
// later if no threading API is detected.
|
// later if no threading API is detected.
|
||||||
//
|
//
|
||||||
#if !defined(__MINGW32__) && !defined(linux) && !defined(__linux) && !defined(__linux__)
|
#if !defined(__MINGW32__) && !defined(linux) && !defined(__linux) && !defined(__linux__)
|
||||||
# define BOOST_HAS_THREADS
|
# define BOOST_HAS_THREADS
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//
|
//
|
||||||
// gcc has "long long"
|
// gcc has "long long"
|
||||||
//
|
//
|
||||||
#define BOOST_HAS_LONG_LONG
|
#define BOOST_HAS_LONG_LONG
|
||||||
|
|
||||||
//
|
//
|
||||||
// gcc implements the named return value optimization since version 3.1
|
// gcc implements the named return value optimization since version 3.1
|
||||||
//
|
//
|
||||||
#if __GNUC__ > 3 || ( __GNUC__ == 3 && __GNUC_MINOR__ >= 1 )
|
#if __GNUC__ > 3 || ( __GNUC__ == 3 && __GNUC_MINOR__ >= 1 )
|
||||||
#define BOOST_HAS_NRVO
|
#define BOOST_HAS_NRVO
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//
|
//
|
||||||
// Dynamic shared object (DSO) and dynamic-link library (DLL) support
|
// Dynamic shared object (DSO) and dynamic-link library (DLL) support
|
||||||
//
|
//
|
||||||
#if __GNUC__ >= 4
|
#if __GNUC__ >= 4
|
||||||
# if (defined(_WIN32) || defined(__WIN32__) || defined(WIN32)) && !defined(__CYGWIN__)
|
# if (defined(_WIN32) || defined(__WIN32__) || defined(WIN32)) && !defined(__CYGWIN__)
|
||||||
// All Win32 development environments, including 64-bit Windows and MinGW, define
|
// All Win32 development environments, including 64-bit Windows and MinGW, define
|
||||||
// _WIN32 or one of its variant spellings. Note that Cygwin is a POSIX environment,
|
// _WIN32 or one of its variant spellings. Note that Cygwin is a POSIX environment,
|
||||||
// so does not define _WIN32 or its variants.
|
// so does not define _WIN32 or its variants.
|
||||||
# define BOOST_HAS_DECLSPEC
|
# define BOOST_HAS_DECLSPEC
|
||||||
# define BOOST_SYMBOL_EXPORT __attribute__((dllexport))
|
# define BOOST_SYMBOL_EXPORT __attribute__((dllexport))
|
||||||
# define BOOST_SYMBOL_IMPORT __attribute__((dllimport))
|
# define BOOST_SYMBOL_IMPORT __attribute__((dllimport))
|
||||||
# else
|
# else
|
||||||
# define BOOST_SYMBOL_EXPORT __attribute__((visibility("default")))
|
# define BOOST_SYMBOL_EXPORT __attribute__((visibility("default")))
|
||||||
# define BOOST_SYMBOL_IMPORT
|
# define BOOST_SYMBOL_IMPORT
|
||||||
# endif
|
# endif
|
||||||
# define BOOST_SYMBOL_VISIBLE __attribute__((visibility("default")))
|
# define BOOST_SYMBOL_VISIBLE __attribute__((visibility("default")))
|
||||||
#else
|
#else
|
||||||
// config/platform/win32.hpp will define BOOST_SYMBOL_EXPORT, etc., unless already defined
|
// config/platform/win32.hpp will define BOOST_SYMBOL_EXPORT, etc., unless already defined
|
||||||
# define BOOST_SYMBOL_EXPORT
|
# define BOOST_SYMBOL_EXPORT
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//
|
//
|
||||||
// RTTI and typeinfo detection is possible post gcc-4.3:
|
// RTTI and typeinfo detection is possible post gcc-4.3:
|
||||||
//
|
//
|
||||||
#if __GNUC__ * 100 + __GNUC_MINOR__ >= 403
|
#if __GNUC__ * 100 + __GNUC_MINOR__ >= 403
|
||||||
# ifndef __GXX_RTTI
|
# ifndef __GXX_RTTI
|
||||||
# ifndef BOOST_NO_TYPEID
|
# ifndef BOOST_NO_TYPEID
|
||||||
# define BOOST_NO_TYPEID
|
# define BOOST_NO_TYPEID
|
||||||
# endif
|
# endif
|
||||||
# ifndef BOOST_NO_RTTI
|
# ifndef BOOST_NO_RTTI
|
||||||
# define BOOST_NO_RTTI
|
# define BOOST_NO_RTTI
|
||||||
# endif
|
# endif
|
||||||
# endif
|
# endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// C++0x features not implemented in any GCC version
|
// C++0x features not implemented in any GCC version
|
||||||
//
|
//
|
||||||
#define BOOST_NO_CONSTEXPR
|
#define BOOST_NO_TEMPLATE_ALIASES
|
||||||
#define BOOST_NO_NULLPTR
|
|
||||||
#define BOOST_NO_TEMPLATE_ALIASES
|
// C++0x features in 4.3.n and later
|
||||||
|
//
|
||||||
// C++0x features in 4.3.n and later
|
#if (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ > 2)) && defined(__GXX_EXPERIMENTAL_CXX0X__)
|
||||||
//
|
// C++0x features are only enabled when -std=c++0x or -std=gnu++0x are
|
||||||
#if (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ > 2)) && defined(__GXX_EXPERIMENTAL_CXX0X__)
|
// passed on the command line, which in turn defines
|
||||||
// C++0x features are only enabled when -std=c++0x or -std=gnu++0x are
|
// __GXX_EXPERIMENTAL_CXX0X__.
|
||||||
// passed on the command line, which in turn defines
|
# define BOOST_HAS_DECLTYPE
|
||||||
// __GXX_EXPERIMENTAL_CXX0X__.
|
# define BOOST_HAS_RVALUE_REFS
|
||||||
# define BOOST_HAS_DECLTYPE
|
# define BOOST_HAS_STATIC_ASSERT
|
||||||
# define BOOST_HAS_RVALUE_REFS
|
# define BOOST_HAS_VARIADIC_TMPL
|
||||||
# define BOOST_HAS_STATIC_ASSERT
|
#else
|
||||||
# define BOOST_HAS_VARIADIC_TMPL
|
# define BOOST_NO_DECLTYPE
|
||||||
#else
|
# define BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS
|
||||||
# define BOOST_NO_DECLTYPE
|
# define BOOST_NO_RVALUE_REFERENCES
|
||||||
# define BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS
|
# define BOOST_NO_STATIC_ASSERT
|
||||||
# define BOOST_NO_RVALUE_REFERENCES
|
|
||||||
# define BOOST_NO_STATIC_ASSERT
|
// Variadic templates compiler:
|
||||||
|
// http://www.generic-programming.org/~dgregor/cpp/variadic-templates.html
|
||||||
// Variadic templates compiler:
|
# if defined(__VARIADIC_TEMPLATES) || (__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 4) && defined(__GXX_EXPERIMENTAL_CXX0X__))
|
||||||
// http://www.generic-programming.org/~dgregor/cpp/variadic-templates.html
|
# define BOOST_HAS_VARIADIC_TMPL
|
||||||
# ifdef __VARIADIC_TEMPLATES
|
# else
|
||||||
# define BOOST_HAS_VARIADIC_TMPL
|
# define BOOST_NO_VARIADIC_TEMPLATES
|
||||||
# else
|
# endif
|
||||||
# define BOOST_NO_VARIADIC_TEMPLATES
|
#endif
|
||||||
# endif
|
|
||||||
#endif
|
// C++0x features in 4.4.n and later
|
||||||
|
//
|
||||||
// C++0x features in 4.4.n and later
|
#if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 4) || !defined(__GXX_EXPERIMENTAL_CXX0X__)
|
||||||
//
|
# define BOOST_NO_AUTO_DECLARATIONS
|
||||||
#if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 4) || !defined(__GXX_EXPERIMENTAL_CXX0X__)
|
# define BOOST_NO_AUTO_MULTIDECLARATIONS
|
||||||
# define BOOST_NO_AUTO_DECLARATIONS
|
# define BOOST_NO_CHAR16_T
|
||||||
# define BOOST_NO_AUTO_MULTIDECLARATIONS
|
# define BOOST_NO_CHAR32_T
|
||||||
# define BOOST_NO_CHAR16_T
|
# define BOOST_NO_INITIALIZER_LISTS
|
||||||
# define BOOST_NO_CHAR32_T
|
# define BOOST_NO_DEFAULTED_FUNCTIONS
|
||||||
# define BOOST_NO_DEFAULTED_FUNCTIONS
|
# define BOOST_NO_DELETED_FUNCTIONS
|
||||||
# define BOOST_NO_DELETED_FUNCTIONS
|
#endif
|
||||||
# define BOOST_NO_INITIALIZER_LISTS
|
|
||||||
# define BOOST_NO_SCOPED_ENUMS
|
#if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 4)
|
||||||
#endif
|
# define BOOST_NO_SFINAE_EXPR
|
||||||
|
#endif
|
||||||
#if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 4)
|
|
||||||
# define BOOST_NO_SFINAE_EXPR
|
// C++0x features in 4.5.0 and later
|
||||||
#endif
|
//
|
||||||
|
#if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 5) || !defined(__GXX_EXPERIMENTAL_CXX0X__)
|
||||||
// C++0x features in 4.4.1 and later
|
# define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS
|
||||||
//
|
# define BOOST_NO_LAMBDAS
|
||||||
#if (__GNUC__*10000 + __GNUC_MINOR__*100 + __GNUC_PATCHLEVEL__ < 40401) || !defined(__GXX_EXPERIMENTAL_CXX0X__)
|
# define BOOST_NO_RAW_LITERALS
|
||||||
// scoped enums have a serious bug in 4.4.0, so define BOOST_NO_SCOPED_ENUMS before 4.4.1
|
# define BOOST_NO_UNICODE_LITERALS
|
||||||
// See http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38064
|
#endif
|
||||||
# define BOOST_NO_SCOPED_ENUMS
|
|
||||||
#endif
|
// C++0x features in 4.5.1 and later
|
||||||
|
//
|
||||||
// C++0x features in 4.5.n and later
|
#if (__GNUC__*10000 + __GNUC_MINOR__*100 + __GNUC_PATCHLEVEL__ < 40501) || !defined(__GXX_EXPERIMENTAL_CXX0X__)
|
||||||
//
|
// scoped enums have a serious bug in 4.4.0, so define BOOST_NO_SCOPED_ENUMS before 4.5.1
|
||||||
#if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 5) || !defined(__GXX_EXPERIMENTAL_CXX0X__)
|
// See http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38064
|
||||||
# define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS
|
# define BOOST_NO_SCOPED_ENUMS
|
||||||
# define BOOST_NO_LAMBDAS
|
#endif
|
||||||
# define BOOST_NO_RAW_LITERALS
|
|
||||||
# define BOOST_NO_UNICODE_LITERALS
|
// C++0x features in 4.6.n and later
|
||||||
#endif
|
//
|
||||||
|
#if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 6) || !defined(__GXX_EXPERIMENTAL_CXX0X__)
|
||||||
// ConceptGCC compiler:
|
#define BOOST_NO_CONSTEXPR
|
||||||
// http://www.generic-programming.org/software/ConceptGCC/
|
#define BOOST_NO_NOEXCEPT
|
||||||
#ifdef __GXX_CONCEPTS__
|
#define BOOST_NO_NULLPTR
|
||||||
# define BOOST_HAS_CONCEPTS
|
#define BOOST_NO_UNIFIED_INITIALIZATION_SYNTAX
|
||||||
# define BOOST_COMPILER "ConceptGCC version " __VERSION__
|
#endif
|
||||||
#else
|
|
||||||
# define BOOST_NO_CONCEPTS
|
// C++0x features not supported at all yet
|
||||||
#endif
|
//
|
||||||
|
#define BOOST_NO_DECLTYPE_N3276
|
||||||
#ifndef BOOST_COMPILER
|
|
||||||
# define BOOST_COMPILER "GNU C++ version " __VERSION__
|
#ifndef BOOST_COMPILER
|
||||||
#endif
|
# define BOOST_COMPILER "GNU C++ version " __VERSION__
|
||||||
|
#endif
|
||||||
//
|
|
||||||
// versions check:
|
// ConceptGCC compiler:
|
||||||
// we don't know gcc prior to version 2.90:
|
// http://www.generic-programming.org/software/ConceptGCC/
|
||||||
#if (__GNUC__ == 2) && (__GNUC_MINOR__ < 90)
|
#ifdef __GXX_CONCEPTS__
|
||||||
# error "Compiler not configured - please reconfigure"
|
# define BOOST_HAS_CONCEPTS
|
||||||
#endif
|
# define BOOST_COMPILER "ConceptGCC version " __VERSION__
|
||||||
//
|
#endif
|
||||||
// last known and checked version is 4.4 (Pre-release):
|
|
||||||
#if (__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ > 4))
|
// versions check:
|
||||||
# if defined(BOOST_ASSERT_CONFIG)
|
// we don't know gcc prior to version 2.90:
|
||||||
# error "Unknown compiler version - please run the configure tests and report the results"
|
#if (__GNUC__ == 2) && (__GNUC_MINOR__ < 90)
|
||||||
# else
|
# error "Compiler not configured - please reconfigure"
|
||||||
// we don't emit warnings here anymore since there are no defect macros defined for
|
#endif
|
||||||
// gcc post 3.4, so any failures are gcc regressions...
|
//
|
||||||
//# warning "Unknown compiler version - please run the configure tests and report the results"
|
// last known and checked version is 4.6 (Pre-release):
|
||||||
# endif
|
#if (__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ > 6))
|
||||||
#endif
|
# if defined(BOOST_ASSERT_CONFIG)
|
||||||
|
# error "Unknown compiler version - please run the configure tests and report the results"
|
||||||
|
# else
|
||||||
|
// we don't emit warnings here anymore since there are no defect macros defined for
|
||||||
|
// gcc post 3.4, so any failures are gcc regressions...
|
||||||
|
//# warning "Unknown compiler version - please run the configure tests and report the results"
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,56 +1,59 @@
|
||||||
// (C) Copyright John Maddock 2006.
|
// (C) Copyright John Maddock 2006.
|
||||||
// Use, modification and distribution are subject to the
|
// Use, modification and distribution are subject to the
|
||||||
// Boost Software License, Version 1.0. (See accompanying file
|
// Boost Software License, Version 1.0. (See accompanying file
|
||||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
|
||||||
// See http://www.boost.org for most recent version.
|
// See http://www.boost.org for most recent version.
|
||||||
|
|
||||||
// GCC-XML C++ compiler setup:
|
// GCC-XML C++ compiler setup:
|
||||||
|
|
||||||
# if !defined(__GCCXML_GNUC__) || ((__GCCXML_GNUC__ <= 3) && (__GCCXML_GNUC_MINOR__ <= 3))
|
# if !defined(__GCCXML_GNUC__) || ((__GCCXML_GNUC__ <= 3) && (__GCCXML_GNUC_MINOR__ <= 3))
|
||||||
# define BOOST_NO_IS_ABSTRACT
|
# define BOOST_NO_IS_ABSTRACT
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
//
|
//
|
||||||
// Threading support: Turn this on unconditionally here (except for
|
// Threading support: Turn this on unconditionally here (except for
|
||||||
// those platforms where we can know for sure). It will get turned off again
|
// those platforms where we can know for sure). It will get turned off again
|
||||||
// later if no threading API is detected.
|
// later if no threading API is detected.
|
||||||
//
|
//
|
||||||
#if !defined(__MINGW32__) && !defined(_MSC_VER) && !defined(linux) && !defined(__linux) && !defined(__linux__)
|
#if !defined(__MINGW32__) && !defined(_MSC_VER) && !defined(linux) && !defined(__linux) && !defined(__linux__)
|
||||||
# define BOOST_HAS_THREADS
|
# define BOOST_HAS_THREADS
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//
|
//
|
||||||
// gcc has "long long"
|
// gcc has "long long"
|
||||||
//
|
//
|
||||||
#define BOOST_HAS_LONG_LONG
|
#define BOOST_HAS_LONG_LONG
|
||||||
|
|
||||||
// C++0x features:
|
// C++0x features:
|
||||||
//
|
//
|
||||||
# define BOOST_NO_CONSTEXPR
|
# define BOOST_NO_CONSTEXPR
|
||||||
# define BOOST_NO_NULLPTR
|
# define BOOST_NO_NULLPTR
|
||||||
# define BOOST_NO_TEMPLATE_ALIASES
|
# define BOOST_NO_TEMPLATE_ALIASES
|
||||||
# define BOOST_NO_DECLTYPE
|
# define BOOST_NO_DECLTYPE
|
||||||
# define BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS
|
# define BOOST_NO_DECLTYPE_N3276
|
||||||
# define BOOST_NO_RVALUE_REFERENCES
|
# define BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS
|
||||||
# define BOOST_NO_STATIC_ASSERT
|
# define BOOST_NO_RVALUE_REFERENCES
|
||||||
# define BOOST_NO_VARIADIC_TEMPLATES
|
# define BOOST_NO_STATIC_ASSERT
|
||||||
# define BOOST_NO_VARIADIC_MACROS
|
# define BOOST_NO_VARIADIC_TEMPLATES
|
||||||
# define BOOST_NO_AUTO_DECLARATIONS
|
# define BOOST_NO_VARIADIC_MACROS
|
||||||
# define BOOST_NO_AUTO_MULTIDECLARATIONS
|
# define BOOST_NO_AUTO_DECLARATIONS
|
||||||
# define BOOST_NO_CHAR16_T
|
# define BOOST_NO_AUTO_MULTIDECLARATIONS
|
||||||
# define BOOST_NO_CHAR32_T
|
# define BOOST_NO_CHAR16_T
|
||||||
# define BOOST_NO_DEFAULTED_FUNCTIONS
|
# define BOOST_NO_CHAR32_T
|
||||||
# define BOOST_NO_DELETED_FUNCTIONS
|
# define BOOST_NO_DEFAULTED_FUNCTIONS
|
||||||
# define BOOST_NO_INITIALIZER_LISTS
|
# define BOOST_NO_DELETED_FUNCTIONS
|
||||||
# define BOOST_NO_SCOPED_ENUMS
|
# define BOOST_NO_INITIALIZER_LISTS
|
||||||
# define BOOST_NO_SFINAE_EXPR
|
# define BOOST_NO_SCOPED_ENUMS
|
||||||
# define BOOST_NO_SCOPED_ENUMS
|
# define BOOST_NO_SFINAE_EXPR
|
||||||
# define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS
|
# define BOOST_NO_SCOPED_ENUMS
|
||||||
# define BOOST_NO_LAMBDAS
|
# define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS
|
||||||
# define BOOST_NO_RAW_LITERALS
|
# define BOOST_NO_LAMBDAS
|
||||||
# define BOOST_NO_UNICODE_LITERALS
|
# define BOOST_NO_RAW_LITERALS
|
||||||
|
# define BOOST_NO_UNICODE_LITERALS
|
||||||
#define BOOST_COMPILER "GCC-XML C++ version " __GCCXML__
|
# define BOOST_NO_NOEXCEPT
|
||||||
|
#define BOOST_NO_UNIFIED_INITIALIZATION_SYNTAX
|
||||||
|
|
||||||
|
#define BOOST_COMPILER "GCC-XML C++ version " __GCCXML__
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,28 +1,28 @@
|
||||||
// (C) Copyright John Maddock 2001.
|
// (C) Copyright John Maddock 2001.
|
||||||
// Use, modification and distribution are subject to the
|
// Use, modification and distribution are subject to the
|
||||||
// Boost Software License, Version 1.0. (See accompanying file
|
// Boost Software License, Version 1.0. (See accompanying file
|
||||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
|
||||||
// See http://www.boost.org for most recent version.
|
// See http://www.boost.org for most recent version.
|
||||||
|
|
||||||
// Greenhills C++ compiler setup:
|
// Greenhills C++ compiler setup:
|
||||||
|
|
||||||
#define BOOST_COMPILER "Greenhills C++ version " BOOST_STRINGIZE(__ghs)
|
#define BOOST_COMPILER "Greenhills C++ version " BOOST_STRINGIZE(__ghs)
|
||||||
|
|
||||||
#include "boost/config/compiler/common_edg.hpp"
|
#include "boost/config/compiler/common_edg.hpp"
|
||||||
|
|
||||||
//
|
//
|
||||||
// versions check:
|
// versions check:
|
||||||
// we don't support Greenhills prior to version 0:
|
// we don't support Greenhills prior to version 0:
|
||||||
#if __ghs < 0
|
#if __ghs < 0
|
||||||
# error "Compiler not supported or configured - please reconfigure"
|
# error "Compiler not supported or configured - please reconfigure"
|
||||||
#endif
|
#endif
|
||||||
//
|
//
|
||||||
// last known and checked version is 0:
|
// last known and checked version is 0:
|
||||||
#if (__ghs > 0)
|
#if (__ghs > 0)
|
||||||
# if defined(BOOST_ASSERT_CONFIG)
|
# if defined(BOOST_ASSERT_CONFIG)
|
||||||
# error "Unknown compiler version - please run the configure tests and report the results"
|
# error "Unknown compiler version - please run the configure tests and report the results"
|
||||||
# endif
|
# endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,137 +1,138 @@
|
||||||
// (C) Copyright John Maddock 2001 - 2003.
|
// (C) Copyright John Maddock 2001 - 2003.
|
||||||
// (C) Copyright Jens Maurer 2001 - 2003.
|
// (C) Copyright Jens Maurer 2001 - 2003.
|
||||||
// (C) Copyright Aleksey Gurtovoy 2002.
|
// (C) Copyright Aleksey Gurtovoy 2002.
|
||||||
// (C) Copyright David Abrahams 2002 - 2003.
|
// (C) Copyright David Abrahams 2002 - 2003.
|
||||||
// (C) Copyright Toon Knapen 2003.
|
// (C) Copyright Toon Knapen 2003.
|
||||||
// (C) Copyright Boris Gubenko 2006 - 2007.
|
// (C) Copyright Boris Gubenko 2006 - 2007.
|
||||||
// Use, modification and distribution are subject to the
|
// Use, modification and distribution are subject to the
|
||||||
// Boost Software License, Version 1.0. (See accompanying file
|
// Boost Software License, Version 1.0. (See accompanying file
|
||||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
|
||||||
// See http://www.boost.org for most recent version.
|
// See http://www.boost.org for most recent version.
|
||||||
|
|
||||||
// HP aCC C++ compiler setup:
|
// HP aCC C++ compiler setup:
|
||||||
|
|
||||||
#if defined(__EDG__)
|
#if defined(__EDG__)
|
||||||
#include "boost/config/compiler/common_edg.hpp"
|
#include "boost/config/compiler/common_edg.hpp"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if (__HP_aCC <= 33100)
|
#if (__HP_aCC <= 33100)
|
||||||
# define BOOST_NO_INTEGRAL_INT64_T
|
# define BOOST_NO_INTEGRAL_INT64_T
|
||||||
# define BOOST_NO_OPERATORS_IN_NAMESPACE
|
# define BOOST_NO_OPERATORS_IN_NAMESPACE
|
||||||
# if !defined(_NAMESPACE_STD)
|
# if !defined(_NAMESPACE_STD)
|
||||||
# define BOOST_NO_STD_LOCALE
|
# define BOOST_NO_STD_LOCALE
|
||||||
# define BOOST_NO_STRINGSTREAM
|
# define BOOST_NO_STRINGSTREAM
|
||||||
# endif
|
# endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if (__HP_aCC <= 33300)
|
#if (__HP_aCC <= 33300)
|
||||||
// member templates are sufficiently broken that we disable them for now
|
// member templates are sufficiently broken that we disable them for now
|
||||||
# define BOOST_NO_MEMBER_TEMPLATES
|
# define BOOST_NO_MEMBER_TEMPLATES
|
||||||
# define BOOST_NO_DEPENDENT_NESTED_DERIVATIONS
|
# define BOOST_NO_DEPENDENT_NESTED_DERIVATIONS
|
||||||
# define BOOST_NO_USING_DECLARATION_OVERLOADS_FROM_TYPENAME_BASE
|
# define BOOST_NO_USING_DECLARATION_OVERLOADS_FROM_TYPENAME_BASE
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if (__HP_aCC <= 38000)
|
#if (__HP_aCC <= 38000)
|
||||||
# define BOOST_NO_TWO_PHASE_NAME_LOOKUP
|
# define BOOST_NO_TWO_PHASE_NAME_LOOKUP
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if (__HP_aCC > 50000) && (__HP_aCC < 60000)
|
#if (__HP_aCC > 50000) && (__HP_aCC < 60000)
|
||||||
# define BOOST_NO_UNREACHABLE_RETURN_DETECTION
|
# define BOOST_NO_UNREACHABLE_RETURN_DETECTION
|
||||||
# define BOOST_NO_TEMPLATE_TEMPLATES
|
# define BOOST_NO_TEMPLATE_TEMPLATES
|
||||||
# define BOOST_NO_SWPRINTF
|
# define BOOST_NO_SWPRINTF
|
||||||
# define BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS
|
# define BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS
|
||||||
# define BOOST_NO_IS_ABSTRACT
|
# define BOOST_NO_IS_ABSTRACT
|
||||||
# define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
|
# define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// optional features rather than defects:
|
// optional features rather than defects:
|
||||||
#if (__HP_aCC >= 33900)
|
#if (__HP_aCC >= 33900)
|
||||||
# define BOOST_HAS_LONG_LONG
|
# define BOOST_HAS_LONG_LONG
|
||||||
# define BOOST_HAS_PARTIAL_STD_ALLOCATOR
|
# define BOOST_HAS_PARTIAL_STD_ALLOCATOR
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if (__HP_aCC >= 50000 ) && (__HP_aCC <= 53800 ) || (__HP_aCC < 31300 )
|
#if (__HP_aCC >= 50000 ) && (__HP_aCC <= 53800 ) || (__HP_aCC < 31300 )
|
||||||
# define BOOST_NO_MEMBER_TEMPLATE_KEYWORD
|
# define BOOST_NO_MEMBER_TEMPLATE_KEYWORD
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// This macro should not be defined when compiling in strict ansi
|
// This macro should not be defined when compiling in strict ansi
|
||||||
// mode, but, currently, we don't have the ability to determine
|
// mode, but, currently, we don't have the ability to determine
|
||||||
// what standard mode we are compiling with. Some future version
|
// what standard mode we are compiling with. Some future version
|
||||||
// of aCC6 compiler will provide predefined macros reflecting the
|
// of aCC6 compiler will provide predefined macros reflecting the
|
||||||
// compilation options, including the standard mode.
|
// compilation options, including the standard mode.
|
||||||
#if (__HP_aCC >= 60000) || ((__HP_aCC > 38000) && defined(__hpxstd98))
|
#if (__HP_aCC >= 60000) || ((__HP_aCC > 38000) && defined(__hpxstd98))
|
||||||
# define BOOST_NO_TWO_PHASE_NAME_LOOKUP
|
# define BOOST_NO_TWO_PHASE_NAME_LOOKUP
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define BOOST_COMPILER "HP aCC version " BOOST_STRINGIZE(__HP_aCC)
|
#define BOOST_COMPILER "HP aCC version " BOOST_STRINGIZE(__HP_aCC)
|
||||||
|
|
||||||
//
|
//
|
||||||
// versions check:
|
// versions check:
|
||||||
// we don't support HP aCC prior to version 33000:
|
// we don't support HP aCC prior to version 33000:
|
||||||
#if __HP_aCC < 33000
|
#if __HP_aCC < 33000
|
||||||
# error "Compiler not supported or configured - please reconfigure"
|
# error "Compiler not supported or configured - please reconfigure"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//
|
//
|
||||||
// Extended checks for supporting aCC on PA-RISC
|
// Extended checks for supporting aCC on PA-RISC
|
||||||
#if __HP_aCC > 30000 && __HP_aCC < 50000
|
#if __HP_aCC > 30000 && __HP_aCC < 50000
|
||||||
# if __HP_aCC < 38000
|
# if __HP_aCC < 38000
|
||||||
// versions prior to version A.03.80 not supported
|
// versions prior to version A.03.80 not supported
|
||||||
# error "Compiler version not supported - version A.03.80 or higher is required"
|
# error "Compiler version not supported - version A.03.80 or higher is required"
|
||||||
# elif !defined(__hpxstd98)
|
# elif !defined(__hpxstd98)
|
||||||
// must compile using the option +hpxstd98 with version A.03.80 and above
|
// must compile using the option +hpxstd98 with version A.03.80 and above
|
||||||
# error "Compiler option '+hpxstd98' is required for proper support"
|
# error "Compiler option '+hpxstd98' is required for proper support"
|
||||||
# endif //PA-RISC
|
# endif //PA-RISC
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//
|
//
|
||||||
// C++0x features
|
// C++0x features
|
||||||
//
|
//
|
||||||
// See boost\config\suffix.hpp for BOOST_NO_LONG_LONG
|
// See boost\config\suffix.hpp for BOOST_NO_LONG_LONG
|
||||||
//
|
//
|
||||||
#if !defined(__EDG__)
|
#if !defined(__EDG__)
|
||||||
|
|
||||||
#define BOOST_NO_AUTO_DECLARATIONS
|
#define BOOST_NO_AUTO_DECLARATIONS
|
||||||
#define BOOST_NO_AUTO_MULTIDECLARATIONS
|
#define BOOST_NO_AUTO_MULTIDECLARATIONS
|
||||||
#define BOOST_NO_CHAR16_T
|
#define BOOST_NO_CHAR16_T
|
||||||
#define BOOST_NO_CHAR32_T
|
#define BOOST_NO_CHAR32_T
|
||||||
#define BOOST_NO_CONCEPTS
|
#define BOOST_NO_CONSTEXPR
|
||||||
#define BOOST_NO_CONSTEXPR
|
#define BOOST_NO_DECLTYPE
|
||||||
#define BOOST_NO_DECLTYPE
|
#define BOOST_NO_DECLTYPE_N3276
|
||||||
#define BOOST_NO_DEFAULTED_FUNCTIONS
|
#define BOOST_NO_DEFAULTED_FUNCTIONS
|
||||||
#define BOOST_NO_DELETED_FUNCTIONS
|
#define BOOST_NO_DELETED_FUNCTIONS
|
||||||
#define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS
|
#define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS
|
||||||
#define BOOST_NO_EXTERN_TEMPLATE
|
#define BOOST_NO_EXTERN_TEMPLATE
|
||||||
#define BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS
|
#define BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS
|
||||||
#define BOOST_NO_INITIALIZER_LISTS
|
#define BOOST_NO_INITIALIZER_LISTS
|
||||||
#define BOOST_NO_LAMBDAS
|
#define BOOST_NO_LAMBDAS
|
||||||
#define BOOST_NO_NULLPTR
|
#define BOOST_NO_NOEXCEPT
|
||||||
#define BOOST_NO_RAW_LITERALS
|
#define BOOST_NO_NULLPTR
|
||||||
#define BOOST_NO_RVALUE_REFERENCES
|
#define BOOST_NO_RAW_LITERALS
|
||||||
#define BOOST_NO_SCOPED_ENUMS
|
#define BOOST_NO_RVALUE_REFERENCES
|
||||||
#define BOOST_NO_SFINAE_EXPR
|
#define BOOST_NO_SCOPED_ENUMS
|
||||||
#define BOOST_NO_STATIC_ASSERT
|
#define BOOST_NO_SFINAE_EXPR
|
||||||
#define BOOST_NO_TEMPLATE_ALIASES
|
#define BOOST_NO_STATIC_ASSERT
|
||||||
#define BOOST_NO_UNICODE_LITERALS
|
#define BOOST_NO_TEMPLATE_ALIASES
|
||||||
#define BOOST_NO_VARIADIC_TEMPLATES
|
#define BOOST_NO_UNICODE_LITERALS
|
||||||
|
#define BOOST_NO_VARIADIC_TEMPLATES
|
||||||
/*
|
|
||||||
See https://forums13.itrc.hp.com/service/forums/questionanswer.do?threadId=1443331 and
|
/*
|
||||||
https://forums13.itrc.hp.com/service/forums/questionanswer.do?threadId=1443436
|
See https://forums13.itrc.hp.com/service/forums/questionanswer.do?threadId=1443331 and
|
||||||
*/
|
https://forums13.itrc.hp.com/service/forums/questionanswer.do?threadId=1443436
|
||||||
|
*/
|
||||||
#if (__HP_aCC < 62500) || !defined(HP_CXX0x_SOURCE)
|
|
||||||
#define BOOST_NO_VARIADIC_MACROS
|
#if (__HP_aCC < 62500) || !defined(HP_CXX0x_SOURCE)
|
||||||
#endif
|
#define BOOST_NO_VARIADIC_MACROS
|
||||||
|
#endif
|
||||||
#endif
|
|
||||||
|
#endif
|
||||||
//
|
|
||||||
// last known and checked version for HP-UX/ia64 is 61300
|
//
|
||||||
// last known and checked version for PA-RISC is 38000
|
// last known and checked version for HP-UX/ia64 is 61300
|
||||||
#if ((__HP_aCC > 61300) || ((__HP_aCC > 38000) && defined(__hpxstd98)))
|
// last known and checked version for PA-RISC is 38000
|
||||||
# if defined(BOOST_ASSERT_CONFIG)
|
#if ((__HP_aCC > 61300) || ((__HP_aCC > 38000) && defined(__hpxstd98)))
|
||||||
# error "Unknown compiler version - please run the configure tests and report the results"
|
# if defined(BOOST_ASSERT_CONFIG)
|
||||||
# endif
|
# error "Unknown compiler version - please run the configure tests and report the results"
|
||||||
#endif
|
# endif
|
||||||
|
#endif
|
||||||
|
|
|
@ -1,196 +1,270 @@
|
||||||
// (C) Copyright John Maddock 2001-8.
|
// (C) Copyright John Maddock 2001-8.
|
||||||
// (C) Copyright Peter Dimov 2001.
|
// (C) Copyright Peter Dimov 2001.
|
||||||
// (C) Copyright Jens Maurer 2001.
|
// (C) Copyright Jens Maurer 2001.
|
||||||
// (C) Copyright David Abrahams 2002 - 2003.
|
// (C) Copyright David Abrahams 2002 - 2003.
|
||||||
// (C) Copyright Aleksey Gurtovoy 2002 - 2003.
|
// (C) Copyright Aleksey Gurtovoy 2002 - 2003.
|
||||||
// (C) Copyright Guillaume Melquiond 2002 - 2003.
|
// (C) Copyright Guillaume Melquiond 2002 - 2003.
|
||||||
// (C) Copyright Beman Dawes 2003.
|
// (C) Copyright Beman Dawes 2003.
|
||||||
// (C) Copyright Martin Wille 2003.
|
// (C) Copyright Martin Wille 2003.
|
||||||
// Use, modification and distribution are subject to the
|
// Use, modification and distribution are subject to the
|
||||||
// Boost Software License, Version 1.0. (See accompanying file
|
// Boost Software License, Version 1.0. (See accompanying file
|
||||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
|
||||||
// See http://www.boost.org for most recent version.
|
// See http://www.boost.org for most recent version.
|
||||||
|
|
||||||
// Intel compiler setup:
|
// Intel compiler setup:
|
||||||
|
|
||||||
#include "boost/config/compiler/common_edg.hpp"
|
#include "boost/config/compiler/common_edg.hpp"
|
||||||
|
|
||||||
#if defined(__INTEL_COMPILER)
|
#if defined(__INTEL_COMPILER)
|
||||||
# define BOOST_INTEL_CXX_VERSION __INTEL_COMPILER
|
# define BOOST_INTEL_CXX_VERSION __INTEL_COMPILER
|
||||||
#elif defined(__ICL)
|
#elif defined(__ICL)
|
||||||
# define BOOST_INTEL_CXX_VERSION __ICL
|
# define BOOST_INTEL_CXX_VERSION __ICL
|
||||||
#elif defined(__ICC)
|
#elif defined(__ICC)
|
||||||
# define BOOST_INTEL_CXX_VERSION __ICC
|
# define BOOST_INTEL_CXX_VERSION __ICC
|
||||||
#elif defined(__ECC)
|
#elif defined(__ECC)
|
||||||
# define BOOST_INTEL_CXX_VERSION __ECC
|
# define BOOST_INTEL_CXX_VERSION __ECC
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define BOOST_COMPILER "Intel C++ version " BOOST_STRINGIZE(BOOST_INTEL_CXX_VERSION)
|
// Flags determined by comparing output of 'icpc -dM -E' with and without '-std=c++0x'
|
||||||
#define BOOST_INTEL BOOST_INTEL_CXX_VERSION
|
#if (!(defined(_WIN32) || defined(_WIN64)) && defined(__STDC_HOSTED__) && (__STDC_HOSTED__ && (BOOST_INTEL_CXX_VERSION <= 1200))) || defined(__GXX_EXPERIMENTAL_CPP0X__)
|
||||||
|
# define BOOST_INTEL_STDCXX0X
|
||||||
#if defined(_WIN32) || defined(_WIN64)
|
#endif
|
||||||
# define BOOST_INTEL_WIN BOOST_INTEL
|
#if defined(_MSC_VER) && (_MSC_VER >= 1600)
|
||||||
#else
|
# define BOOST_INTEL_STDCXX0X
|
||||||
# define BOOST_INTEL_LINUX BOOST_INTEL
|
#endif
|
||||||
#endif
|
|
||||||
|
#ifdef BOOST_INTEL_STDCXX0X
|
||||||
#if (BOOST_INTEL_CXX_VERSION <= 500) && defined(_MSC_VER)
|
#define BOOST_COMPILER "Intel C++ C++0x mode version " BOOST_STRINGIZE(BOOST_INTEL_CXX_VERSION)
|
||||||
# define BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS
|
#else
|
||||||
# define BOOST_NO_TEMPLATE_TEMPLATES
|
#define BOOST_COMPILER "Intel C++ version " BOOST_STRINGIZE(BOOST_INTEL_CXX_VERSION)
|
||||||
#endif
|
#endif
|
||||||
|
#define BOOST_INTEL BOOST_INTEL_CXX_VERSION
|
||||||
#if (BOOST_INTEL_CXX_VERSION <= 600)
|
|
||||||
|
#if defined(_WIN32) || defined(_WIN64)
|
||||||
# if defined(_MSC_VER) && (_MSC_VER <= 1300) // added check for <= VC 7 (Peter Dimov)
|
# define BOOST_INTEL_WIN BOOST_INTEL
|
||||||
|
#else
|
||||||
// Boost libraries assume strong standard conformance unless otherwise
|
# define BOOST_INTEL_LINUX BOOST_INTEL
|
||||||
// indicated by a config macro. As configured by Intel, the EDG front-end
|
#endif
|
||||||
// requires certain compiler options be set to achieve that strong conformance.
|
|
||||||
// Particularly /Qoption,c,--arg_dep_lookup (reported by Kirk Klobe & Thomas Witt)
|
#if (BOOST_INTEL_CXX_VERSION <= 500) && defined(_MSC_VER)
|
||||||
// and /Zc:wchar_t,forScope. See boost-root/tools/build/intel-win32-tools.jam for
|
# define BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS
|
||||||
// details as they apply to particular versions of the compiler. When the
|
# define BOOST_NO_TEMPLATE_TEMPLATES
|
||||||
// compiler does not predefine a macro indicating if an option has been set,
|
#endif
|
||||||
// this config file simply assumes the option has been set.
|
|
||||||
// Thus BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP will not be defined, even if
|
#if (BOOST_INTEL_CXX_VERSION <= 600)
|
||||||
// the compiler option is not enabled.
|
|
||||||
|
# if defined(_MSC_VER) && (_MSC_VER <= 1300) // added check for <= VC 7 (Peter Dimov)
|
||||||
# define BOOST_NO_SWPRINTF
|
|
||||||
# endif
|
// Boost libraries assume strong standard conformance unless otherwise
|
||||||
|
// indicated by a config macro. As configured by Intel, the EDG front-end
|
||||||
// Void returns, 64 bit integrals don't work when emulating VC 6 (Peter Dimov)
|
// requires certain compiler options be set to achieve that strong conformance.
|
||||||
|
// Particularly /Qoption,c,--arg_dep_lookup (reported by Kirk Klobe & Thomas Witt)
|
||||||
# if defined(_MSC_VER) && (_MSC_VER <= 1200)
|
// and /Zc:wchar_t,forScope. See boost-root/tools/build/intel-win32-tools.jam for
|
||||||
# define BOOST_NO_VOID_RETURNS
|
// details as they apply to particular versions of the compiler. When the
|
||||||
# define BOOST_NO_INTEGRAL_INT64_T
|
// compiler does not predefine a macro indicating if an option has been set,
|
||||||
# endif
|
// this config file simply assumes the option has been set.
|
||||||
|
// Thus BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP will not be defined, even if
|
||||||
#endif
|
// the compiler option is not enabled.
|
||||||
|
|
||||||
#if (BOOST_INTEL_CXX_VERSION <= 710) && defined(_WIN32)
|
# define BOOST_NO_SWPRINTF
|
||||||
# define BOOST_NO_POINTER_TO_MEMBER_TEMPLATE_PARAMETERS
|
# endif
|
||||||
#endif
|
|
||||||
|
// Void returns, 64 bit integrals don't work when emulating VC 6 (Peter Dimov)
|
||||||
// See http://aspn.activestate.com/ASPN/Mail/Message/boost/1614864
|
|
||||||
#if BOOST_INTEL_CXX_VERSION < 600
|
# if defined(_MSC_VER) && (_MSC_VER <= 1200)
|
||||||
# define BOOST_NO_INTRINSIC_WCHAR_T
|
# define BOOST_NO_VOID_RETURNS
|
||||||
#else
|
# define BOOST_NO_INTEGRAL_INT64_T
|
||||||
// We should test the macro _WCHAR_T_DEFINED to check if the compiler
|
# endif
|
||||||
// supports wchar_t natively. *BUT* there is a problem here: the standard
|
|
||||||
// headers define this macro if they typedef wchar_t. Anyway, we're lucky
|
#endif
|
||||||
// because they define it without a value, while Intel C++ defines it
|
|
||||||
// to 1. So we can check its value to see if the macro was defined natively
|
#if (BOOST_INTEL_CXX_VERSION <= 710) && defined(_WIN32)
|
||||||
// or not.
|
# define BOOST_NO_POINTER_TO_MEMBER_TEMPLATE_PARAMETERS
|
||||||
// Under UNIX, the situation is exactly the same, but the macro _WCHAR_T
|
#endif
|
||||||
// is used instead.
|
|
||||||
# if ((_WCHAR_T_DEFINED + 0) == 0) && ((_WCHAR_T + 0) == 0)
|
// See http://aspn.activestate.com/ASPN/Mail/Message/boost/1614864
|
||||||
# define BOOST_NO_INTRINSIC_WCHAR_T
|
#if BOOST_INTEL_CXX_VERSION < 600
|
||||||
# endif
|
# define BOOST_NO_INTRINSIC_WCHAR_T
|
||||||
#endif
|
#else
|
||||||
|
// We should test the macro _WCHAR_T_DEFINED to check if the compiler
|
||||||
#if defined(__GNUC__) && !defined(BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL)
|
// supports wchar_t natively. *BUT* there is a problem here: the standard
|
||||||
//
|
// headers define this macro if they typedef wchar_t. Anyway, we're lucky
|
||||||
// Figure out when Intel is emulating this gcc bug
|
// because they define it without a value, while Intel C++ defines it
|
||||||
// (All Intel versions prior to 9.0.26, and versions
|
// to 1. So we can check its value to see if the macro was defined natively
|
||||||
// later than that if they are set up to emulate gcc 3.2
|
// or not.
|
||||||
// or earlier):
|
// Under UNIX, the situation is exactly the same, but the macro _WCHAR_T
|
||||||
//
|
// is used instead.
|
||||||
# if ((__GNUC__ == 3) && (__GNUC_MINOR__ <= 2)) || (BOOST_INTEL < 900) || (__INTEL_COMPILER_BUILD_DATE < 20050912)
|
# if ((_WCHAR_T_DEFINED + 0) == 0) && ((_WCHAR_T + 0) == 0)
|
||||||
# define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
|
# define BOOST_NO_INTRINSIC_WCHAR_T
|
||||||
# endif
|
# endif
|
||||||
#endif
|
#endif
|
||||||
#if (defined(__GNUC__) && (__GNUC__ < 4)) || defined(_WIN32) || (BOOST_INTEL_CXX_VERSION <= 1110)
|
|
||||||
// GCC or VC emulation:
|
#if defined(__GNUC__) && !defined(BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL)
|
||||||
#define BOOST_NO_TWO_PHASE_NAME_LOOKUP
|
//
|
||||||
#endif
|
// Figure out when Intel is emulating this gcc bug
|
||||||
//
|
// (All Intel versions prior to 9.0.26, and versions
|
||||||
// Verify that we have actually got BOOST_NO_INTRINSIC_WCHAR_T
|
// later than that if they are set up to emulate gcc 3.2
|
||||||
// set correctly, if we don't do this now, we will get errors later
|
// or earlier):
|
||||||
// in type_traits code among other things, getting this correct
|
//
|
||||||
// for the Intel compiler is actually remarkably fragile and tricky:
|
# if ((__GNUC__ == 3) && (__GNUC_MINOR__ <= 2)) || (BOOST_INTEL < 900) || (__INTEL_COMPILER_BUILD_DATE < 20050912)
|
||||||
//
|
# define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
|
||||||
#if defined(BOOST_NO_INTRINSIC_WCHAR_T)
|
# endif
|
||||||
#include <cwchar>
|
#endif
|
||||||
template< typename T > struct assert_no_intrinsic_wchar_t;
|
#if (defined(__GNUC__) && (__GNUC__ < 4)) || defined(_WIN32) || (BOOST_INTEL_CXX_VERSION <= 1200)
|
||||||
template<> struct assert_no_intrinsic_wchar_t<wchar_t> { typedef void type; };
|
// GCC or VC emulation:
|
||||||
// if you see an error here then you need to unset BOOST_NO_INTRINSIC_WCHAR_T
|
#define BOOST_NO_TWO_PHASE_NAME_LOOKUP
|
||||||
// where it is defined above:
|
#endif
|
||||||
typedef assert_no_intrinsic_wchar_t<unsigned short>::type assert_no_intrinsic_wchar_t_;
|
//
|
||||||
#else
|
// Verify that we have actually got BOOST_NO_INTRINSIC_WCHAR_T
|
||||||
template< typename T > struct assert_intrinsic_wchar_t;
|
// set correctly, if we don't do this now, we will get errors later
|
||||||
template<> struct assert_intrinsic_wchar_t<wchar_t> {};
|
// in type_traits code among other things, getting this correct
|
||||||
// if you see an error here then define BOOST_NO_INTRINSIC_WCHAR_T on the command line:
|
// for the Intel compiler is actually remarkably fragile and tricky:
|
||||||
template<> struct assert_intrinsic_wchar_t<unsigned short> {};
|
//
|
||||||
#endif
|
#ifdef __cplusplus
|
||||||
|
#if defined(BOOST_NO_INTRINSIC_WCHAR_T)
|
||||||
#if _MSC_VER+0 >= 1000
|
#include <cwchar>
|
||||||
# if _MSC_VER >= 1200
|
template< typename T > struct assert_no_intrinsic_wchar_t;
|
||||||
# define BOOST_HAS_MS_INT64
|
template<> struct assert_no_intrinsic_wchar_t<wchar_t> { typedef void type; };
|
||||||
# endif
|
// if you see an error here then you need to unset BOOST_NO_INTRINSIC_WCHAR_T
|
||||||
# define BOOST_NO_SWPRINTF
|
// where it is defined above:
|
||||||
# define BOOST_NO_TWO_PHASE_NAME_LOOKUP
|
typedef assert_no_intrinsic_wchar_t<unsigned short>::type assert_no_intrinsic_wchar_t_;
|
||||||
#elif defined(_WIN32)
|
#else
|
||||||
# define BOOST_DISABLE_WIN32
|
template< typename T > struct assert_intrinsic_wchar_t;
|
||||||
#endif
|
template<> struct assert_intrinsic_wchar_t<wchar_t> {};
|
||||||
|
// if you see an error here then define BOOST_NO_INTRINSIC_WCHAR_T on the command line:
|
||||||
// I checked version 6.0 build 020312Z, it implements the NRVO.
|
template<> struct assert_intrinsic_wchar_t<unsigned short> {};
|
||||||
// Correct this as you find out which version of the compiler
|
#endif
|
||||||
// implemented the NRVO first. (Daniel Frey)
|
#endif
|
||||||
#if (BOOST_INTEL_CXX_VERSION >= 600)
|
|
||||||
# define BOOST_HAS_NRVO
|
#if defined(_MSC_VER) && (_MSC_VER+0 >= 1000)
|
||||||
#endif
|
# if _MSC_VER >= 1200
|
||||||
|
# define BOOST_HAS_MS_INT64
|
||||||
//
|
# endif
|
||||||
// versions check:
|
# define BOOST_NO_SWPRINTF
|
||||||
// we don't support Intel prior to version 5.0:
|
# define BOOST_NO_TWO_PHASE_NAME_LOOKUP
|
||||||
#if BOOST_INTEL_CXX_VERSION < 500
|
#elif defined(_WIN32)
|
||||||
# error "Compiler not supported or configured - please reconfigure"
|
# define BOOST_DISABLE_WIN32
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// Intel on MacOS requires
|
// I checked version 6.0 build 020312Z, it implements the NRVO.
|
||||||
#if defined(__APPLE__) && defined(__INTEL_COMPILER)
|
// Correct this as you find out which version of the compiler
|
||||||
# define BOOST_NO_TWO_PHASE_NAME_LOOKUP
|
// implemented the NRVO first. (Daniel Frey)
|
||||||
#endif
|
#if (BOOST_INTEL_CXX_VERSION >= 600)
|
||||||
|
# define BOOST_HAS_NRVO
|
||||||
// Intel on Altix Itanium
|
#endif
|
||||||
#if defined(__itanium__) && defined(__INTEL_COMPILER)
|
|
||||||
# define BOOST_NO_TWO_PHASE_NAME_LOOKUP
|
//
|
||||||
#endif
|
// versions check:
|
||||||
|
// we don't support Intel prior to version 5.0:
|
||||||
//
|
#if BOOST_INTEL_CXX_VERSION < 500
|
||||||
// An attempt to value-initialize a pointer-to-member may trigger an
|
# error "Compiler not supported or configured - please reconfigure"
|
||||||
// internal error on Intel <= 11.1 (last checked version), as was
|
#endif
|
||||||
// reported by John Maddock, Intel support issue 589832, May 2010.
|
|
||||||
// Moreover, according to test results from Huang-Vista-x86_32_intel,
|
// Intel on MacOS requires
|
||||||
// intel-vc9-win-11.1 may leave a non-POD array uninitialized, in some
|
#if defined(__APPLE__) && defined(__INTEL_COMPILER)
|
||||||
// cases when it should be value-initialized.
|
# define BOOST_NO_TWO_PHASE_NAME_LOOKUP
|
||||||
// (Niels Dekker, LKEB, May 2010)
|
#endif
|
||||||
#if defined(__INTEL_COMPILER)
|
|
||||||
# if __INTEL_COMPILER <= 1110
|
// Intel on Altix Itanium
|
||||||
# define BOOST_NO_COMPLETE_VALUE_INITIALIZATION
|
#if defined(__itanium__) && defined(__INTEL_COMPILER)
|
||||||
# endif
|
# define BOOST_NO_TWO_PHASE_NAME_LOOKUP
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//
|
//
|
||||||
// Dynamic shared object (DSO) and dynamic-link library (DLL) support
|
// An attempt to value-initialize a pointer-to-member may trigger an
|
||||||
//
|
// internal error on Intel <= 11.1 (last checked version), as was
|
||||||
#if defined(__GNUC__) && (__GNUC__ >= 4)
|
// reported by John Maddock, Intel support issue 589832, May 2010.
|
||||||
# define BOOST_SYMBOL_EXPORT __attribute__((visibility("default")))
|
// Moreover, according to test results from Huang-Vista-x86_32_intel,
|
||||||
# define BOOST_SYMBOL_IMPORT
|
// intel-vc9-win-11.1 may leave a non-POD array uninitialized, in some
|
||||||
# define BOOST_SYMBOL_VISIBLE __attribute__((visibility("default")))
|
// cases when it should be value-initialized.
|
||||||
#endif
|
// (Niels Dekker, LKEB, May 2010)
|
||||||
|
// Apparently Intel 12.1 (compiler version number 9999 !!) has the same issue (compiler regression).
|
||||||
//
|
#if defined(__INTEL_COMPILER)
|
||||||
// last known and checked version:
|
# if (__INTEL_COMPILER <= 1110) || (__INTEL_COMPILER == 9999)
|
||||||
#if (BOOST_INTEL_CXX_VERSION > 1110)
|
# define BOOST_NO_COMPLETE_VALUE_INITIALIZATION
|
||||||
# if defined(BOOST_ASSERT_CONFIG)
|
# endif
|
||||||
# error "Unknown compiler version - please run the configure tests and report the results"
|
#endif
|
||||||
# elif defined(_MSC_VER)
|
|
||||||
//
|
//
|
||||||
// We don't emit this warning any more, since we have so few
|
// Dynamic shared object (DSO) and dynamic-link library (DLL) support
|
||||||
// defect macros set anyway (just the one).
|
//
|
||||||
//
|
#if defined(__GNUC__) && (__GNUC__ >= 4)
|
||||||
//# pragma message("Unknown compiler version - please run the configure tests and report the results")
|
# define BOOST_SYMBOL_EXPORT __attribute__((visibility("default")))
|
||||||
# endif
|
# define BOOST_SYMBOL_IMPORT
|
||||||
#endif
|
# define BOOST_SYMBOL_VISIBLE __attribute__((visibility("default")))
|
||||||
|
#endif
|
||||||
|
//
|
||||||
|
// C++0x features
|
||||||
|
// - ICC added static_assert in 11.0 (first version with C++0x support)
|
||||||
|
//
|
||||||
|
#if defined(BOOST_INTEL_STDCXX0X)
|
||||||
|
# undef BOOST_NO_STATIC_ASSERT
|
||||||
|
//
|
||||||
|
// These pass our test cases, but aren't officially supported according to:
|
||||||
|
// http://software.intel.com/en-us/articles/c0x-features-supported-by-intel-c-compiler/
|
||||||
|
//
|
||||||
|
//# undef BOOST_NO_LAMBDAS
|
||||||
|
//# undef BOOST_NO_DECLTYPE
|
||||||
|
//# undef BOOST_NO_AUTO_DECLARATIONS
|
||||||
|
//# undef BOOST_NO_AUTO_MULTIDECLARATIONS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(BOOST_INTEL_STDCXX0X) && (BOOST_INTEL_CXX_VERSION >= 1200)
|
||||||
|
//# undef BOOST_NO_RVALUE_REFERENCES // Enabling this breaks Filesystem and Exception libraries
|
||||||
|
//# undef BOOST_NO_SCOPED_ENUMS // doesn't really work!!
|
||||||
|
# undef BOOST_NO_DELETED_FUNCTIONS
|
||||||
|
# undef BOOST_NO_DEFAULTED_FUNCTIONS
|
||||||
|
# undef BOOST_NO_LAMBDAS
|
||||||
|
# undef BOOST_NO_DECLTYPE
|
||||||
|
# undef BOOST_NO_AUTO_DECLARATIONS
|
||||||
|
# undef BOOST_NO_AUTO_MULTIDECLARATIONS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// icl Version 12.1.0.233 Build 20110811 and possibly some other builds
|
||||||
|
// had an incorrect __INTEL_COMPILER value of 9999. Intel say this has been fixed.
|
||||||
|
#if defined(BOOST_INTEL_STDCXX0X) && (BOOST_INTEL_CXX_VERSION > 1200)
|
||||||
|
# undef BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS
|
||||||
|
# undef BOOST_NO_NULLPTR
|
||||||
|
# undef BOOST_NO_RVALUE_REFERENCES
|
||||||
|
# undef BOOST_NO_SFINAE_EXPR
|
||||||
|
# undef BOOST_NO_TEMPLATE_ALIASES
|
||||||
|
# undef BOOST_NO_VARIADIC_TEMPLATES
|
||||||
|
|
||||||
|
// http://software.intel.com/en-us/articles/c0x-features-supported-by-intel-c-compiler/
|
||||||
|
// continues to list scoped enum support as "Partial"
|
||||||
|
//# undef BOOST_NO_SCOPED_ENUMS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(_MSC_VER) && (_MSC_VER <= 1700)
|
||||||
|
//
|
||||||
|
// Although the Intel compiler is capable of supporting these, it appears not to in MSVC compatibility mode:
|
||||||
|
//
|
||||||
|
# define BOOST_NO_INITIALIZER_LISTS
|
||||||
|
# define BOOST_NO_VARIADIC_TEMPLATES
|
||||||
|
# define BOOST_NO_DELETED_FUNCTIONS
|
||||||
|
# define BOOST_NO_DEFAULTED_FUNCTIONS
|
||||||
|
# define BOOST_NO_TEMPLATE_ALIASES
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (BOOST_INTEL_CXX_VERSION < 1200)
|
||||||
|
//
|
||||||
|
// fenv.h appears not to work with Intel prior to 12.0:
|
||||||
|
//
|
||||||
|
# define BOOST_NO_FENV_H
|
||||||
|
#endif
|
||||||
|
|
||||||
|
//
|
||||||
|
// last known and checked version:
|
||||||
|
#if (BOOST_INTEL_CXX_VERSION > 1200)
|
||||||
|
# if defined(BOOST_ASSERT_CONFIG)
|
||||||
|
# error "Unknown compiler version - please run the configure tests and report the results"
|
||||||
|
# elif defined(_MSC_VER)
|
||||||
|
//
|
||||||
|
// We don't emit this warning any more, since we have so few
|
||||||
|
// defect macros set anyway (just the one).
|
||||||
|
//
|
||||||
|
//# pragma message("Unknown compiler version - please run the configure tests and report the results")
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -1,33 +1,33 @@
|
||||||
// (C) Copyright John Maddock 2001.
|
// (C) Copyright John Maddock 2001.
|
||||||
// (C) Copyright David Abrahams 2002.
|
// (C) Copyright David Abrahams 2002.
|
||||||
// (C) Copyright Aleksey Gurtovoy 2002.
|
// (C) Copyright Aleksey Gurtovoy 2002.
|
||||||
// Use, modification and distribution are subject to the
|
// Use, modification and distribution are subject to the
|
||||||
// Boost Software License, Version 1.0. (See accompanying file
|
// Boost Software License, Version 1.0. (See accompanying file
|
||||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
|
||||||
// See http://www.boost.org for most recent version.
|
// See http://www.boost.org for most recent version.
|
||||||
|
|
||||||
// Kai C++ compiler setup:
|
// Kai C++ compiler setup:
|
||||||
|
|
||||||
#include "boost/config/compiler/common_edg.hpp"
|
#include "boost/config/compiler/common_edg.hpp"
|
||||||
|
|
||||||
# if (__KCC_VERSION <= 4001) || !defined(BOOST_STRICT_CONFIG)
|
# if (__KCC_VERSION <= 4001) || !defined(BOOST_STRICT_CONFIG)
|
||||||
// at least on Sun, the contents of <cwchar> is not in namespace std
|
// at least on Sun, the contents of <cwchar> is not in namespace std
|
||||||
# define BOOST_NO_STDC_NAMESPACE
|
# define BOOST_NO_STDC_NAMESPACE
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
// see also common_edg.hpp which needs a special check for __KCC
|
// see also common_edg.hpp which needs a special check for __KCC
|
||||||
# if !defined(_EXCEPTIONS) && !defined(BOOST_NO_EXCEPTIONS)
|
# if !defined(_EXCEPTIONS) && !defined(BOOST_NO_EXCEPTIONS)
|
||||||
# define BOOST_NO_EXCEPTIONS
|
# define BOOST_NO_EXCEPTIONS
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
//
|
//
|
||||||
// last known and checked version is 4001:
|
// last known and checked version is 4001:
|
||||||
#if (__KCC_VERSION > 4001)
|
#if (__KCC_VERSION > 4001)
|
||||||
# if defined(BOOST_ASSERT_CONFIG)
|
# if defined(BOOST_ASSERT_CONFIG)
|
||||||
# error "Unknown compiler version - please run the configure tests and report the results"
|
# error "Unknown compiler version - please run the configure tests and report the results"
|
||||||
# endif
|
# endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,140 +1,142 @@
|
||||||
// (C) Copyright John Maddock 2001.
|
// (C) Copyright John Maddock 2001.
|
||||||
// (C) Copyright Darin Adler 2001.
|
// (C) Copyright Darin Adler 2001.
|
||||||
// (C) Copyright Peter Dimov 2001.
|
// (C) Copyright Peter Dimov 2001.
|
||||||
// (C) Copyright David Abrahams 2001 - 2002.
|
// (C) Copyright David Abrahams 2001 - 2002.
|
||||||
// (C) Copyright Beman Dawes 2001 - 2003.
|
// (C) Copyright Beman Dawes 2001 - 2003.
|
||||||
// (C) Copyright Stefan Slapeta 2004.
|
// (C) Copyright Stefan Slapeta 2004.
|
||||||
// Use, modification and distribution are subject to the
|
// Use, modification and distribution are subject to the
|
||||||
// Boost Software License, Version 1.0. (See accompanying file
|
// Boost Software License, Version 1.0. (See accompanying file
|
||||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
|
||||||
// See http://www.boost.org for most recent version.
|
// See http://www.boost.org for most recent version.
|
||||||
|
|
||||||
// Metrowerks C++ compiler setup:
|
// Metrowerks C++ compiler setup:
|
||||||
|
|
||||||
// locale support is disabled when linking with the dynamic runtime
|
// locale support is disabled when linking with the dynamic runtime
|
||||||
# ifdef _MSL_NO_LOCALE
|
# ifdef _MSL_NO_LOCALE
|
||||||
# define BOOST_NO_STD_LOCALE
|
# define BOOST_NO_STD_LOCALE
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
# if __MWERKS__ <= 0x2301 // 5.3
|
# if __MWERKS__ <= 0x2301 // 5.3
|
||||||
# define BOOST_NO_FUNCTION_TEMPLATE_ORDERING
|
# define BOOST_NO_FUNCTION_TEMPLATE_ORDERING
|
||||||
# define BOOST_NO_POINTER_TO_MEMBER_CONST
|
# define BOOST_NO_POINTER_TO_MEMBER_CONST
|
||||||
# define BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS
|
# define BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS
|
||||||
# define BOOST_NO_MEMBER_TEMPLATE_KEYWORD
|
# define BOOST_NO_MEMBER_TEMPLATE_KEYWORD
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
# if __MWERKS__ <= 0x2401 // 6.2
|
# if __MWERKS__ <= 0x2401 // 6.2
|
||||||
//# define BOOST_NO_FUNCTION_TEMPLATE_ORDERING
|
//# define BOOST_NO_FUNCTION_TEMPLATE_ORDERING
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
# if(__MWERKS__ <= 0x2407) // 7.x
|
# if(__MWERKS__ <= 0x2407) // 7.x
|
||||||
# define BOOST_NO_MEMBER_FUNCTION_SPECIALIZATIONS
|
# define BOOST_NO_MEMBER_FUNCTION_SPECIALIZATIONS
|
||||||
# define BOOST_NO_UNREACHABLE_RETURN_DETECTION
|
# define BOOST_NO_UNREACHABLE_RETURN_DETECTION
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
# if(__MWERKS__ <= 0x3003) // 8.x
|
# if(__MWERKS__ <= 0x3003) // 8.x
|
||||||
# define BOOST_NO_SFINAE
|
# define BOOST_NO_SFINAE
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
// the "|| !defined(BOOST_STRICT_CONFIG)" part should apply to the last
|
// the "|| !defined(BOOST_STRICT_CONFIG)" part should apply to the last
|
||||||
// tested version *only*:
|
// tested version *only*:
|
||||||
# if(__MWERKS__ <= 0x3207) || !defined(BOOST_STRICT_CONFIG) // 9.6
|
# if(__MWERKS__ <= 0x3207) || !defined(BOOST_STRICT_CONFIG) // 9.6
|
||||||
# define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
|
# define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
|
||||||
# define BOOST_NO_IS_ABSTRACT
|
# define BOOST_NO_IS_ABSTRACT
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
#if !__option(wchar_type)
|
#if !__option(wchar_type)
|
||||||
# define BOOST_NO_INTRINSIC_WCHAR_T
|
# define BOOST_NO_INTRINSIC_WCHAR_T
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if !__option(exceptions) && !defined(BOOST_NO_EXCEPTIONS)
|
#if !__option(exceptions) && !defined(BOOST_NO_EXCEPTIONS)
|
||||||
# define BOOST_NO_EXCEPTIONS
|
# define BOOST_NO_EXCEPTIONS
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if (__INTEL__ && _WIN32) || (__POWERPC__ && macintosh)
|
#if (__INTEL__ && _WIN32) || (__POWERPC__ && macintosh)
|
||||||
# if __MWERKS__ == 0x3000
|
# if __MWERKS__ == 0x3000
|
||||||
# define BOOST_COMPILER_VERSION 8.0
|
# define BOOST_COMPILER_VERSION 8.0
|
||||||
# elif __MWERKS__ == 0x3001
|
# elif __MWERKS__ == 0x3001
|
||||||
# define BOOST_COMPILER_VERSION 8.1
|
# define BOOST_COMPILER_VERSION 8.1
|
||||||
# elif __MWERKS__ == 0x3002
|
# elif __MWERKS__ == 0x3002
|
||||||
# define BOOST_COMPILER_VERSION 8.2
|
# define BOOST_COMPILER_VERSION 8.2
|
||||||
# elif __MWERKS__ == 0x3003
|
# elif __MWERKS__ == 0x3003
|
||||||
# define BOOST_COMPILER_VERSION 8.3
|
# define BOOST_COMPILER_VERSION 8.3
|
||||||
# elif __MWERKS__ == 0x3200
|
# elif __MWERKS__ == 0x3200
|
||||||
# define BOOST_COMPILER_VERSION 9.0
|
# define BOOST_COMPILER_VERSION 9.0
|
||||||
# elif __MWERKS__ == 0x3201
|
# elif __MWERKS__ == 0x3201
|
||||||
# define BOOST_COMPILER_VERSION 9.1
|
# define BOOST_COMPILER_VERSION 9.1
|
||||||
# elif __MWERKS__ == 0x3202
|
# elif __MWERKS__ == 0x3202
|
||||||
# define BOOST_COMPILER_VERSION 9.2
|
# define BOOST_COMPILER_VERSION 9.2
|
||||||
# elif __MWERKS__ == 0x3204
|
# elif __MWERKS__ == 0x3204
|
||||||
# define BOOST_COMPILER_VERSION 9.3
|
# define BOOST_COMPILER_VERSION 9.3
|
||||||
# elif __MWERKS__ == 0x3205
|
# elif __MWERKS__ == 0x3205
|
||||||
# define BOOST_COMPILER_VERSION 9.4
|
# define BOOST_COMPILER_VERSION 9.4
|
||||||
# elif __MWERKS__ == 0x3206
|
# elif __MWERKS__ == 0x3206
|
||||||
# define BOOST_COMPILER_VERSION 9.5
|
# define BOOST_COMPILER_VERSION 9.5
|
||||||
# elif __MWERKS__ == 0x3207
|
# elif __MWERKS__ == 0x3207
|
||||||
# define BOOST_COMPILER_VERSION 9.6
|
# define BOOST_COMPILER_VERSION 9.6
|
||||||
# else
|
# else
|
||||||
# define BOOST_COMPILER_VERSION __MWERKS__
|
# define BOOST_COMPILER_VERSION __MWERKS__
|
||||||
# endif
|
# endif
|
||||||
#else
|
#else
|
||||||
# define BOOST_COMPILER_VERSION __MWERKS__
|
# define BOOST_COMPILER_VERSION __MWERKS__
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//
|
//
|
||||||
// C++0x features
|
// C++0x features
|
||||||
//
|
//
|
||||||
// See boost\config\suffix.hpp for BOOST_NO_LONG_LONG
|
// See boost\config\suffix.hpp for BOOST_NO_LONG_LONG
|
||||||
//
|
//
|
||||||
#if __MWERKS__ > 0x3206 && __option(rvalue_refs)
|
#if __MWERKS__ > 0x3206 && __option(rvalue_refs)
|
||||||
# define BOOST_HAS_RVALUE_REFS
|
# define BOOST_HAS_RVALUE_REFS
|
||||||
#else
|
#else
|
||||||
# define BOOST_NO_RVALUE_REFERENCES
|
# define BOOST_NO_RVALUE_REFERENCES
|
||||||
#endif
|
#endif
|
||||||
#define BOOST_NO_AUTO_DECLARATIONS
|
#define BOOST_NO_AUTO_DECLARATIONS
|
||||||
#define BOOST_NO_AUTO_MULTIDECLARATIONS
|
#define BOOST_NO_AUTO_MULTIDECLARATIONS
|
||||||
#define BOOST_NO_CHAR16_T
|
#define BOOST_NO_CHAR16_T
|
||||||
#define BOOST_NO_CHAR32_T
|
#define BOOST_NO_CHAR32_T
|
||||||
#define BOOST_NO_CONCEPTS
|
#define BOOST_NO_CONSTEXPR
|
||||||
#define BOOST_NO_CONSTEXPR
|
#define BOOST_NO_DECLTYPE
|
||||||
#define BOOST_NO_DECLTYPE
|
#define BOOST_NO_DECLTYPE_N3276
|
||||||
#define BOOST_NO_DEFAULTED_FUNCTIONS
|
#define BOOST_NO_DEFAULTED_FUNCTIONS
|
||||||
#define BOOST_NO_DELETED_FUNCTIONS
|
#define BOOST_NO_DELETED_FUNCTIONS
|
||||||
#define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS
|
#define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS
|
||||||
#define BOOST_NO_EXTERN_TEMPLATE
|
#define BOOST_NO_EXTERN_TEMPLATE
|
||||||
#define BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS
|
#define BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS
|
||||||
#define BOOST_NO_INITIALIZER_LISTS
|
#define BOOST_NO_INITIALIZER_LISTS
|
||||||
#define BOOST_NO_LAMBDAS
|
#define BOOST_NO_LAMBDAS
|
||||||
#define BOOST_NO_NULLPTR
|
#define BOOST_NO_NOEXCEPT
|
||||||
#define BOOST_NO_RAW_LITERALS
|
#define BOOST_NO_NULLPTR
|
||||||
#define BOOST_NO_SCOPED_ENUMS
|
#define BOOST_NO_RAW_LITERALS
|
||||||
#define BOOST_NO_SFINAE_EXPR
|
#define BOOST_NO_SCOPED_ENUMS
|
||||||
#define BOOST_NO_STATIC_ASSERT
|
#define BOOST_NO_SFINAE_EXPR
|
||||||
#define BOOST_NO_TEMPLATE_ALIASES
|
#define BOOST_NO_STATIC_ASSERT
|
||||||
#define BOOST_NO_UNICODE_LITERALS
|
#define BOOST_NO_TEMPLATE_ALIASES
|
||||||
#define BOOST_NO_VARIADIC_TEMPLATES
|
#define BOOST_NO_UNICODE_LITERALS
|
||||||
#define BOOST_NO_VARIADIC_MACROS
|
#define BOOST_NO_VARIADIC_TEMPLATES
|
||||||
|
#define BOOST_NO_VARIADIC_MACROS
|
||||||
#define BOOST_COMPILER "Metrowerks CodeWarrior C++ version " BOOST_STRINGIZE(BOOST_COMPILER_VERSION)
|
#define BOOST_NO_UNIFIED_INITIALIZATION_SYNTAX
|
||||||
|
|
||||||
//
|
#define BOOST_COMPILER "Metrowerks CodeWarrior C++ version " BOOST_STRINGIZE(BOOST_COMPILER_VERSION)
|
||||||
// versions check:
|
|
||||||
// we don't support Metrowerks prior to version 5.3:
|
//
|
||||||
#if __MWERKS__ < 0x2301
|
// versions check:
|
||||||
# error "Compiler not supported or configured - please reconfigure"
|
// we don't support Metrowerks prior to version 5.3:
|
||||||
#endif
|
#if __MWERKS__ < 0x2301
|
||||||
//
|
# error "Compiler not supported or configured - please reconfigure"
|
||||||
// last known and checked version:
|
#endif
|
||||||
#if (__MWERKS__ > 0x3205)
|
//
|
||||||
# if defined(BOOST_ASSERT_CONFIG)
|
// last known and checked version:
|
||||||
# error "Unknown compiler version - please run the configure tests and report the results"
|
#if (__MWERKS__ > 0x3205)
|
||||||
# endif
|
# if defined(BOOST_ASSERT_CONFIG)
|
||||||
#endif
|
# error "Unknown compiler version - please run the configure tests and report the results"
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,82 +1,84 @@
|
||||||
// (C) Copyright John Maddock 2001 - 2002.
|
// (C) Copyright John Maddock 2001 - 2002.
|
||||||
// (C) Copyright Aleksey Gurtovoy 2002.
|
// (C) Copyright Aleksey Gurtovoy 2002.
|
||||||
// Use, modification and distribution are subject to the
|
// Use, modification and distribution are subject to the
|
||||||
// Boost Software License, Version 1.0. (See accompanying file
|
// Boost Software License, Version 1.0. (See accompanying file
|
||||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
|
||||||
// See http://www.boost.org for most recent version.
|
// See http://www.boost.org for most recent version.
|
||||||
|
|
||||||
// MPW C++ compilers setup:
|
// MPW C++ compilers setup:
|
||||||
|
|
||||||
# if defined(__SC__)
|
# if defined(__SC__)
|
||||||
# define BOOST_COMPILER "MPW SCpp version " BOOST_STRINGIZE(__SC__)
|
# define BOOST_COMPILER "MPW SCpp version " BOOST_STRINGIZE(__SC__)
|
||||||
# elif defined(__MRC__)
|
# elif defined(__MRC__)
|
||||||
# define BOOST_COMPILER "MPW MrCpp version " BOOST_STRINGIZE(__MRC__)
|
# define BOOST_COMPILER "MPW MrCpp version " BOOST_STRINGIZE(__MRC__)
|
||||||
# else
|
# else
|
||||||
# error "Using MPW compiler configuration by mistake. Please update."
|
# error "Using MPW compiler configuration by mistake. Please update."
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
//
|
//
|
||||||
// MPW 8.90:
|
// MPW 8.90:
|
||||||
//
|
//
|
||||||
#if (MPW_CPLUS <= 0x890) || !defined(BOOST_STRICT_CONFIG)
|
#if (MPW_CPLUS <= 0x890) || !defined(BOOST_STRICT_CONFIG)
|
||||||
# define BOOST_NO_CV_SPECIALIZATIONS
|
# define BOOST_NO_CV_SPECIALIZATIONS
|
||||||
# define BOOST_NO_DEPENDENT_NESTED_DERIVATIONS
|
# define BOOST_NO_DEPENDENT_NESTED_DERIVATIONS
|
||||||
# define BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS
|
# define BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS
|
||||||
# define BOOST_NO_INCLASS_MEMBER_INITIALIZATION
|
# define BOOST_NO_INCLASS_MEMBER_INITIALIZATION
|
||||||
# define BOOST_NO_INTRINSIC_WCHAR_T
|
# define BOOST_NO_INTRINSIC_WCHAR_T
|
||||||
# define BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
|
# define BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
|
||||||
# define BOOST_NO_USING_TEMPLATE
|
# define BOOST_NO_USING_TEMPLATE
|
||||||
|
|
||||||
# define BOOST_NO_CWCHAR
|
# define BOOST_NO_CWCHAR
|
||||||
# define BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
|
# define BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
|
||||||
|
|
||||||
# define BOOST_NO_STD_ALLOCATOR /* actually a bug with const reference overloading */
|
# define BOOST_NO_STD_ALLOCATOR /* actually a bug with const reference overloading */
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//
|
//
|
||||||
// C++0x features
|
// C++0x features
|
||||||
//
|
//
|
||||||
// See boost\config\suffix.hpp for BOOST_NO_LONG_LONG
|
// See boost\config\suffix.hpp for BOOST_NO_LONG_LONG
|
||||||
//
|
//
|
||||||
#define BOOST_NO_AUTO_DECLARATIONS
|
#define BOOST_NO_AUTO_DECLARATIONS
|
||||||
#define BOOST_NO_AUTO_MULTIDECLARATIONS
|
#define BOOST_NO_AUTO_MULTIDECLARATIONS
|
||||||
#define BOOST_NO_CHAR16_T
|
#define BOOST_NO_CHAR16_T
|
||||||
#define BOOST_NO_CHAR32_T
|
#define BOOST_NO_CHAR32_T
|
||||||
#define BOOST_NO_CONCEPTS
|
#define BOOST_NO_CONSTEXPR
|
||||||
#define BOOST_NO_CONSTEXPR
|
#define BOOST_NO_DECLTYPE
|
||||||
#define BOOST_NO_DECLTYPE
|
#define BOOST_NO_DECLTYPE_N3276
|
||||||
#define BOOST_NO_DEFAULTED_FUNCTIONS
|
#define BOOST_NO_DEFAULTED_FUNCTIONS
|
||||||
#define BOOST_NO_DELETED_FUNCTIONS
|
#define BOOST_NO_DELETED_FUNCTIONS
|
||||||
#define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS
|
#define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS
|
||||||
#define BOOST_NO_EXTERN_TEMPLATE
|
#define BOOST_NO_EXTERN_TEMPLATE
|
||||||
#define BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS
|
#define BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS
|
||||||
#define BOOST_NO_INITIALIZER_LISTS
|
#define BOOST_NO_INITIALIZER_LISTS
|
||||||
#define BOOST_NO_LAMBDAS
|
#define BOOST_NO_LAMBDAS
|
||||||
#define BOOST_NO_NULLPTR
|
#define BOOST_NO_NOEXCEPT
|
||||||
#define BOOST_NO_RAW_LITERALS
|
#define BOOST_NO_NULLPTR
|
||||||
#define BOOST_NO_RVALUE_REFERENCES
|
#define BOOST_NO_RAW_LITERALS
|
||||||
#define BOOST_NO_SCOPED_ENUMS
|
#define BOOST_NO_RVALUE_REFERENCES
|
||||||
#define BOOST_NO_SFINAE_EXPR
|
#define BOOST_NO_SCOPED_ENUMS
|
||||||
#define BOOST_NO_STATIC_ASSERT
|
#define BOOST_NO_SFINAE_EXPR
|
||||||
#define BOOST_NO_TEMPLATE_ALIASES
|
#define BOOST_NO_STATIC_ASSERT
|
||||||
#define BOOST_NO_UNICODE_LITERALS
|
#define BOOST_NO_TEMPLATE_ALIASES
|
||||||
#define BOOST_NO_VARIADIC_TEMPLATES
|
#define BOOST_NO_UNICODE_LITERALS
|
||||||
#define BOOST_NO_VARIADIC_MACROS
|
#define BOOST_NO_VARIADIC_TEMPLATES
|
||||||
|
#define BOOST_NO_VARIADIC_MACROS
|
||||||
//
|
#define BOOST_NO_UNIFIED_INITIALIZATION_SYNTAX
|
||||||
// versions check:
|
|
||||||
// we don't support MPW prior to version 8.9:
|
//
|
||||||
#if MPW_CPLUS < 0x890
|
// versions check:
|
||||||
# error "Compiler not supported or configured - please reconfigure"
|
// we don't support MPW prior to version 8.9:
|
||||||
#endif
|
#if MPW_CPLUS < 0x890
|
||||||
//
|
# error "Compiler not supported or configured - please reconfigure"
|
||||||
// last known and checked version is 0x890:
|
#endif
|
||||||
#if (MPW_CPLUS > 0x890)
|
//
|
||||||
# if defined(BOOST_ASSERT_CONFIG)
|
// last known and checked version is 0x890:
|
||||||
# error "Unknown compiler version - please run the configure tests and report the results"
|
#if (MPW_CPLUS > 0x890)
|
||||||
# endif
|
# if defined(BOOST_ASSERT_CONFIG)
|
||||||
#endif
|
# error "Unknown compiler version - please run the configure tests and report the results"
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,87 +1,28 @@
|
||||||
// (C) Copyright Eric Jourdanneau, Joel Falcou 2010
|
// (C) Copyright Eric Jourdanneau, Joel Falcou 2010
|
||||||
// Use, modification and distribution are subject to the
|
// Use, modification and distribution are subject to the
|
||||||
// Boost Software License, Version 1.0. (See accompanying file
|
// Boost Software License, Version 1.0. (See accompanying file
|
||||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
|
||||||
// See http://www.boost.org for most recent version.
|
// See http://www.boost.org for most recent version.
|
||||||
|
|
||||||
// NVIDIA CUDA C++ compiler setup
|
// NVIDIA CUDA C++ compiler setup
|
||||||
|
|
||||||
#ifndef BOOST_COMPILER
|
#ifndef BOOST_COMPILER
|
||||||
# define BOOST_COMPILER "NVIDIA CUDA C++ Compiler"
|
# define BOOST_COMPILER "NVIDIA CUDA C++ Compiler"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// NVIDIA Specific support
|
// NVIDIA Specific support
|
||||||
// BOOST_GPU_ENABLED : Flag a function or a method as being enabled on the host and device
|
// BOOST_GPU_ENABLED : Flag a function or a method as being enabled on the host and device
|
||||||
#define BOOST_GPU_ENABLED __host__ __device__
|
#define BOOST_GPU_ENABLED __host__ __device__
|
||||||
|
|
||||||
// Boost support macro for NVCC
|
// Boost support macro for NVCC
|
||||||
// NVCC Basically behaves like some flavor of MSVC6 + some specific quirks
|
// NVCC Basically behaves like some flavor of MSVC6 + some specific quirks
|
||||||
#define BOOST_NO_INCLASS_MEMBER_INITIALIZATION
|
#ifdef __GNUC__
|
||||||
#define BOOST_MSVC6_MEMBER_TEMPLATES
|
|
||||||
#define BOOST_HAS_UNISTD_H
|
#include <boost/config/compiler/gcc.hpp>
|
||||||
#define BOOST_HAS_STDINT_H
|
|
||||||
#define BOOST_HAS_SIGACTION
|
#elif defined(_MSC_VER)
|
||||||
#define BOOST_HAS_SCHED_YIELD
|
|
||||||
#define BOOST_HAS_PTHREADS
|
#include <boost/config/compiler/visualc.hpp>
|
||||||
#define BOOST_HAS_PTHREAD_YIELD
|
|
||||||
#define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
|
#endif
|
||||||
#define BOOST_HAS_PARTIAL_STD_ALLOCATOR
|
|
||||||
#define BOOST_HAS_NRVO
|
|
||||||
#define BOOST_HAS_NL_TYPES_H
|
|
||||||
#define BOOST_HAS_NANOSLEEP
|
|
||||||
#define BOOST_HAS_LONG_LONG
|
|
||||||
#define BOOST_HAS_LOG1P
|
|
||||||
#define BOOST_HAS_GETTIMEOFDAY
|
|
||||||
#define BOOST_HAS_EXPM1
|
|
||||||
#define BOOST_HAS_DIRENT_H
|
|
||||||
#define BOOST_HAS_CLOCK_GETTIME
|
|
||||||
#define BOOST_NO_VARIADIC_TEMPLATES
|
|
||||||
#define BOOST_NO_VARIADIC_MACROS
|
|
||||||
#define BOOST_NO_UNICODE_LITERALS
|
|
||||||
#define BOOST_NO_TEMPLATE_ALIASES
|
|
||||||
#define BOOST_NO_STD_UNORDERED
|
|
||||||
#define BOOST_NO_STATIC_ASSERT
|
|
||||||
#define BOOST_NO_SFINAE_EXPR
|
|
||||||
#define BOOST_NO_SCOPED_ENUMS
|
|
||||||
#define BOOST_NO_RVALUE_REFERENCES
|
|
||||||
#define BOOST_NO_RAW_LITERALS
|
|
||||||
#define BOOST_NO_NULLPTR
|
|
||||||
#define BOOST_NO_LAMBDAS
|
|
||||||
#define BOOST_NO_INITIALIZER_LISTS
|
|
||||||
#define BOOST_NO_MS_INT64_NUMERIC_LIMITS
|
|
||||||
#define BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS
|
|
||||||
#define BOOST_NO_EXTERN_TEMPLATE
|
|
||||||
#define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS
|
|
||||||
#define BOOST_NO_DELETED_FUNCTIONS
|
|
||||||
#define BOOST_NO_DEFAULTED_FUNCTIONS
|
|
||||||
#define BOOST_NO_DECLTYPE
|
|
||||||
#define BOOST_NO_CONSTEXPR
|
|
||||||
#define BOOST_NO_CONCEPTS
|
|
||||||
#define BOOST_NO_CHAR32_T
|
|
||||||
#define BOOST_NO_CHAR16_T
|
|
||||||
#define BOOST_NO_AUTO_MULTIDECLARATIONS
|
|
||||||
#define BOOST_NO_AUTO_DECLARATIONS
|
|
||||||
#define BOOST_NO_0X_HDR_UNORDERED_SET
|
|
||||||
#define BOOST_NO_0X_HDR_UNORDERED_MAP
|
|
||||||
#define BOOST_NO_0X_HDR_TYPE_TRAITS
|
|
||||||
#define BOOST_NO_0X_HDR_TUPLE
|
|
||||||
#define BOOST_NO_0X_HDR_THREAD
|
|
||||||
#define BOOST_NO_0X_HDR_TYPEINDEX
|
|
||||||
#define BOOST_NO_0X_HDR_SYSTEM_ERROR
|
|
||||||
#define BOOST_NO_0X_HDR_REGEX
|
|
||||||
#define BOOST_NO_0X_HDR_RATIO
|
|
||||||
#define BOOST_NO_0X_HDR_RANDOM
|
|
||||||
#define BOOST_NO_0X_HDR_MUTEX
|
|
||||||
#define BOOST_NO_0X_HDR_MEMORY_CONCEPTS
|
|
||||||
#define BOOST_NO_0X_HDR_ITERATOR_CONCEPTS
|
|
||||||
#define BOOST_NO_0X_HDR_INITIALIZER_LIST
|
|
||||||
#define BOOST_NO_0X_HDR_FUTURE
|
|
||||||
#define BOOST_NO_0X_HDR_FORWARD_LIST
|
|
||||||
#define BOOST_NO_0X_HDR_CONTAINER_CONCEPTS
|
|
||||||
#define BOOST_NO_0X_HDR_CONDITION_VARIABLE
|
|
||||||
#define BOOST_NO_0X_HDR_CONCEPTS
|
|
||||||
#define BOOST_NO_0X_HDR_CODECVT
|
|
||||||
#define BOOST_NO_0X_HDR_CHRONO
|
|
||||||
#define BOOST_NO_0X_HDR_ARRAY
|
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,80 @@
|
||||||
|
// (C) Copyright Bryce Lelbach 2011
|
||||||
|
|
||||||
|
// Use, modification and distribution are subject to the
|
||||||
|
// Boost Software License, Version 1.0. (See accompanying file
|
||||||
|
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
|
||||||
|
// See http://www.boost.org for most recent version.
|
||||||
|
|
||||||
|
// PathScale EKOPath C++ Compiler
|
||||||
|
|
||||||
|
#ifndef BOOST_COMPILER
|
||||||
|
# define BOOST_COMPILER "PathScale EKOPath C++ Compiler version " __PATHSCALE__
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if __PATHCC__ >= 4
|
||||||
|
# define BOOST_MSVC6_MEMBER_TEMPLATES
|
||||||
|
# define BOOST_HAS_UNISTD_H
|
||||||
|
# define BOOST_HAS_STDINT_H
|
||||||
|
# define BOOST_HAS_SIGACTION
|
||||||
|
# define BOOST_HAS_SCHED_YIELD
|
||||||
|
# define BOOST_HAS_THREADS
|
||||||
|
# define BOOST_HAS_PTHREADS
|
||||||
|
# define BOOST_HAS_PTHREAD_YIELD
|
||||||
|
# define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
|
||||||
|
# define BOOST_HAS_PARTIAL_STD_ALLOCATOR
|
||||||
|
# define BOOST_HAS_NRVO
|
||||||
|
# define BOOST_HAS_NL_TYPES_H
|
||||||
|
# define BOOST_HAS_NANOSLEEP
|
||||||
|
# define BOOST_HAS_LONG_LONG
|
||||||
|
# define BOOST_HAS_LOG1P
|
||||||
|
# define BOOST_HAS_GETTIMEOFDAY
|
||||||
|
# define BOOST_HAS_EXPM1
|
||||||
|
# define BOOST_HAS_DIRENT_H
|
||||||
|
# define BOOST_HAS_CLOCK_GETTIME
|
||||||
|
# define BOOST_NO_VARIADIC_TEMPLATES
|
||||||
|
# define BOOST_NO_UNICODE_LITERALS
|
||||||
|
# define BOOST_NO_TEMPLATE_ALIASES
|
||||||
|
# define BOOST_NO_STD_UNORDERED
|
||||||
|
# define BOOST_NO_STATIC_ASSERT
|
||||||
|
# define BOOST_NO_SFINAE_EXPR
|
||||||
|
# define BOOST_NO_SCOPED_ENUMS
|
||||||
|
# define BOOST_NO_RVALUE_REFERENCES
|
||||||
|
# define BOOST_NO_RAW_LITERALS
|
||||||
|
# define BOOST_NO_NULLPTR
|
||||||
|
# define BOOST_NO_NUMERIC_LIMITS_LOWEST
|
||||||
|
# define BOOST_NO_NOEXCEPT
|
||||||
|
# define BOOST_NO_LAMBDAS
|
||||||
|
# define BOOST_NO_INITIALIZER_LISTS
|
||||||
|
# define BOOST_NO_MS_INT64_NUMERIC_LIMITS
|
||||||
|
# define BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS
|
||||||
|
# define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS
|
||||||
|
# define BOOST_NO_DELETED_FUNCTIONS
|
||||||
|
# define BOOST_NO_DEFAULTED_FUNCTIONS
|
||||||
|
# define BOOST_NO_DECLTYPE
|
||||||
|
# define BOOST_NO_DECLTYPE_N3276
|
||||||
|
# define BOOST_NO_CONSTEXPR
|
||||||
|
# define BOOST_NO_COMPLETE_VALUE_INITIALIZATION
|
||||||
|
# define BOOST_NO_CHAR32_T
|
||||||
|
# define BOOST_NO_CHAR16_T
|
||||||
|
# define BOOST_NO_AUTO_MULTIDECLARATIONS
|
||||||
|
# define BOOST_NO_AUTO_DECLARATIONS
|
||||||
|
# define BOOST_NO_UNIFIED_INITIALIZATION_SYNTAX
|
||||||
|
# define BOOST_NO_0X_HDR_UNORDERED_SET
|
||||||
|
# define BOOST_NO_0X_HDR_UNORDERED_MAP
|
||||||
|
# define BOOST_NO_0X_HDR_TYPEINDEX
|
||||||
|
# define BOOST_NO_0X_HDR_TUPLE
|
||||||
|
# define BOOST_NO_0X_HDR_THREAD
|
||||||
|
# define BOOST_NO_0X_HDR_SYSTEM_ERROR
|
||||||
|
# define BOOST_NO_0X_HDR_REGEX
|
||||||
|
# define BOOST_NO_0X_HDR_RATIO
|
||||||
|
# define BOOST_NO_0X_HDR_RANDOM
|
||||||
|
# define BOOST_NO_0X_HDR_MUTEX
|
||||||
|
# define BOOST_NO_0X_HDR_INITIALIZER_LIST
|
||||||
|
# define BOOST_NO_0X_HDR_FUTURE
|
||||||
|
# define BOOST_NO_0X_HDR_FORWARD_LIST
|
||||||
|
# define BOOST_NO_0X_HDR_CONDITION_VARIABLE
|
||||||
|
# define BOOST_NO_0X_HDR_CODECVT
|
||||||
|
# define BOOST_NO_0X_HDR_CHRONO
|
||||||
|
#endif
|
||||||
|
|
|
@ -1,78 +1,77 @@
|
||||||
// (C) Copyright Noel Belcourt 2007.
|
// (C) Copyright Noel Belcourt 2007.
|
||||||
// Use, modification and distribution are subject to the
|
// Use, modification and distribution are subject to the
|
||||||
// Boost Software License, Version 1.0. (See accompanying file
|
// Boost Software License, Version 1.0. (See accompanying file
|
||||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
|
||||||
// See http://www.boost.org for most recent version.
|
// See http://www.boost.org for most recent version.
|
||||||
|
|
||||||
// PGI C++ compiler setup:
|
// PGI C++ compiler setup:
|
||||||
|
|
||||||
#define BOOST_COMPILER_VERSION __PGIC__##__PGIC_MINOR__
|
#define BOOST_COMPILER_VERSION __PGIC__##__PGIC_MINOR__
|
||||||
#define BOOST_COMPILER "PGI compiler version " BOOST_STRINGIZE(_COMPILER_VERSION)
|
#define BOOST_COMPILER "PGI compiler version " BOOST_STRINGIZE(BOOST_COMPILER_VERSION)
|
||||||
|
|
||||||
//
|
//
|
||||||
// Threading support:
|
// Threading support:
|
||||||
// Turn this on unconditionally here, it will get turned off again later
|
// Turn this on unconditionally here, it will get turned off again later
|
||||||
// if no threading API is detected.
|
// if no threading API is detected.
|
||||||
//
|
//
|
||||||
|
|
||||||
// PGI 10.x doesn't seem to define __PGIC__
|
#if __PGIC__ >= 10
|
||||||
|
|
||||||
// versions earlier than 10.x do define __PGIC__
|
// options requested by configure --enable-test
|
||||||
#if __PGIC__ >= 10
|
#define BOOST_HAS_PTHREADS
|
||||||
|
#define BOOST_HAS_NRVO
|
||||||
// options requested by configure --enable-test
|
#define BOOST_HAS_LONG_LONG
|
||||||
#define BOOST_HAS_PTHREADS
|
|
||||||
#define BOOST_HAS_NRVO
|
// options --enable-test wants undefined
|
||||||
#define BOOST_HAS_LONG_LONG
|
#undef BOOST_NO_STDC_NAMESPACE
|
||||||
|
#undef BOOST_NO_EXCEPTION_STD_NAMESPACE
|
||||||
// options --enable-test wants undefined
|
#undef BOOST_DEDUCED_TYPENAME
|
||||||
#undef BOOST_NO_STDC_NAMESPACE
|
|
||||||
#undef BOOST_NO_EXCEPTION_STD_NAMESPACE
|
#elif __PGIC__ >= 7
|
||||||
#undef BOOST_DEDUCED_TYPENAME
|
|
||||||
|
#define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
|
||||||
#elif __PGIC__ >= 7
|
#define BOOST_NO_TWO_PHASE_NAME_LOOKUP
|
||||||
|
#define BOOST_NO_SWPRINTF
|
||||||
#define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
|
#define BOOST_NO_AUTO_MULTIDECLARATIONS
|
||||||
#define BOOST_NO_TWO_PHASE_NAME_LOOKUP
|
#define BOOST_NO_AUTO_DECLARATIONS
|
||||||
#define BOOST_NO_SWPRINTF
|
|
||||||
#define BOOST_NO_AUTO_MULTIDECLARATIONS
|
#else
|
||||||
#define BOOST_NO_AUTO_DECLARATIONS
|
|
||||||
|
# error "Pgi compiler not configured - please reconfigure"
|
||||||
#else
|
|
||||||
|
#endif
|
||||||
# error "Pgi compiler not configured - please reconfigure"
|
//
|
||||||
|
// C++0x features
|
||||||
#endif
|
//
|
||||||
//
|
// See boost\config\suffix.hpp for BOOST_NO_LONG_LONG
|
||||||
// C++0x features
|
//
|
||||||
//
|
#define BOOST_NO_CHAR16_T
|
||||||
// See boost\config\suffix.hpp for BOOST_NO_LONG_LONG
|
#define BOOST_NO_CHAR32_T
|
||||||
//
|
#define BOOST_NO_CONSTEXPR
|
||||||
#define BOOST_NO_CHAR16_T
|
#define BOOST_NO_DECLTYPE
|
||||||
#define BOOST_NO_CHAR32_T
|
#define BOOST_NO_DECLTYPE_N3276
|
||||||
#define BOOST_NO_CONCEPTS
|
#define BOOST_NO_DEFAULTED_FUNCTIONS
|
||||||
#define BOOST_NO_CONSTEXPR
|
#define BOOST_NO_DELETED_FUNCTIONS
|
||||||
#define BOOST_NO_DECLTYPE
|
#define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS
|
||||||
#define BOOST_NO_DEFAULTED_FUNCTIONS
|
#define BOOST_NO_EXTERN_TEMPLATE
|
||||||
#define BOOST_NO_DELETED_FUNCTIONS
|
#define BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS
|
||||||
#define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS
|
#define BOOST_NO_INITIALIZER_LISTS
|
||||||
#define BOOST_NO_EXTERN_TEMPLATE
|
#define BOOST_NO_LAMBDAS
|
||||||
#define BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS
|
#define BOOST_NO_NOEXCEPT
|
||||||
#define BOOST_NO_INITIALIZER_LISTS
|
#define BOOST_NO_NULLPTR
|
||||||
#define BOOST_NO_LAMBDAS
|
#define BOOST_NO_RAW_LITERALS
|
||||||
#define BOOST_NO_NULLPTR
|
#define BOOST_NO_RVALUE_REFERENCES
|
||||||
#define BOOST_NO_RAW_LITERALS
|
#define BOOST_NO_SCOPED_ENUMS
|
||||||
#define BOOST_NO_RVALUE_REFERENCES
|
#define BOOST_NO_SFINAE_EXPR
|
||||||
#define BOOST_NO_SCOPED_ENUMS
|
#define BOOST_NO_STATIC_ASSERT
|
||||||
#define BOOST_NO_SFINAE_EXPR
|
#define BOOST_NO_TEMPLATE_ALIASES
|
||||||
#define BOOST_NO_STATIC_ASSERT
|
#define BOOST_NO_UNICODE_LITERALS
|
||||||
#define BOOST_NO_TEMPLATE_ALIASES
|
#define BOOST_NO_VARIADIC_TEMPLATES
|
||||||
#define BOOST_NO_UNICODE_LITERALS
|
#define BOOST_NO_VARIADIC_MACROS
|
||||||
#define BOOST_NO_VARIADIC_TEMPLATES
|
#define BOOST_NO_UNIFIED_INITIALIZATION_SYNTAX
|
||||||
#define BOOST_NO_VARIADIC_MACROS
|
|
||||||
|
//
|
||||||
//
|
// version check:
|
||||||
// version check:
|
// probably nothing to do here?
|
||||||
// probably nothing to do here?
|
|
||||||
|
|
||||||
|
|
|
@ -1,29 +1,29 @@
|
||||||
// (C) Copyright John Maddock 2001 - 2002.
|
// (C) Copyright John Maddock 2001 - 2002.
|
||||||
// Use, modification and distribution are subject to the
|
// Use, modification and distribution are subject to the
|
||||||
// Boost Software License, Version 1.0. (See accompanying file
|
// Boost Software License, Version 1.0. (See accompanying file
|
||||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
|
||||||
// See http://www.boost.org for most recent version.
|
// See http://www.boost.org for most recent version.
|
||||||
|
|
||||||
// SGI C++ compiler setup:
|
// SGI C++ compiler setup:
|
||||||
|
|
||||||
#define BOOST_COMPILER "SGI Irix compiler version " BOOST_STRINGIZE(_COMPILER_VERSION)
|
#define BOOST_COMPILER "SGI Irix compiler version " BOOST_STRINGIZE(_COMPILER_VERSION)
|
||||||
|
|
||||||
#include "boost/config/compiler/common_edg.hpp"
|
#include "boost/config/compiler/common_edg.hpp"
|
||||||
|
|
||||||
//
|
//
|
||||||
// Threading support:
|
// Threading support:
|
||||||
// Turn this on unconditionally here, it will get turned off again later
|
// Turn this on unconditionally here, it will get turned off again later
|
||||||
// if no threading API is detected.
|
// if no threading API is detected.
|
||||||
//
|
//
|
||||||
#define BOOST_HAS_THREADS
|
#define BOOST_HAS_THREADS
|
||||||
#define BOOST_NO_TWO_PHASE_NAME_LOOKUP
|
#define BOOST_NO_TWO_PHASE_NAME_LOOKUP
|
||||||
|
|
||||||
#undef BOOST_NO_SWPRINTF
|
#undef BOOST_NO_SWPRINTF
|
||||||
#undef BOOST_DEDUCED_TYPENAME
|
#undef BOOST_DEDUCED_TYPENAME
|
||||||
|
|
||||||
//
|
//
|
||||||
// version check:
|
// version check:
|
||||||
// probably nothing to do here?
|
// probably nothing to do here?
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,145 +1,147 @@
|
||||||
// (C) Copyright John Maddock 2001.
|
// (C) Copyright John Maddock 2001.
|
||||||
// (C) Copyright Jens Maurer 2001 - 2003.
|
// (C) Copyright Jens Maurer 2001 - 2003.
|
||||||
// (C) Copyright Peter Dimov 2002.
|
// (C) Copyright Peter Dimov 2002.
|
||||||
// (C) Copyright Aleksey Gurtovoy 2002 - 2003.
|
// (C) Copyright Aleksey Gurtovoy 2002 - 2003.
|
||||||
// (C) Copyright David Abrahams 2002.
|
// (C) Copyright David Abrahams 2002.
|
||||||
// Use, modification and distribution are subject to the
|
// Use, modification and distribution are subject to the
|
||||||
// Boost Software License, Version 1.0. (See accompanying file
|
// Boost Software License, Version 1.0. (See accompanying file
|
||||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
|
||||||
// See http://www.boost.org for most recent version.
|
// See http://www.boost.org for most recent version.
|
||||||
|
|
||||||
// Sun C++ compiler setup:
|
// Sun C++ compiler setup:
|
||||||
|
|
||||||
# if __SUNPRO_CC <= 0x500
|
# if __SUNPRO_CC <= 0x500
|
||||||
# define BOOST_NO_MEMBER_TEMPLATES
|
# define BOOST_NO_MEMBER_TEMPLATES
|
||||||
# define BOOST_NO_FUNCTION_TEMPLATE_ORDERING
|
# define BOOST_NO_FUNCTION_TEMPLATE_ORDERING
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
# if (__SUNPRO_CC <= 0x520)
|
# if (__SUNPRO_CC <= 0x520)
|
||||||
//
|
//
|
||||||
// Sunpro 5.2 and earler:
|
// Sunpro 5.2 and earler:
|
||||||
//
|
//
|
||||||
// although sunpro 5.2 supports the syntax for
|
// although sunpro 5.2 supports the syntax for
|
||||||
// inline initialization it often gets the value
|
// inline initialization it often gets the value
|
||||||
// wrong, especially where the value is computed
|
// wrong, especially where the value is computed
|
||||||
// from other constants (J Maddock 6th May 2001)
|
// from other constants (J Maddock 6th May 2001)
|
||||||
# define BOOST_NO_INCLASS_MEMBER_INITIALIZATION
|
# define BOOST_NO_INCLASS_MEMBER_INITIALIZATION
|
||||||
|
|
||||||
// Although sunpro 5.2 supports the syntax for
|
// Although sunpro 5.2 supports the syntax for
|
||||||
// partial specialization, it often seems to
|
// partial specialization, it often seems to
|
||||||
// bind to the wrong specialization. Better
|
// bind to the wrong specialization. Better
|
||||||
// to disable it until suppport becomes more stable
|
// to disable it until suppport becomes more stable
|
||||||
// (J Maddock 6th May 2001).
|
// (J Maddock 6th May 2001).
|
||||||
# define BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
|
# define BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
# if (__SUNPRO_CC <= 0x530)
|
# if (__SUNPRO_CC <= 0x530)
|
||||||
// Requesting debug info (-g) with Boost.Python results
|
// Requesting debug info (-g) with Boost.Python results
|
||||||
// in an internal compiler error for "static const"
|
// in an internal compiler error for "static const"
|
||||||
// initialized in-class.
|
// initialized in-class.
|
||||||
// >> Assertion: (../links/dbg_cstabs.cc, line 611)
|
// >> Assertion: (../links/dbg_cstabs.cc, line 611)
|
||||||
// while processing ../test.cpp at line 0.
|
// while processing ../test.cpp at line 0.
|
||||||
// (Jens Maurer according to Gottfried Ganssauge 04 Mar 2002)
|
// (Jens Maurer according to Gottfried Ganssauge 04 Mar 2002)
|
||||||
# define BOOST_NO_INCLASS_MEMBER_INITIALIZATION
|
# define BOOST_NO_INCLASS_MEMBER_INITIALIZATION
|
||||||
|
|
||||||
// SunPro 5.3 has better support for partial specialization,
|
// SunPro 5.3 has better support for partial specialization,
|
||||||
// but breaks when compiling std::less<shared_ptr<T> >
|
// but breaks when compiling std::less<shared_ptr<T> >
|
||||||
// (Jens Maurer 4 Nov 2001).
|
// (Jens Maurer 4 Nov 2001).
|
||||||
|
|
||||||
// std::less specialization fixed as reported by George
|
// std::less specialization fixed as reported by George
|
||||||
// Heintzelman; partial specialization re-enabled
|
// Heintzelman; partial specialization re-enabled
|
||||||
// (Peter Dimov 17 Jan 2002)
|
// (Peter Dimov 17 Jan 2002)
|
||||||
|
|
||||||
//# define BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
|
//# define BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
|
||||||
|
|
||||||
// integral constant expressions with 64 bit numbers fail
|
// integral constant expressions with 64 bit numbers fail
|
||||||
# define BOOST_NO_INTEGRAL_INT64_T
|
# define BOOST_NO_INTEGRAL_INT64_T
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
# if (__SUNPRO_CC < 0x570)
|
# if (__SUNPRO_CC < 0x570)
|
||||||
# define BOOST_NO_TEMPLATE_TEMPLATES
|
# define BOOST_NO_TEMPLATE_TEMPLATES
|
||||||
// see http://lists.boost.org/MailArchives/boost/msg47184.php
|
// see http://lists.boost.org/MailArchives/boost/msg47184.php
|
||||||
// and http://lists.boost.org/MailArchives/boost/msg47220.php
|
// and http://lists.boost.org/MailArchives/boost/msg47220.php
|
||||||
# define BOOST_NO_INCLASS_MEMBER_INITIALIZATION
|
# define BOOST_NO_INCLASS_MEMBER_INITIALIZATION
|
||||||
# define BOOST_NO_SFINAE
|
# define BOOST_NO_SFINAE
|
||||||
# define BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS
|
# define BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS
|
||||||
# endif
|
# endif
|
||||||
# if (__SUNPRO_CC <= 0x580)
|
# if (__SUNPRO_CC <= 0x580)
|
||||||
# define BOOST_NO_IS_ABSTRACT
|
# define BOOST_NO_IS_ABSTRACT
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
# if (__SUNPRO_CC <= 0x5100)
|
# if (__SUNPRO_CC <= 0x5100)
|
||||||
// Sun 5.10 may not correctly value-initialize objects of
|
// Sun 5.10 may not correctly value-initialize objects of
|
||||||
// some user defined types, as was reported in April 2010
|
// some user defined types, as was reported in April 2010
|
||||||
// (CR 6947016), and confirmed by Steve Clamage.
|
// (CR 6947016), and confirmed by Steve Clamage.
|
||||||
// (Niels Dekker, LKEB, May 2010).
|
// (Niels Dekker, LKEB, May 2010).
|
||||||
# define BOOST_NO_COMPLETE_VALUE_INITIALIZATION
|
# define BOOST_NO_COMPLETE_VALUE_INITIALIZATION
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
//
|
//
|
||||||
// Dynamic shared object (DSO) and dynamic-link library (DLL) support
|
// Dynamic shared object (DSO) and dynamic-link library (DLL) support
|
||||||
//
|
//
|
||||||
#if __SUNPRO_CC > 0x500
|
#if __SUNPRO_CC > 0x500
|
||||||
# define BOOST_SYMBOL_EXPORT __global
|
# define BOOST_SYMBOL_EXPORT __global
|
||||||
# define BOOST_SYMBOL_IMPORT __global
|
# define BOOST_SYMBOL_IMPORT __global
|
||||||
# define BOOST_SYMBOL_VISIBLE __global
|
# define BOOST_SYMBOL_VISIBLE __global
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//
|
//
|
||||||
// Issues that effect all known versions:
|
// Issues that effect all known versions:
|
||||||
//
|
//
|
||||||
#define BOOST_NO_TWO_PHASE_NAME_LOOKUP
|
#define BOOST_NO_TWO_PHASE_NAME_LOOKUP
|
||||||
#define BOOST_NO_ADL_BARRIER
|
#define BOOST_NO_ADL_BARRIER
|
||||||
|
|
||||||
//
|
//
|
||||||
// C++0x features
|
// C++0x features
|
||||||
//
|
//
|
||||||
# define BOOST_HAS_LONG_LONG
|
# define BOOST_HAS_LONG_LONG
|
||||||
|
|
||||||
#define BOOST_NO_AUTO_DECLARATIONS
|
#define BOOST_NO_AUTO_DECLARATIONS
|
||||||
#define BOOST_NO_AUTO_MULTIDECLARATIONS
|
#define BOOST_NO_AUTO_MULTIDECLARATIONS
|
||||||
#define BOOST_NO_CHAR16_T
|
#define BOOST_NO_CHAR16_T
|
||||||
#define BOOST_NO_CHAR32_T
|
#define BOOST_NO_CHAR32_T
|
||||||
#define BOOST_NO_CONCEPTS
|
#define BOOST_NO_CONSTEXPR
|
||||||
#define BOOST_NO_CONSTEXPR
|
#define BOOST_NO_DECLTYPE
|
||||||
#define BOOST_NO_DECLTYPE
|
#define BOOST_NO_DECLTYPE_N3276
|
||||||
#define BOOST_NO_DEFAULTED_FUNCTIONS
|
#define BOOST_NO_DEFAULTED_FUNCTIONS
|
||||||
#define BOOST_NO_DELETED_FUNCTIONS
|
#define BOOST_NO_DELETED_FUNCTIONS
|
||||||
#define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS
|
#define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS
|
||||||
#define BOOST_NO_EXTERN_TEMPLATE
|
#define BOOST_NO_EXTERN_TEMPLATE
|
||||||
#define BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS
|
#define BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS
|
||||||
#define BOOST_NO_INITIALIZER_LISTS
|
#define BOOST_NO_INITIALIZER_LISTS
|
||||||
#define BOOST_NO_LAMBDAS
|
#define BOOST_NO_LAMBDAS
|
||||||
#define BOOST_NO_NULLPTR
|
#define BOOST_NO_NOEXCEPT
|
||||||
#define BOOST_NO_RAW_LITERALS
|
#define BOOST_NO_NULLPTR
|
||||||
#define BOOST_NO_RVALUE_REFERENCES
|
#define BOOST_NO_RAW_LITERALS
|
||||||
#define BOOST_NO_SCOPED_ENUMS
|
#define BOOST_NO_RVALUE_REFERENCES
|
||||||
#define BOOST_NO_SFINAE_EXPR
|
#define BOOST_NO_SCOPED_ENUMS
|
||||||
#define BOOST_NO_STATIC_ASSERT
|
#define BOOST_NO_SFINAE_EXPR
|
||||||
#define BOOST_NO_TEMPLATE_ALIASES
|
#define BOOST_NO_STATIC_ASSERT
|
||||||
#define BOOST_NO_UNICODE_LITERALS
|
#define BOOST_NO_TEMPLATE_ALIASES
|
||||||
#define BOOST_NO_VARIADIC_TEMPLATES
|
#define BOOST_NO_UNICODE_LITERALS
|
||||||
#define BOOST_NO_VARIADIC_MACROS
|
#define BOOST_NO_VARIADIC_TEMPLATES
|
||||||
|
#define BOOST_NO_VARIADIC_MACROS
|
||||||
//
|
#define BOOST_NO_UNIFIED_INITIALIZATION_SYNTAX
|
||||||
// Version
|
|
||||||
//
|
//
|
||||||
|
// Version
|
||||||
#define BOOST_COMPILER "Sun compiler version " BOOST_STRINGIZE(__SUNPRO_CC)
|
//
|
||||||
|
|
||||||
//
|
#define BOOST_COMPILER "Sun compiler version " BOOST_STRINGIZE(__SUNPRO_CC)
|
||||||
// versions check:
|
|
||||||
// we don't support sunpro prior to version 4:
|
//
|
||||||
#if __SUNPRO_CC < 0x400
|
// versions check:
|
||||||
#error "Compiler not supported or configured - please reconfigure"
|
// we don't support sunpro prior to version 4:
|
||||||
#endif
|
#if __SUNPRO_CC < 0x400
|
||||||
//
|
#error "Compiler not supported or configured - please reconfigure"
|
||||||
// last known and checked version is 0x590:
|
#endif
|
||||||
#if (__SUNPRO_CC > 0x590)
|
//
|
||||||
# if defined(BOOST_ASSERT_CONFIG)
|
// last known and checked version is 0x590:
|
||||||
# error "Unknown compiler version - please run the configure tests and report the results"
|
#if (__SUNPRO_CC > 0x590)
|
||||||
# endif
|
# if defined(BOOST_ASSERT_CONFIG)
|
||||||
#endif
|
# error "Unknown compiler version - please run the configure tests and report the results"
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
|
|
@ -1,97 +1,120 @@
|
||||||
// (C) Copyright John Maddock 2001 - 2003.
|
// (C) Copyright John Maddock 2001 - 2003.
|
||||||
// (C) Copyright Toon Knapen 2001 - 2003.
|
// (C) Copyright Toon Knapen 2001 - 2003.
|
||||||
// (C) Copyright Lie-Quan Lee 2001.
|
// (C) Copyright Lie-Quan Lee 2001.
|
||||||
// (C) Copyright Markus Schoepflin 2002 - 2003.
|
// (C) Copyright Markus Schoepflin 2002 - 2003.
|
||||||
// (C) Copyright Beman Dawes 2002 - 2003.
|
// (C) Copyright Beman Dawes 2002 - 2003.
|
||||||
// Use, modification and distribution are subject to the
|
// Use, modification and distribution are subject to the
|
||||||
// Boost Software License, Version 1.0. (See accompanying file
|
// Boost Software License, Version 1.0. (See accompanying file
|
||||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
|
||||||
// See http://www.boost.org for most recent version.
|
// See http://www.boost.org for most recent version.
|
||||||
|
|
||||||
// Visual Age (IBM) C++ compiler setup:
|
// Visual Age (IBM) C++ compiler setup:
|
||||||
|
|
||||||
#if __IBMCPP__ <= 501
|
#if __IBMCPP__ <= 501
|
||||||
# define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
|
# define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
|
||||||
# define BOOST_NO_MEMBER_FUNCTION_SPECIALIZATIONS
|
# define BOOST_NO_MEMBER_FUNCTION_SPECIALIZATIONS
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if (__IBMCPP__ <= 502)
|
#if (__IBMCPP__ <= 502)
|
||||||
// Actually the compiler supports inclass member initialization but it
|
// Actually the compiler supports inclass member initialization but it
|
||||||
// requires a definition for the class member and it doesn't recognize
|
// requires a definition for the class member and it doesn't recognize
|
||||||
// it as an integral constant expression when used as a template argument.
|
// it as an integral constant expression when used as a template argument.
|
||||||
# define BOOST_NO_INCLASS_MEMBER_INITIALIZATION
|
# define BOOST_NO_INCLASS_MEMBER_INITIALIZATION
|
||||||
# define BOOST_NO_INTEGRAL_INT64_T
|
# define BOOST_NO_INTEGRAL_INT64_T
|
||||||
# define BOOST_NO_MEMBER_TEMPLATE_KEYWORD
|
# define BOOST_NO_MEMBER_TEMPLATE_KEYWORD
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if (__IBMCPP__ <= 600) || !defined(BOOST_STRICT_CONFIG)
|
#if (__IBMCPP__ <= 600) || !defined(BOOST_STRICT_CONFIG)
|
||||||
# define BOOST_NO_POINTER_TO_MEMBER_TEMPLATE_PARAMETERS
|
# define BOOST_NO_POINTER_TO_MEMBER_TEMPLATE_PARAMETERS
|
||||||
# define BOOST_NO_INITIALIZER_LISTS
|
#endif
|
||||||
#endif
|
|
||||||
|
#if (__IBMCPP__ <= 1110)
|
||||||
#if (__IBMCPP__ <= 1110)
|
// XL C++ V11.1 and earlier versions may not always value-initialize
|
||||||
// XL C++ V11.1 and earlier versions may not always value-initialize
|
// a temporary object T(), when T is a non-POD aggregate class type.
|
||||||
// a temporary object T(), when T is a non-POD aggregate class type.
|
// Michael Wong (IBM Canada Ltd) has confirmed this issue and gave it
|
||||||
// Michael Wong (IBM Canada Ltd) has confirmed this issue and gave it
|
// high priority. -- Niels Dekker (LKEB), May 2010.
|
||||||
// high priority. -- Niels Dekker (LKEB), May 2010.
|
# define BOOST_NO_COMPLETE_VALUE_INITIALIZATION
|
||||||
# define BOOST_NO_COMPLETE_VALUE_INITIALIZATION
|
#endif
|
||||||
#endif
|
|
||||||
|
//
|
||||||
//
|
// On AIX thread support seems to be indicated by _THREAD_SAFE:
|
||||||
// On AIX thread support seems to be indicated by _THREAD_SAFE:
|
//
|
||||||
//
|
#ifdef _THREAD_SAFE
|
||||||
#ifdef _THREAD_SAFE
|
# define BOOST_HAS_THREADS
|
||||||
# define BOOST_HAS_THREADS
|
#endif
|
||||||
#endif
|
|
||||||
|
#define BOOST_COMPILER "IBM Visual Age version " BOOST_STRINGIZE(__IBMCPP__)
|
||||||
#define BOOST_COMPILER "IBM Visual Age version " BOOST_STRINGIZE(__IBMCPP__)
|
|
||||||
|
//
|
||||||
//
|
// versions check:
|
||||||
// versions check:
|
// we don't support Visual age prior to version 5:
|
||||||
// we don't support Visual age prior to version 5:
|
#if __IBMCPP__ < 500
|
||||||
#if __IBMCPP__ < 500
|
#error "Compiler not supported or configured - please reconfigure"
|
||||||
#error "Compiler not supported or configured - please reconfigure"
|
#endif
|
||||||
#endif
|
//
|
||||||
//
|
// last known and checked version is 1110:
|
||||||
// last known and checked version is 600:
|
#if (__IBMCPP__ > 1110)
|
||||||
#if (__IBMCPP__ > 1010)
|
# if defined(BOOST_ASSERT_CONFIG)
|
||||||
# if defined(BOOST_ASSERT_CONFIG)
|
# error "Unknown compiler version - please run the configure tests and report the results"
|
||||||
# error "Unknown compiler version - please run the configure tests and report the results"
|
# endif
|
||||||
# endif
|
#endif
|
||||||
#endif
|
|
||||||
|
// Some versions of the compiler have issues with default arguments on partial specializations
|
||||||
// Some versions of the compiler have issues with default arguments on partial specializations
|
#if __IBMCPP__ <= 1010
|
||||||
#define BOOST_NO_PARTIAL_SPECIALIZATION_IMPLICIT_DEFAULT_ARGS
|
#define BOOST_NO_PARTIAL_SPECIALIZATION_IMPLICIT_DEFAULT_ARGS
|
||||||
|
#endif
|
||||||
//
|
|
||||||
// C++0x features
|
//
|
||||||
//
|
// C++0x features
|
||||||
// See boost\config\suffix.hpp for BOOST_NO_LONG_LONG
|
//
|
||||||
//
|
// See boost\config\suffix.hpp for BOOST_NO_LONG_LONG
|
||||||
#define BOOST_NO_AUTO_DECLARATIONS
|
//
|
||||||
#define BOOST_NO_AUTO_MULTIDECLARATIONS
|
#if ! __IBMCPP_AUTO_TYPEDEDUCTION
|
||||||
#define BOOST_NO_CHAR16_T
|
# define BOOST_NO_AUTO_DECLARATIONS
|
||||||
#define BOOST_NO_CHAR32_T
|
# define BOOST_NO_AUTO_MULTIDECLARATIONS
|
||||||
#define BOOST_NO_CONCEPTS
|
#endif
|
||||||
#define BOOST_NO_CONSTEXPR
|
#if ! __IBMCPP_UTF_LITERAL__
|
||||||
#define BOOST_NO_DECLTYPE
|
# define BOOST_NO_CHAR16_T
|
||||||
#define BOOST_NO_DEFAULTED_FUNCTIONS
|
# define BOOST_NO_CHAR32_T
|
||||||
#define BOOST_NO_DELETED_FUNCTIONS
|
#endif
|
||||||
#define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS
|
#define BOOST_NO_CONSTEXPR
|
||||||
#define BOOST_NO_EXTERN_TEMPLATE
|
#if ! __IBMCPP_DECLTYPE
|
||||||
#define BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS
|
# define BOOST_NO_DECLTYPE
|
||||||
#define BOOST_NO_LAMBDAS
|
#else
|
||||||
#define BOOST_NO_NULLPTR
|
# define BOOST_HAS_DECLTYPE
|
||||||
#define BOOST_NO_RAW_LITERALS
|
#endif
|
||||||
#define BOOST_NO_RVALUE_REFERENCES
|
#define BOOST_NO_DECLTYPE_N3276
|
||||||
#define BOOST_NO_SCOPED_ENUMS
|
#define BOOST_NO_DEFAULTED_FUNCTIONS
|
||||||
#define BOOST_NO_SFINAE_EXPR
|
#define BOOST_NO_DELETED_FUNCTIONS
|
||||||
#define BOOST_NO_STATIC_ASSERT
|
#define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS
|
||||||
#define BOOST_NO_TEMPLATE_ALIASES
|
#if ! __IBMCPP_EXTERN_TEMPLATE
|
||||||
#define BOOST_NO_UNICODE_LITERALS
|
# define BOOST_NO_EXTERN_TEMPLATE
|
||||||
#define BOOST_NO_VARIADIC_TEMPLATES
|
#endif
|
||||||
#define BOOST_NO_VARIADIC_MACROS
|
#if ! __IBMCPP_VARIADIC_TEMPLATES
|
||||||
|
// not enabled separately at this time
|
||||||
|
# define BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS
|
||||||
|
#endif
|
||||||
|
#define BOOST_NO_INITIALIZER_LISTS
|
||||||
|
#define BOOST_NO_LAMBDAS
|
||||||
|
#define BOOST_NO_NOEXCEPT
|
||||||
|
#define BOOST_NO_NULLPTR
|
||||||
|
#define BOOST_NO_RAW_LITERALS
|
||||||
|
#define BOOST_NO_RVALUE_REFERENCES
|
||||||
|
#define BOOST_NO_SCOPED_ENUMS
|
||||||
|
#define BOOST_NO_SFINAE_EXPR
|
||||||
|
#define BOOST_NO_UNIFIED_INITIALIZATION_SYNTAX
|
||||||
|
#if ! __IBMCPP_STATIC_ASSERT
|
||||||
|
# define BOOST_NO_STATIC_ASSERT
|
||||||
|
#endif
|
||||||
|
#define BOOST_NO_TEMPLATE_ALIASES
|
||||||
|
#define BOOST_NO_UNICODE_LITERALS
|
||||||
|
#if ! __IBMCPP_VARIADIC_TEMPLATES
|
||||||
|
# define BOOST_NO_VARIADIC_TEMPLATES
|
||||||
|
#endif
|
||||||
|
#if ! __C99_MACRO_WITH_VA_ARGS
|
||||||
|
# define BOOST_NO_VARIADIC_MACROS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,276 +1,287 @@
|
||||||
// (C) Copyright John Maddock 2001 - 2003.
|
// (C) Copyright John Maddock 2001 - 2003.
|
||||||
// (C) Copyright Darin Adler 2001 - 2002.
|
// (C) Copyright Darin Adler 2001 - 2002.
|
||||||
// (C) Copyright Peter Dimov 2001.
|
// (C) Copyright Peter Dimov 2001.
|
||||||
// (C) Copyright Aleksey Gurtovoy 2002.
|
// (C) Copyright Aleksey Gurtovoy 2002.
|
||||||
// (C) Copyright David Abrahams 2002 - 2003.
|
// (C) Copyright David Abrahams 2002 - 2003.
|
||||||
// (C) Copyright Beman Dawes 2002 - 2003.
|
// (C) Copyright Beman Dawes 2002 - 2003.
|
||||||
// Use, modification and distribution are subject to the
|
// Use, modification and distribution are subject to the
|
||||||
// Boost Software License, Version 1.0. (See accompanying file
|
// Boost Software License, Version 1.0. (See accompanying file
|
||||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
|
||||||
// See http://www.boost.org for most recent version.
|
// See http://www.boost.org for most recent version.
|
||||||
|
|
||||||
// Microsoft Visual C++ compiler setup:
|
// Microsoft Visual C++ compiler setup:
|
||||||
|
|
||||||
#define BOOST_MSVC _MSC_VER
|
#define BOOST_MSVC _MSC_VER
|
||||||
|
|
||||||
#if _MSC_FULL_VER > 100000000
|
#if _MSC_FULL_VER > 100000000
|
||||||
# define BOOST_MSVC_FULL_VER _MSC_FULL_VER
|
# define BOOST_MSVC_FULL_VER _MSC_FULL_VER
|
||||||
#else
|
#else
|
||||||
# define BOOST_MSVC_FULL_VER (_MSC_FULL_VER * 10)
|
# define BOOST_MSVC_FULL_VER (_MSC_FULL_VER * 10)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// turn off the warnings before we #include anything
|
// turn off the warnings before we #include anything
|
||||||
#pragma warning( disable : 4503 ) // warning: decorated name length exceeded
|
#pragma warning( disable : 4503 ) // warning: decorated name length exceeded
|
||||||
|
|
||||||
#if _MSC_VER < 1300 // 1200 == VC++ 6.0, 1200-1202 == eVC++4
|
#if _MSC_VER < 1300 // 1200 == VC++ 6.0, 1200-1202 == eVC++4
|
||||||
# pragma warning( disable : 4786 ) // ident trunc to '255' chars in debug info
|
# pragma warning( disable : 4786 ) // ident trunc to '255' chars in debug info
|
||||||
# define BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS
|
# define BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS
|
||||||
# define BOOST_NO_VOID_RETURNS
|
# define BOOST_NO_VOID_RETURNS
|
||||||
# define BOOST_NO_EXCEPTION_STD_NAMESPACE
|
# define BOOST_NO_EXCEPTION_STD_NAMESPACE
|
||||||
|
|
||||||
# if BOOST_MSVC == 1202
|
# if BOOST_MSVC == 1202
|
||||||
# define BOOST_NO_STD_TYPEINFO
|
# define BOOST_NO_STD_TYPEINFO
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
// disable min/max macro defines on vc6:
|
// disable min/max macro defines on vc6:
|
||||||
//
|
//
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if (_MSC_VER <= 1300) // 1300 == VC++ 7.0
|
/// Visual Studio has no fenv.h
|
||||||
|
#define BOOST_NO_FENV_H
|
||||||
# if !defined(_MSC_EXTENSIONS) && !defined(BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS) // VC7 bug with /Za
|
|
||||||
# define BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS
|
#if (_MSC_VER <= 1300) // 1300 == VC++ 7.0
|
||||||
# endif
|
|
||||||
|
# if !defined(_MSC_EXTENSIONS) && !defined(BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS) // VC7 bug with /Za
|
||||||
# define BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS
|
# define BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS
|
||||||
# define BOOST_NO_INCLASS_MEMBER_INITIALIZATION
|
# endif
|
||||||
# define BOOST_NO_PRIVATE_IN_AGGREGATE
|
|
||||||
# define BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP
|
# define BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS
|
||||||
# define BOOST_NO_INTEGRAL_INT64_T
|
# define BOOST_NO_INCLASS_MEMBER_INITIALIZATION
|
||||||
# define BOOST_NO_DEDUCED_TYPENAME
|
# define BOOST_NO_PRIVATE_IN_AGGREGATE
|
||||||
# define BOOST_NO_USING_DECLARATION_OVERLOADS_FROM_TYPENAME_BASE
|
# define BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP
|
||||||
|
# define BOOST_NO_INTEGRAL_INT64_T
|
||||||
// VC++ 6/7 has member templates but they have numerous problems including
|
# define BOOST_NO_DEDUCED_TYPENAME
|
||||||
// cases of silent failure, so for safety we define:
|
# define BOOST_NO_USING_DECLARATION_OVERLOADS_FROM_TYPENAME_BASE
|
||||||
# define BOOST_NO_MEMBER_TEMPLATES
|
|
||||||
// For VC++ experts wishing to attempt workarounds, we define:
|
// VC++ 6/7 has member templates but they have numerous problems including
|
||||||
# define BOOST_MSVC6_MEMBER_TEMPLATES
|
// cases of silent failure, so for safety we define:
|
||||||
|
# define BOOST_NO_MEMBER_TEMPLATES
|
||||||
# define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
|
// For VC++ experts wishing to attempt workarounds, we define:
|
||||||
# define BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
|
# define BOOST_MSVC6_MEMBER_TEMPLATES
|
||||||
# define BOOST_NO_CV_VOID_SPECIALIZATIONS
|
|
||||||
# define BOOST_NO_FUNCTION_TEMPLATE_ORDERING
|
# define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
|
||||||
# define BOOST_NO_USING_TEMPLATE
|
# define BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
|
||||||
# define BOOST_NO_SWPRINTF
|
# define BOOST_NO_CV_VOID_SPECIALIZATIONS
|
||||||
# define BOOST_NO_TEMPLATE_TEMPLATES
|
# define BOOST_NO_FUNCTION_TEMPLATE_ORDERING
|
||||||
# define BOOST_NO_SFINAE
|
# define BOOST_NO_USING_TEMPLATE
|
||||||
# define BOOST_NO_POINTER_TO_MEMBER_TEMPLATE_PARAMETERS
|
# define BOOST_NO_SWPRINTF
|
||||||
# define BOOST_NO_IS_ABSTRACT
|
# define BOOST_NO_TEMPLATE_TEMPLATES
|
||||||
# define BOOST_NO_FUNCTION_TYPE_SPECIALIZATIONS
|
# define BOOST_NO_SFINAE
|
||||||
// TODO: what version is meant here? Have there really been any fixes in cl 12.01 (as e.g. shipped with eVC4)?
|
# define BOOST_NO_POINTER_TO_MEMBER_TEMPLATE_PARAMETERS
|
||||||
# if (_MSC_VER > 1200)
|
# define BOOST_NO_IS_ABSTRACT
|
||||||
# define BOOST_NO_MEMBER_FUNCTION_SPECIALIZATIONS
|
# define BOOST_NO_FUNCTION_TYPE_SPECIALIZATIONS
|
||||||
# endif
|
// TODO: what version is meant here? Have there really been any fixes in cl 12.01 (as e.g. shipped with eVC4)?
|
||||||
|
# if (_MSC_VER > 1200)
|
||||||
#endif
|
# define BOOST_NO_MEMBER_FUNCTION_SPECIALIZATIONS
|
||||||
|
# endif
|
||||||
#if _MSC_VER < 1400
|
|
||||||
// although a conforming signature for swprint exists in VC7.1
|
#endif
|
||||||
// it appears not to actually work:
|
|
||||||
# define BOOST_NO_SWPRINTF
|
#if _MSC_VER < 1400
|
||||||
// Our extern template tests also fail for this compiler:
|
// although a conforming signature for swprint exists in VC7.1
|
||||||
# define BOOST_NO_EXTERN_TEMPLATE
|
// it appears not to actually work:
|
||||||
// Variadic macros do not exist for VC7.1 and lower
|
# define BOOST_NO_SWPRINTF
|
||||||
# define BOOST_NO_VARIADIC_MACROS
|
// Our extern template tests also fail for this compiler:
|
||||||
#endif
|
# define BOOST_NO_EXTERN_TEMPLATE
|
||||||
|
// Variadic macros do not exist for VC7.1 and lower
|
||||||
#if defined(UNDER_CE)
|
# define BOOST_NO_VARIADIC_MACROS
|
||||||
// Windows CE does not have a conforming signature for swprintf
|
#endif
|
||||||
# define BOOST_NO_SWPRINTF
|
|
||||||
#endif
|
#if defined(UNDER_CE)
|
||||||
|
// Windows CE does not have a conforming signature for swprintf
|
||||||
#if _MSC_VER <= 1400 // 1400 == VC++ 8.0
|
# define BOOST_NO_SWPRINTF
|
||||||
# define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
|
#endif
|
||||||
#endif
|
|
||||||
|
#if _MSC_VER <= 1400 // 1400 == VC++ 8.0
|
||||||
#if _MSC_VER <= 1600 // 1600 == VC++ 10.0
|
# define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
|
||||||
# define BOOST_NO_TWO_PHASE_NAME_LOOKUP
|
#endif
|
||||||
#endif
|
|
||||||
|
#if _MSC_VER == 1500 // 1500 == VC++ 9.0
|
||||||
#if _MSC_VER == 1500 // 1500 == VC++ 9.0
|
// A bug in VC9:
|
||||||
// A bug in VC9:
|
# define BOOST_NO_ADL_BARRIER
|
||||||
# define BOOST_NO_ADL_BARRIER
|
#endif
|
||||||
#endif
|
|
||||||
|
|
||||||
|
#if (_MSC_VER <= 1600)
|
||||||
#if (_MSC_VER <= 1600)
|
// MSVC (including the latest checked version) has not yet completely
|
||||||
// MSVC (including the latest checked version) has not yet completely
|
// implemented value-initialization, as is reported:
|
||||||
// implemented value-initialization, as is reported:
|
// "VC++ does not value-initialize members of derived classes without
|
||||||
// "VC++ does not value-initialize members of derived classes without
|
// user-declared constructor", reported in 2009 by Sylvester Hesp:
|
||||||
// user-declared constructor", reported in 2009 by Sylvester Hesp:
|
// https://connect.microsoft.com/VisualStudio/feedback/details/484295
|
||||||
// https://connect.microsoft.com/VisualStudio/feedback/details/484295
|
// "Presence of copy constructor breaks member class initialization",
|
||||||
// "Presence of copy constructor breaks member class initialization",
|
// reported in 2009 by Alex Vakulenko:
|
||||||
// reported in 2009 by Alex Vakulenko:
|
// https://connect.microsoft.com/VisualStudio/feedback/details/499606
|
||||||
// https://connect.microsoft.com/VisualStudio/feedback/details/499606
|
// "Value-initialization in new-expression", reported in 2005 by
|
||||||
// "Value-initialization in new-expression", reported in 2005 by
|
// Pavel Kuznetsov (MetaCommunications Engineering):
|
||||||
// Pavel Kuznetsov (MetaCommunications Engineering):
|
// https://connect.microsoft.com/VisualStudio/feedback/details/100744
|
||||||
// https://connect.microsoft.com/VisualStudio/feedback/details/100744
|
// See also: http://www.boost.org/libs/utility/value_init.htm#compiler_issues
|
||||||
// See also: http://www.boost.org/libs/utility/value_init.htm#compiler_issues
|
// (Niels Dekker, LKEB, May 2010)
|
||||||
// (Niels Dekker, LKEB, May 2010)
|
#define BOOST_NO_COMPLETE_VALUE_INITIALIZATION
|
||||||
#define BOOST_NO_COMPLETE_VALUE_INITIALIZATION
|
#endif
|
||||||
#endif
|
|
||||||
|
#if _MSC_VER <= 1500 || !defined(BOOST_STRICT_CONFIG) // 1500 == VC++ 9.0
|
||||||
#if _MSC_VER <= 1500 || !defined(BOOST_STRICT_CONFIG) // 1500 == VC++ 9.0
|
# define BOOST_NO_INITIALIZER_LISTS
|
||||||
# define BOOST_NO_INITIALIZER_LISTS
|
#endif
|
||||||
#endif
|
|
||||||
|
#ifndef _NATIVE_WCHAR_T_DEFINED
|
||||||
#ifndef _NATIVE_WCHAR_T_DEFINED
|
# define BOOST_NO_INTRINSIC_WCHAR_T
|
||||||
# define BOOST_NO_INTRINSIC_WCHAR_T
|
#endif
|
||||||
#endif
|
|
||||||
|
#if defined(_WIN32_WCE) || defined(UNDER_CE)
|
||||||
#if defined(_WIN32_WCE) || defined(UNDER_CE)
|
# define BOOST_NO_SWPRINTF
|
||||||
# define BOOST_NO_THREADEX
|
#endif
|
||||||
# define BOOST_NO_GETSYSTEMTIMEASFILETIME
|
|
||||||
# define BOOST_NO_SWPRINTF
|
// we have ThreadEx or GetSystemTimeAsFileTime unless we're running WindowsCE
|
||||||
#endif
|
#if !defined(_WIN32_WCE) && !defined(UNDER_CE)
|
||||||
|
# define BOOST_HAS_THREADEX
|
||||||
//
|
# define BOOST_HAS_GETSYSTEMTIMEASFILETIME
|
||||||
// check for exception handling support:
|
#endif
|
||||||
#if !defined(_CPPUNWIND) && !defined(BOOST_NO_EXCEPTIONS)
|
|
||||||
# define BOOST_NO_EXCEPTIONS
|
//
|
||||||
#endif
|
// check for exception handling support:
|
||||||
|
#if !defined(_CPPUNWIND) && !defined(BOOST_NO_EXCEPTIONS)
|
||||||
//
|
# define BOOST_NO_EXCEPTIONS
|
||||||
// __int64 support:
|
#endif
|
||||||
//
|
|
||||||
#if (_MSC_VER >= 1200)
|
//
|
||||||
# define BOOST_HAS_MS_INT64
|
// __int64 support:
|
||||||
#endif
|
//
|
||||||
#if (_MSC_VER >= 1310) && (defined(_MSC_EXTENSIONS) || (_MSC_VER >= 1400))
|
#if (_MSC_VER >= 1200)
|
||||||
# define BOOST_HAS_LONG_LONG
|
# define BOOST_HAS_MS_INT64
|
||||||
#else
|
#endif
|
||||||
# define BOOST_NO_LONG_LONG
|
#if (_MSC_VER >= 1310) && (defined(_MSC_EXTENSIONS) || (_MSC_VER >= 1400))
|
||||||
#endif
|
# define BOOST_HAS_LONG_LONG
|
||||||
#if (_MSC_VER >= 1400) && !defined(_DEBUG)
|
#else
|
||||||
# define BOOST_HAS_NRVO
|
# define BOOST_NO_LONG_LONG
|
||||||
#endif
|
#endif
|
||||||
//
|
#if (_MSC_VER >= 1400) && !defined(_DEBUG)
|
||||||
// disable Win32 API's if compiler extentions are
|
# define BOOST_HAS_NRVO
|
||||||
// turned off:
|
#endif
|
||||||
//
|
//
|
||||||
#if !defined(_MSC_EXTENSIONS) && !defined(BOOST_DISABLE_WIN32)
|
// disable Win32 API's if compiler extentions are
|
||||||
# define BOOST_DISABLE_WIN32
|
// turned off:
|
||||||
#endif
|
//
|
||||||
#if !defined(_CPPRTTI) && !defined(BOOST_NO_RTTI)
|
#if !defined(_MSC_EXTENSIONS) && !defined(BOOST_DISABLE_WIN32)
|
||||||
# define BOOST_NO_RTTI
|
# define BOOST_DISABLE_WIN32
|
||||||
#endif
|
#endif
|
||||||
|
#if !defined(_CPPRTTI) && !defined(BOOST_NO_RTTI)
|
||||||
//
|
# define BOOST_NO_RTTI
|
||||||
// C++0x features
|
#endif
|
||||||
//
|
|
||||||
// See above for BOOST_NO_LONG_LONG
|
//
|
||||||
|
// C++0x features
|
||||||
// C++ features supported by VC++ 10 (aka 2010)
|
//
|
||||||
//
|
// See above for BOOST_NO_LONG_LONG
|
||||||
#if _MSC_VER < 1600
|
|
||||||
#define BOOST_NO_AUTO_DECLARATIONS
|
// C++ features supported by VC++ 10 (aka 2010)
|
||||||
#define BOOST_NO_AUTO_MULTIDECLARATIONS
|
//
|
||||||
#define BOOST_NO_LAMBDAS
|
#if _MSC_VER < 1600
|
||||||
#define BOOST_NO_RVALUE_REFERENCES
|
#define BOOST_NO_AUTO_DECLARATIONS
|
||||||
#define BOOST_NO_STATIC_ASSERT
|
#define BOOST_NO_AUTO_MULTIDECLARATIONS
|
||||||
#define BOOST_NO_NULLPTR
|
#define BOOST_NO_LAMBDAS
|
||||||
#endif // _MSC_VER < 1600
|
#define BOOST_NO_RVALUE_REFERENCES
|
||||||
#if _MSC_VER >= 1600
|
#define BOOST_NO_STATIC_ASSERT
|
||||||
#define BOOST_HAS_STDINT_H
|
#define BOOST_NO_NULLPTR
|
||||||
#endif
|
#define BOOST_NO_DECLTYPE
|
||||||
|
#endif // _MSC_VER < 1600
|
||||||
// C++0x features not supported by any versions
|
|
||||||
#define BOOST_NO_CHAR16_T
|
#if _MSC_VER >= 1600
|
||||||
#define BOOST_NO_CHAR32_T
|
#define BOOST_HAS_STDINT_H
|
||||||
#define BOOST_NO_CONCEPTS
|
#endif
|
||||||
#define BOOST_NO_CONSTEXPR
|
|
||||||
#define BOOST_NO_DEFAULTED_FUNCTIONS
|
// C++0x features not supported by any versions
|
||||||
#define BOOST_NO_DECLTYPE
|
#define BOOST_NO_CHAR16_T
|
||||||
#define BOOST_NO_DELETED_FUNCTIONS
|
#define BOOST_NO_CHAR32_T
|
||||||
#define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS
|
#define BOOST_NO_CONSTEXPR
|
||||||
#define BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS
|
#define BOOST_NO_DECLTYPE_N3276
|
||||||
#define BOOST_NO_INITIALIZER_LISTS
|
#define BOOST_NO_DEFAULTED_FUNCTIONS
|
||||||
#define BOOST_NO_RAW_LITERALS
|
#define BOOST_NO_DELETED_FUNCTIONS
|
||||||
#define BOOST_NO_SCOPED_ENUMS
|
#define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS
|
||||||
#define BOOST_NO_SFINAE_EXPR
|
#define BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS
|
||||||
#define BOOST_NO_TEMPLATE_ALIASES
|
#define BOOST_NO_INITIALIZER_LISTS
|
||||||
#define BOOST_NO_UNICODE_LITERALS
|
#define BOOST_NO_NOEXCEPT
|
||||||
#define BOOST_NO_VARIADIC_TEMPLATES
|
#define BOOST_NO_RAW_LITERALS
|
||||||
//
|
#define BOOST_NO_SCOPED_ENUMS
|
||||||
// prefix and suffix headers:
|
#define BOOST_NO_TEMPLATE_ALIASES
|
||||||
//
|
#define BOOST_NO_UNICODE_LITERALS
|
||||||
#ifndef BOOST_ABI_PREFIX
|
#define BOOST_NO_VARIADIC_TEMPLATES
|
||||||
# define BOOST_ABI_PREFIX "boost/config/abi/msvc_prefix.hpp"
|
#define BOOST_NO_SFINAE_EXPR
|
||||||
#endif
|
#define BOOST_NO_TWO_PHASE_NAME_LOOKUP
|
||||||
#ifndef BOOST_ABI_SUFFIX
|
#define BOOST_NO_UNIFIED_INITIALIZATION_SYNTAX
|
||||||
# define BOOST_ABI_SUFFIX "boost/config/abi/msvc_suffix.hpp"
|
//
|
||||||
#endif
|
// prefix and suffix headers:
|
||||||
|
//
|
||||||
// TODO:
|
#ifndef BOOST_ABI_PREFIX
|
||||||
// these things are mostly bogus. 1200 means version 12.0 of the compiler. The
|
# define BOOST_ABI_PREFIX "boost/config/abi/msvc_prefix.hpp"
|
||||||
// artificial versions assigned to them only refer to the versions of some IDE
|
#endif
|
||||||
// these compilers have been shipped with, and even that is not all of it. Some
|
#ifndef BOOST_ABI_SUFFIX
|
||||||
// were shipped with freely downloadable SDKs, others as crosscompilers in eVC.
|
# define BOOST_ABI_SUFFIX "boost/config/abi/msvc_suffix.hpp"
|
||||||
// IOW, you can't use these 'versions' in any sensible way. Sorry.
|
#endif
|
||||||
# if defined(UNDER_CE)
|
|
||||||
# if _MSC_VER < 1200
|
// TODO:
|
||||||
// Note: these are so far off, they are not really supported
|
// these things are mostly bogus. 1200 means version 12.0 of the compiler. The
|
||||||
# elif _MSC_VER < 1300 // eVC++ 4 comes with 1200-1202
|
// artificial versions assigned to them only refer to the versions of some IDE
|
||||||
# define BOOST_COMPILER_VERSION evc4.0
|
// these compilers have been shipped with, and even that is not all of it. Some
|
||||||
# elif _MSC_VER == 1400
|
// were shipped with freely downloadable SDKs, others as crosscompilers in eVC.
|
||||||
# define BOOST_COMPILER_VERSION evc8
|
// IOW, you can't use these 'versions' in any sensible way. Sorry.
|
||||||
# elif _MSC_VER == 1500
|
# if defined(UNDER_CE)
|
||||||
# define BOOST_COMPILER_VERSION evc9
|
# if _MSC_VER < 1200
|
||||||
# elif _MSC_VER == 1600
|
// Note: these are so far off, they are not really supported
|
||||||
# define BOOST_COMPILER_VERSION evc10
|
# elif _MSC_VER < 1300 // eVC++ 4 comes with 1200-1202
|
||||||
# else
|
# define BOOST_COMPILER_VERSION evc4.0
|
||||||
# if defined(BOOST_ASSERT_CONFIG)
|
# elif _MSC_VER == 1400
|
||||||
# error "Unknown EVC++ compiler version - please run the configure tests and report the results"
|
# define BOOST_COMPILER_VERSION evc8
|
||||||
# else
|
# elif _MSC_VER == 1500
|
||||||
# pragma message("Unknown EVC++ compiler version - please run the configure tests and report the results")
|
# define BOOST_COMPILER_VERSION evc9
|
||||||
# endif
|
# elif _MSC_VER == 1600
|
||||||
# endif
|
# define BOOST_COMPILER_VERSION evc10
|
||||||
# else
|
# elif _MSC_VER == 1700
|
||||||
# if _MSC_VER < 1200
|
# define BOOST_COMPILER_VERSION evc11
|
||||||
// Note: these are so far off, they are not really supported
|
# else
|
||||||
# define BOOST_COMPILER_VERSION 5.0
|
# if defined(BOOST_ASSERT_CONFIG)
|
||||||
# elif _MSC_VER < 1300
|
# error "Unknown EVC++ compiler version - please run the configure tests and report the results"
|
||||||
# define BOOST_COMPILER_VERSION 6.0
|
# else
|
||||||
# elif _MSC_VER == 1300
|
# pragma message("Unknown EVC++ compiler version - please run the configure tests and report the results")
|
||||||
# define BOOST_COMPILER_VERSION 7.0
|
# endif
|
||||||
# elif _MSC_VER == 1310
|
# endif
|
||||||
# define BOOST_COMPILER_VERSION 7.1
|
# else
|
||||||
# elif _MSC_VER == 1400
|
# if _MSC_VER < 1200
|
||||||
# define BOOST_COMPILER_VERSION 8.0
|
// Note: these are so far off, they are not really supported
|
||||||
# elif _MSC_VER == 1500
|
# define BOOST_COMPILER_VERSION 5.0
|
||||||
# define BOOST_COMPILER_VERSION 9.0
|
# elif _MSC_VER < 1300
|
||||||
# elif _MSC_VER == 1600
|
# define BOOST_COMPILER_VERSION 6.0
|
||||||
# define BOOST_COMPILER_VERSION 10.0
|
# elif _MSC_VER == 1300
|
||||||
# else
|
# define BOOST_COMPILER_VERSION 7.0
|
||||||
# define BOOST_COMPILER_VERSION _MSC_VER
|
# elif _MSC_VER == 1310
|
||||||
# endif
|
# define BOOST_COMPILER_VERSION 7.1
|
||||||
# endif
|
# elif _MSC_VER == 1400
|
||||||
|
# define BOOST_COMPILER_VERSION 8.0
|
||||||
#define BOOST_COMPILER "Microsoft Visual C++ version " BOOST_STRINGIZE(BOOST_COMPILER_VERSION)
|
# elif _MSC_VER == 1500
|
||||||
|
# define BOOST_COMPILER_VERSION 9.0
|
||||||
//
|
# elif _MSC_VER == 1600
|
||||||
// versions check:
|
# define BOOST_COMPILER_VERSION 10.0
|
||||||
// we don't support Visual C++ prior to version 6:
|
# elif _MSC_VER == 1700
|
||||||
#if _MSC_VER < 1200
|
# define BOOST_COMPILER_VERSION 11.0
|
||||||
#error "Compiler not supported or configured - please reconfigure"
|
# else
|
||||||
#endif
|
# define BOOST_COMPILER_VERSION _MSC_VER
|
||||||
//
|
# endif
|
||||||
// last known and checked version is 1600 (VC10, aka 2010):
|
# endif
|
||||||
#if (_MSC_VER > 1600)
|
|
||||||
# if defined(BOOST_ASSERT_CONFIG)
|
#define BOOST_COMPILER "Microsoft Visual C++ version " BOOST_STRINGIZE(BOOST_COMPILER_VERSION)
|
||||||
# error "Unknown compiler version - please run the configure tests and report the results"
|
|
||||||
# else
|
//
|
||||||
# pragma message("Unknown compiler version - please run the configure tests and report the results")
|
// versions check:
|
||||||
# endif
|
// we don't support Visual C++ prior to version 6:
|
||||||
#endif
|
#if _MSC_VER < 1200
|
||||||
|
#error "Compiler not supported or configured - please reconfigure"
|
||||||
|
#endif
|
||||||
|
//
|
||||||
|
// last known and checked version is 1700 (VC11, aka 2011):
|
||||||
|
#if (_MSC_VER > 1700)
|
||||||
|
# if defined(BOOST_ASSERT_CONFIG)
|
||||||
|
# error "Unknown compiler version - please run the configure tests and report the results"
|
||||||
|
# else
|
||||||
|
# pragma message("Unknown compiler version - please run the configure tests and report the results")
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
|
|
@ -1,28 +1,28 @@
|
||||||
// (C) Copyright John Maddock 2008.
|
// (C) Copyright John Maddock 2008.
|
||||||
// Use, modification and distribution are subject to the
|
// Use, modification and distribution are subject to the
|
||||||
// Boost Software License, Version 1.0. (See accompanying file
|
// Boost Software License, Version 1.0. (See accompanying file
|
||||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||||
//
|
//
|
||||||
// The aim of this header is just to include <cmath> but to do
|
// The aim of this header is just to include <cmath> but to do
|
||||||
// so in a way that does not result in recursive inclusion of
|
// so in a way that does not result in recursive inclusion of
|
||||||
// the Boost TR1 components if boost/tr1/tr1/cmath is in the
|
// the Boost TR1 components if boost/tr1/tr1/cmath is in the
|
||||||
// include search path. We have to do this to avoid circular
|
// include search path. We have to do this to avoid circular
|
||||||
// dependencies:
|
// dependencies:
|
||||||
//
|
//
|
||||||
|
|
||||||
#ifndef BOOST_CONFIG_CMATH
|
#ifndef BOOST_CONFIG_CMATH
|
||||||
# define BOOST_CONFIG_CMATH
|
# define BOOST_CONFIG_CMATH
|
||||||
|
|
||||||
# ifndef BOOST_TR1_NO_RECURSION
|
# ifndef BOOST_TR1_NO_RECURSION
|
||||||
# define BOOST_TR1_NO_RECURSION
|
# define BOOST_TR1_NO_RECURSION
|
||||||
# define BOOST_CONFIG_NO_CMATH_RECURSION
|
# define BOOST_CONFIG_NO_CMATH_RECURSION
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
# include <cmath>
|
# include <cmath>
|
||||||
|
|
||||||
# ifdef BOOST_CONFIG_NO_CMATH_RECURSION
|
# ifdef BOOST_CONFIG_NO_CMATH_RECURSION
|
||||||
# undef BOOST_TR1_NO_RECURSION
|
# undef BOOST_TR1_NO_RECURSION
|
||||||
# undef BOOST_CONFIG_NO_CMATH_RECURSION
|
# undef BOOST_CONFIG_NO_CMATH_RECURSION
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -1,28 +1,28 @@
|
||||||
// (C) Copyright John Maddock 2005.
|
// (C) Copyright John Maddock 2005.
|
||||||
// Use, modification and distribution are subject to the
|
// Use, modification and distribution are subject to the
|
||||||
// Boost Software License, Version 1.0. (See accompanying file
|
// Boost Software License, Version 1.0. (See accompanying file
|
||||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||||
//
|
//
|
||||||
// The aim of this header is just to include <complex> but to do
|
// The aim of this header is just to include <complex> but to do
|
||||||
// so in a way that does not result in recursive inclusion of
|
// so in a way that does not result in recursive inclusion of
|
||||||
// the Boost TR1 components if boost/tr1/tr1/complex is in the
|
// the Boost TR1 components if boost/tr1/tr1/complex is in the
|
||||||
// include search path. We have to do this to avoid circular
|
// include search path. We have to do this to avoid circular
|
||||||
// dependencies:
|
// dependencies:
|
||||||
//
|
//
|
||||||
|
|
||||||
#ifndef BOOST_CONFIG_COMPLEX
|
#ifndef BOOST_CONFIG_COMPLEX
|
||||||
# define BOOST_CONFIG_COMPLEX
|
# define BOOST_CONFIG_COMPLEX
|
||||||
|
|
||||||
# ifndef BOOST_TR1_NO_RECURSION
|
# ifndef BOOST_TR1_NO_RECURSION
|
||||||
# define BOOST_TR1_NO_RECURSION
|
# define BOOST_TR1_NO_RECURSION
|
||||||
# define BOOST_CONFIG_NO_COMPLEX_RECURSION
|
# define BOOST_CONFIG_NO_COMPLEX_RECURSION
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
# include <complex>
|
# include <complex>
|
||||||
|
|
||||||
# ifdef BOOST_CONFIG_NO_COMPLEX_RECURSION
|
# ifdef BOOST_CONFIG_NO_COMPLEX_RECURSION
|
||||||
# undef BOOST_TR1_NO_RECURSION
|
# undef BOOST_TR1_NO_RECURSION
|
||||||
# undef BOOST_CONFIG_NO_COMPLEX_RECURSION
|
# undef BOOST_CONFIG_NO_COMPLEX_RECURSION
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -1,28 +1,28 @@
|
||||||
// (C) Copyright John Maddock 2005.
|
// (C) Copyright John Maddock 2005.
|
||||||
// Use, modification and distribution are subject to the
|
// Use, modification and distribution are subject to the
|
||||||
// Boost Software License, Version 1.0. (See accompanying file
|
// Boost Software License, Version 1.0. (See accompanying file
|
||||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||||
//
|
//
|
||||||
// The aim of this header is just to include <functional> but to do
|
// The aim of this header is just to include <functional> but to do
|
||||||
// so in a way that does not result in recursive inclusion of
|
// so in a way that does not result in recursive inclusion of
|
||||||
// the Boost TR1 components if boost/tr1/tr1/functional is in the
|
// the Boost TR1 components if boost/tr1/tr1/functional is in the
|
||||||
// include search path. We have to do this to avoid circular
|
// include search path. We have to do this to avoid circular
|
||||||
// dependencies:
|
// dependencies:
|
||||||
//
|
//
|
||||||
|
|
||||||
#ifndef BOOST_CONFIG_FUNCTIONAL
|
#ifndef BOOST_CONFIG_FUNCTIONAL
|
||||||
# define BOOST_CONFIG_FUNCTIONAL
|
# define BOOST_CONFIG_FUNCTIONAL
|
||||||
|
|
||||||
# ifndef BOOST_TR1_NO_RECURSION
|
# ifndef BOOST_TR1_NO_RECURSION
|
||||||
# define BOOST_TR1_NO_RECURSION
|
# define BOOST_TR1_NO_RECURSION
|
||||||
# define BOOST_CONFIG_NO_FUNCTIONAL_RECURSION
|
# define BOOST_CONFIG_NO_FUNCTIONAL_RECURSION
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
# include <functional>
|
# include <functional>
|
||||||
|
|
||||||
# ifdef BOOST_CONFIG_NO_FUNCTIONAL_RECURSION
|
# ifdef BOOST_CONFIG_NO_FUNCTIONAL_RECURSION
|
||||||
# undef BOOST_TR1_NO_RECURSION
|
# undef BOOST_TR1_NO_RECURSION
|
||||||
# undef BOOST_CONFIG_NO_FUNCTIONAL_RECURSION
|
# undef BOOST_CONFIG_NO_FUNCTIONAL_RECURSION
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -1,28 +1,28 @@
|
||||||
// (C) Copyright John Maddock 2005.
|
// (C) Copyright John Maddock 2005.
|
||||||
// Use, modification and distribution are subject to the
|
// Use, modification and distribution are subject to the
|
||||||
// Boost Software License, Version 1.0. (See accompanying file
|
// Boost Software License, Version 1.0. (See accompanying file
|
||||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||||
//
|
//
|
||||||
// The aim of this header is just to include <memory> but to do
|
// The aim of this header is just to include <memory> but to do
|
||||||
// so in a way that does not result in recursive inclusion of
|
// so in a way that does not result in recursive inclusion of
|
||||||
// the Boost TR1 components if boost/tr1/tr1/memory is in the
|
// the Boost TR1 components if boost/tr1/tr1/memory is in the
|
||||||
// include search path. We have to do this to avoid circular
|
// include search path. We have to do this to avoid circular
|
||||||
// dependencies:
|
// dependencies:
|
||||||
//
|
//
|
||||||
|
|
||||||
#ifndef BOOST_CONFIG_MEMORY
|
#ifndef BOOST_CONFIG_MEMORY
|
||||||
# define BOOST_CONFIG_MEMORY
|
# define BOOST_CONFIG_MEMORY
|
||||||
|
|
||||||
# ifndef BOOST_TR1_NO_RECURSION
|
# ifndef BOOST_TR1_NO_RECURSION
|
||||||
# define BOOST_TR1_NO_RECURSION
|
# define BOOST_TR1_NO_RECURSION
|
||||||
# define BOOST_CONFIG_NO_MEMORY_RECURSION
|
# define BOOST_CONFIG_NO_MEMORY_RECURSION
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
# include <memory>
|
# include <memory>
|
||||||
|
|
||||||
# ifdef BOOST_CONFIG_NO_MEMORY_RECURSION
|
# ifdef BOOST_CONFIG_NO_MEMORY_RECURSION
|
||||||
# undef BOOST_TR1_NO_RECURSION
|
# undef BOOST_TR1_NO_RECURSION
|
||||||
# undef BOOST_CONFIG_NO_MEMORY_RECURSION
|
# undef BOOST_CONFIG_NO_MEMORY_RECURSION
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -1,28 +1,28 @@
|
||||||
// (C) Copyright John Maddock 2005.
|
// (C) Copyright John Maddock 2005.
|
||||||
// Use, modification and distribution are subject to the
|
// Use, modification and distribution are subject to the
|
||||||
// Boost Software License, Version 1.0. (See accompanying file
|
// Boost Software License, Version 1.0. (See accompanying file
|
||||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||||
//
|
//
|
||||||
// The aim of this header is just to include <utility> but to do
|
// The aim of this header is just to include <utility> but to do
|
||||||
// so in a way that does not result in recursive inclusion of
|
// so in a way that does not result in recursive inclusion of
|
||||||
// the Boost TR1 components if boost/tr1/tr1/utility is in the
|
// the Boost TR1 components if boost/tr1/tr1/utility is in the
|
||||||
// include search path. We have to do this to avoid circular
|
// include search path. We have to do this to avoid circular
|
||||||
// dependencies:
|
// dependencies:
|
||||||
//
|
//
|
||||||
|
|
||||||
#ifndef BOOST_CONFIG_UTILITY
|
#ifndef BOOST_CONFIG_UTILITY
|
||||||
# define BOOST_CONFIG_UTILITY
|
# define BOOST_CONFIG_UTILITY
|
||||||
|
|
||||||
# ifndef BOOST_TR1_NO_RECURSION
|
# ifndef BOOST_TR1_NO_RECURSION
|
||||||
# define BOOST_TR1_NO_RECURSION
|
# define BOOST_TR1_NO_RECURSION
|
||||||
# define BOOST_CONFIG_NO_UTILITY_RECURSION
|
# define BOOST_CONFIG_NO_UTILITY_RECURSION
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
# include <utility>
|
# include <utility>
|
||||||
|
|
||||||
# ifdef BOOST_CONFIG_NO_UTILITY_RECURSION
|
# ifdef BOOST_CONFIG_NO_UTILITY_RECURSION
|
||||||
# undef BOOST_TR1_NO_RECURSION
|
# undef BOOST_TR1_NO_RECURSION
|
||||||
# undef BOOST_CONFIG_NO_UTILITY_RECURSION
|
# undef BOOST_CONFIG_NO_UTILITY_RECURSION
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -1,33 +1,33 @@
|
||||||
// (C) Copyright John Maddock 2001 - 2002.
|
// (C) Copyright John Maddock 2001 - 2002.
|
||||||
// Use, modification and distribution are subject to the
|
// Use, modification and distribution are subject to the
|
||||||
// Boost Software License, Version 1.0. (See accompanying file
|
// Boost Software License, Version 1.0. (See accompanying file
|
||||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
|
||||||
// See http://www.boost.org for most recent version.
|
// See http://www.boost.org for most recent version.
|
||||||
|
|
||||||
// IBM/Aix specific config options:
|
// IBM/Aix specific config options:
|
||||||
|
|
||||||
#define BOOST_PLATFORM "IBM Aix"
|
#define BOOST_PLATFORM "IBM Aix"
|
||||||
|
|
||||||
#define BOOST_HAS_UNISTD_H
|
#define BOOST_HAS_UNISTD_H
|
||||||
#define BOOST_HAS_NL_TYPES_H
|
#define BOOST_HAS_NL_TYPES_H
|
||||||
#define BOOST_HAS_NANOSLEEP
|
#define BOOST_HAS_NANOSLEEP
|
||||||
#define BOOST_HAS_CLOCK_GETTIME
|
#define BOOST_HAS_CLOCK_GETTIME
|
||||||
|
|
||||||
// This needs support in "boost/cstdint.hpp" exactly like FreeBSD.
|
// This needs support in "boost/cstdint.hpp" exactly like FreeBSD.
|
||||||
// This platform has header named <inttypes.h> which includes all
|
// This platform has header named <inttypes.h> which includes all
|
||||||
// the things needed.
|
// the things needed.
|
||||||
#define BOOST_HAS_STDINT_H
|
#define BOOST_HAS_STDINT_H
|
||||||
|
|
||||||
// Threading API's:
|
// Threading API's:
|
||||||
#define BOOST_HAS_PTHREADS
|
#define BOOST_HAS_PTHREADS
|
||||||
#define BOOST_HAS_PTHREAD_DELAY_NP
|
#define BOOST_HAS_PTHREAD_DELAY_NP
|
||||||
#define BOOST_HAS_SCHED_YIELD
|
#define BOOST_HAS_SCHED_YIELD
|
||||||
//#define BOOST_HAS_PTHREAD_YIELD
|
//#define BOOST_HAS_PTHREAD_YIELD
|
||||||
|
|
||||||
// boilerplate code:
|
// boilerplate code:
|
||||||
#include <boost/config/posix_features.hpp>
|
#include <boost/config/posix_features.hpp>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,15 +1,15 @@
|
||||||
// (C) Copyright John Maddock 2002.
|
// (C) Copyright John Maddock 2002.
|
||||||
// Use, modification and distribution are subject to the
|
// Use, modification and distribution are subject to the
|
||||||
// Boost Software License, Version 1.0. (See accompanying file
|
// Boost Software License, Version 1.0. (See accompanying file
|
||||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
|
||||||
// See http://www.boost.org for most recent version.
|
// See http://www.boost.org for most recent version.
|
||||||
|
|
||||||
#define BOOST_PLATFORM "AmigaOS"
|
#define BOOST_PLATFORM "AmigaOS"
|
||||||
|
|
||||||
#define BOOST_DISABLE_THREADS
|
#define BOOST_DISABLE_THREADS
|
||||||
#define BOOST_NO_CWCHAR
|
#define BOOST_NO_CWCHAR
|
||||||
#define BOOST_NO_STD_WSTRING
|
#define BOOST_NO_STD_WSTRING
|
||||||
#define BOOST_NO_INTRINSIC_WCHAR_T
|
#define BOOST_NO_INTRINSIC_WCHAR_T
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,26 +1,26 @@
|
||||||
// (C) Copyright John Maddock 2001.
|
// (C) Copyright John Maddock 2001.
|
||||||
// Use, modification and distribution are subject to the
|
// Use, modification and distribution are subject to the
|
||||||
// Boost Software License, Version 1.0. (See accompanying file
|
// Boost Software License, Version 1.0. (See accompanying file
|
||||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
|
||||||
// See http://www.boost.org for most recent version.
|
// See http://www.boost.org for most recent version.
|
||||||
|
|
||||||
// BeOS specific config options:
|
// BeOS specific config options:
|
||||||
|
|
||||||
#define BOOST_PLATFORM "BeOS"
|
#define BOOST_PLATFORM "BeOS"
|
||||||
|
|
||||||
#define BOOST_NO_CWCHAR
|
#define BOOST_NO_CWCHAR
|
||||||
#define BOOST_NO_CWCTYPE
|
#define BOOST_NO_CWCTYPE
|
||||||
#define BOOST_HAS_UNISTD_H
|
#define BOOST_HAS_UNISTD_H
|
||||||
|
|
||||||
#define BOOST_HAS_BETHREADS
|
#define BOOST_HAS_BETHREADS
|
||||||
|
|
||||||
#ifndef BOOST_DISABLE_THREADS
|
#ifndef BOOST_DISABLE_THREADS
|
||||||
# define BOOST_HAS_THREADS
|
# define BOOST_HAS_THREADS
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// boilerplate code:
|
// boilerplate code:
|
||||||
#include <boost/config/posix_features.hpp>
|
#include <boost/config/posix_features.hpp>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,86 +1,86 @@
|
||||||
// (C) Copyright John Maddock 2001 - 2003.
|
// (C) Copyright John Maddock 2001 - 2003.
|
||||||
// (C) Copyright Darin Adler 2001.
|
// (C) Copyright Darin Adler 2001.
|
||||||
// (C) Copyright Douglas Gregor 2002.
|
// (C) Copyright Douglas Gregor 2002.
|
||||||
// Use, modification and distribution are subject to the
|
// Use, modification and distribution are subject to the
|
||||||
// Boost Software License, Version 1.0. (See accompanying file
|
// Boost Software License, Version 1.0. (See accompanying file
|
||||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
|
||||||
// See http://www.boost.org for most recent version.
|
// See http://www.boost.org for most recent version.
|
||||||
|
|
||||||
// generic BSD config options:
|
// generic BSD config options:
|
||||||
|
|
||||||
#if !defined(__FreeBSD__) && !defined(__NetBSD__) && !defined(__OpenBSD__) && !defined(__DragonFly__)
|
#if !defined(__FreeBSD__) && !defined(__NetBSD__) && !defined(__OpenBSD__) && !defined(__DragonFly__)
|
||||||
#error "This platform is not BSD"
|
#error "This platform is not BSD"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef __FreeBSD__
|
#ifdef __FreeBSD__
|
||||||
#define BOOST_PLATFORM "FreeBSD " BOOST_STRINGIZE(__FreeBSD__)
|
#define BOOST_PLATFORM "FreeBSD " BOOST_STRINGIZE(__FreeBSD__)
|
||||||
#elif defined(__NetBSD__)
|
#elif defined(__NetBSD__)
|
||||||
#define BOOST_PLATFORM "NetBSD " BOOST_STRINGIZE(__NetBSD__)
|
#define BOOST_PLATFORM "NetBSD " BOOST_STRINGIZE(__NetBSD__)
|
||||||
#elif defined(__OpenBSD__)
|
#elif defined(__OpenBSD__)
|
||||||
#define BOOST_PLATFORM "OpenBSD " BOOST_STRINGIZE(__OpenBSD__)
|
#define BOOST_PLATFORM "OpenBSD " BOOST_STRINGIZE(__OpenBSD__)
|
||||||
#elif defined(__DragonFly__)
|
#elif defined(__DragonFly__)
|
||||||
#define BOOST_PLATFORM "DragonFly " BOOST_STRINGIZE(__DragonFly__)
|
#define BOOST_PLATFORM "DragonFly " BOOST_STRINGIZE(__DragonFly__)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//
|
//
|
||||||
// is this the correct version check?
|
// is this the correct version check?
|
||||||
// FreeBSD has <nl_types.h> but does not
|
// FreeBSD has <nl_types.h> but does not
|
||||||
// advertise the fact in <unistd.h>:
|
// advertise the fact in <unistd.h>:
|
||||||
//
|
//
|
||||||
#if (defined(__FreeBSD__) && (__FreeBSD__ >= 3)) || defined(__DragonFly__)
|
#if (defined(__FreeBSD__) && (__FreeBSD__ >= 3)) || defined(__DragonFly__)
|
||||||
# define BOOST_HAS_NL_TYPES_H
|
# define BOOST_HAS_NL_TYPES_H
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//
|
//
|
||||||
// FreeBSD 3.x has pthreads support, but defines _POSIX_THREADS in <pthread.h>
|
// FreeBSD 3.x has pthreads support, but defines _POSIX_THREADS in <pthread.h>
|
||||||
// and not in <unistd.h>
|
// and not in <unistd.h>
|
||||||
//
|
//
|
||||||
#if (defined(__FreeBSD__) && (__FreeBSD__ <= 3))\
|
#if (defined(__FreeBSD__) && (__FreeBSD__ <= 3))\
|
||||||
|| defined(__OpenBSD__) || defined(__DragonFly__)
|
|| defined(__OpenBSD__) || defined(__DragonFly__)
|
||||||
# define BOOST_HAS_PTHREADS
|
# define BOOST_HAS_PTHREADS
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//
|
//
|
||||||
// No wide character support in the BSD header files:
|
// No wide character support in the BSD header files:
|
||||||
//
|
//
|
||||||
#if defined(__NetBSD__)
|
#if defined(__NetBSD__)
|
||||||
#define __NetBSD_GCC__ (__GNUC__ * 1000000 \
|
#define __NetBSD_GCC__ (__GNUC__ * 1000000 \
|
||||||
+ __GNUC_MINOR__ * 1000 \
|
+ __GNUC_MINOR__ * 1000 \
|
||||||
+ __GNUC_PATCHLEVEL__)
|
+ __GNUC_PATCHLEVEL__)
|
||||||
// XXX - the following is required until c++config.h
|
// XXX - the following is required until c++config.h
|
||||||
// defines _GLIBCXX_HAVE_SWPRINTF and friends
|
// defines _GLIBCXX_HAVE_SWPRINTF and friends
|
||||||
// or the preprocessor conditionals are removed
|
// or the preprocessor conditionals are removed
|
||||||
// from the cwchar header.
|
// from the cwchar header.
|
||||||
#define _GLIBCXX_HAVE_SWPRINTF 1
|
#define _GLIBCXX_HAVE_SWPRINTF 1
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if !((defined(__FreeBSD__) && (__FreeBSD__ >= 5)) \
|
#if !((defined(__FreeBSD__) && (__FreeBSD__ >= 5)) \
|
||||||
|| (defined(__NetBSD_GCC__) && (__NetBSD_GCC__ >= 2095003)) || defined(__DragonFly__))
|
|| (defined(__NetBSD_GCC__) && (__NetBSD_GCC__ >= 2095003)) || defined(__DragonFly__))
|
||||||
# define BOOST_NO_CWCHAR
|
# define BOOST_NO_CWCHAR
|
||||||
#endif
|
#endif
|
||||||
//
|
//
|
||||||
// The BSD <ctype.h> has macros only, no functions:
|
// The BSD <ctype.h> has macros only, no functions:
|
||||||
//
|
//
|
||||||
#if !defined(__OpenBSD__) || defined(__DragonFly__)
|
#if !defined(__OpenBSD__) || defined(__DragonFly__)
|
||||||
# define BOOST_NO_CTYPE_FUNCTIONS
|
# define BOOST_NO_CTYPE_FUNCTIONS
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//
|
//
|
||||||
// thread API's not auto detected:
|
// thread API's not auto detected:
|
||||||
//
|
//
|
||||||
#define BOOST_HAS_SCHED_YIELD
|
#define BOOST_HAS_SCHED_YIELD
|
||||||
#define BOOST_HAS_NANOSLEEP
|
#define BOOST_HAS_NANOSLEEP
|
||||||
#define BOOST_HAS_GETTIMEOFDAY
|
#define BOOST_HAS_GETTIMEOFDAY
|
||||||
#define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
|
#define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
|
||||||
#define BOOST_HAS_SIGACTION
|
#define BOOST_HAS_SIGACTION
|
||||||
|
|
||||||
// boilerplate code:
|
// boilerplate code:
|
||||||
#define BOOST_HAS_UNISTD_H
|
#define BOOST_HAS_UNISTD_H
|
||||||
#include <boost/config/posix_features.hpp>
|
#include <boost/config/posix_features.hpp>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,18 @@
|
||||||
|
// (C) Copyright John Maddock 2011.
|
||||||
|
// Use, modification and distribution are subject to the
|
||||||
|
// Boost Software License, Version 1.0. (See accompanying file
|
||||||
|
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
|
||||||
|
|
||||||
|
// See http://www.boost.org for most recent version.
|
||||||
|
|
||||||
|
// SGI Irix specific config options:
|
||||||
|
|
||||||
|
#define BOOST_PLATFORM "Cray"
|
||||||
|
|
||||||
|
// boilerplate code:
|
||||||
|
#define BOOST_HAS_UNISTD_H
|
||||||
|
#include <boost/config/posix_features.hpp>
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,55 +1,58 @@
|
||||||
// (C) Copyright John Maddock 2001 - 2003.
|
// (C) Copyright John Maddock 2001 - 2003.
|
||||||
// Use, modification and distribution are subject to the
|
// Use, modification and distribution are subject to the
|
||||||
// Boost Software License, Version 1.0. (See accompanying file
|
// Boost Software License, Version 1.0. (See accompanying file
|
||||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
|
||||||
// See http://www.boost.org for most recent version.
|
// See http://www.boost.org for most recent version.
|
||||||
|
|
||||||
// cygwin specific config options:
|
// cygwin specific config options:
|
||||||
|
|
||||||
#define BOOST_PLATFORM "Cygwin"
|
#define BOOST_PLATFORM "Cygwin"
|
||||||
#define BOOST_HAS_DIRENT_H
|
#define BOOST_HAS_DIRENT_H
|
||||||
#define BOOST_HAS_LOG1P
|
#define BOOST_HAS_LOG1P
|
||||||
#define BOOST_HAS_EXPM1
|
#define BOOST_HAS_EXPM1
|
||||||
|
|
||||||
//
|
//
|
||||||
// Threading API:
|
// Threading API:
|
||||||
// See if we have POSIX threads, if we do use them, otherwise
|
// See if we have POSIX threads, if we do use them, otherwise
|
||||||
// revert to native Win threads.
|
// revert to native Win threads.
|
||||||
#define BOOST_HAS_UNISTD_H
|
#define BOOST_HAS_UNISTD_H
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
#if defined(_POSIX_THREADS) && (_POSIX_THREADS+0 >= 0) && !defined(BOOST_HAS_WINTHREADS)
|
#if defined(_POSIX_THREADS) && (_POSIX_THREADS+0 >= 0) && !defined(BOOST_HAS_WINTHREADS)
|
||||||
# define BOOST_HAS_PTHREADS
|
# define BOOST_HAS_PTHREADS
|
||||||
# define BOOST_HAS_SCHED_YIELD
|
# define BOOST_HAS_SCHED_YIELD
|
||||||
# define BOOST_HAS_GETTIMEOFDAY
|
# define BOOST_HAS_GETTIMEOFDAY
|
||||||
# define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
|
# define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
|
||||||
# define BOOST_HAS_SIGACTION
|
# define BOOST_HAS_SIGACTION
|
||||||
#else
|
#else
|
||||||
# if !defined(BOOST_HAS_WINTHREADS)
|
# if !defined(BOOST_HAS_WINTHREADS)
|
||||||
# define BOOST_HAS_WINTHREADS
|
# define BOOST_HAS_WINTHREADS
|
||||||
# endif
|
# endif
|
||||||
# define BOOST_HAS_FTIME
|
# define BOOST_HAS_FTIME
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//
|
//
|
||||||
// find out if we have a stdint.h, there should be a better way to do this:
|
// find out if we have a stdint.h, there should be a better way to do this:
|
||||||
//
|
//
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
#ifdef _STDINT_H
|
#ifdef _STDINT_H
|
||||||
#define BOOST_HAS_STDINT_H
|
#define BOOST_HAS_STDINT_H
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// boilerplate code:
|
/// Cygwin has no fenv.h
|
||||||
#include <boost/config/posix_features.hpp>
|
#define BOOST_NO_FENV_H
|
||||||
|
|
||||||
//
|
// boilerplate code:
|
||||||
// Cygwin lies about XSI conformance, there is no nl_types.h:
|
#include <boost/config/posix_features.hpp>
|
||||||
//
|
|
||||||
#ifdef BOOST_HAS_NL_TYPES_H
|
//
|
||||||
# undef BOOST_HAS_NL_TYPES_H
|
// Cygwin lies about XSI conformance, there is no nl_types.h:
|
||||||
#endif
|
//
|
||||||
|
#ifdef BOOST_HAS_NL_TYPES_H
|
||||||
|
# undef BOOST_HAS_NL_TYPES_H
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,87 +1,87 @@
|
||||||
// (C) Copyright John Maddock 2001 - 2003.
|
// (C) Copyright John Maddock 2001 - 2003.
|
||||||
// (C) Copyright Jens Maurer 2001 - 2003.
|
// (C) Copyright Jens Maurer 2001 - 2003.
|
||||||
// (C) Copyright David Abrahams 2002.
|
// (C) Copyright David Abrahams 2002.
|
||||||
// (C) Copyright Toon Knapen 2003.
|
// (C) Copyright Toon Knapen 2003.
|
||||||
// (C) Copyright Boris Gubenko 2006 - 2007.
|
// (C) Copyright Boris Gubenko 2006 - 2007.
|
||||||
// Use, modification and distribution are subject to the
|
// Use, modification and distribution are subject to the
|
||||||
// Boost Software License, Version 1.0. (See accompanying file
|
// Boost Software License, Version 1.0. (See accompanying file
|
||||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
|
||||||
// See http://www.boost.org for most recent version.
|
// See http://www.boost.org for most recent version.
|
||||||
|
|
||||||
// hpux specific config options:
|
// hpux specific config options:
|
||||||
|
|
||||||
#define BOOST_PLATFORM "HP-UX"
|
#define BOOST_PLATFORM "HP-UX"
|
||||||
|
|
||||||
// In principle, HP-UX has a nice <stdint.h> under the name <inttypes.h>
|
// In principle, HP-UX has a nice <stdint.h> under the name <inttypes.h>
|
||||||
// However, it has the following problem:
|
// However, it has the following problem:
|
||||||
// Use of UINT32_C(0) results in "0u l" for the preprocessed source
|
// Use of UINT32_C(0) results in "0u l" for the preprocessed source
|
||||||
// (verifyable with gcc 2.95.3)
|
// (verifyable with gcc 2.95.3)
|
||||||
#if (defined(__GNUC__) && (__GNUC__ >= 3)) || defined(__HP_aCC)
|
#if (defined(__GNUC__) && (__GNUC__ >= 3)) || defined(__HP_aCC)
|
||||||
# define BOOST_HAS_STDINT_H
|
# define BOOST_HAS_STDINT_H
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if !(defined(__HP_aCC) || !defined(_INCLUDE__STDC_A1_SOURCE))
|
#if !(defined(__HP_aCC) || !defined(_INCLUDE__STDC_A1_SOURCE))
|
||||||
# define BOOST_NO_SWPRINTF
|
# define BOOST_NO_SWPRINTF
|
||||||
#endif
|
#endif
|
||||||
#if defined(__HP_aCC) && !defined(_INCLUDE__STDC_A1_SOURCE)
|
#if defined(__HP_aCC) && !defined(_INCLUDE__STDC_A1_SOURCE)
|
||||||
# define BOOST_NO_CWCTYPE
|
# define BOOST_NO_CWCTYPE
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(__GNUC__)
|
#if defined(__GNUC__)
|
||||||
# if (__GNUC__ < 3) || ((__GNUC__ == 3) && (__GNUC_MINOR__ < 3))
|
# if (__GNUC__ < 3) || ((__GNUC__ == 3) && (__GNUC_MINOR__ < 3))
|
||||||
// GNU C on HP-UX does not support threads (checked up to gcc 3.3)
|
// GNU C on HP-UX does not support threads (checked up to gcc 3.3)
|
||||||
# define BOOST_DISABLE_THREADS
|
# define BOOST_DISABLE_THREADS
|
||||||
# elif !defined(BOOST_DISABLE_THREADS)
|
# elif !defined(BOOST_DISABLE_THREADS)
|
||||||
// threads supported from gcc-3.3 onwards:
|
// threads supported from gcc-3.3 onwards:
|
||||||
# define BOOST_HAS_THREADS
|
# define BOOST_HAS_THREADS
|
||||||
# define BOOST_HAS_PTHREADS
|
# define BOOST_HAS_PTHREADS
|
||||||
# endif
|
# endif
|
||||||
#elif defined(__HP_aCC) && !defined(BOOST_DISABLE_THREADS)
|
#elif defined(__HP_aCC) && !defined(BOOST_DISABLE_THREADS)
|
||||||
# define BOOST_HAS_PTHREADS
|
# define BOOST_HAS_PTHREADS
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// boilerplate code:
|
// boilerplate code:
|
||||||
#define BOOST_HAS_UNISTD_H
|
#define BOOST_HAS_UNISTD_H
|
||||||
#include <boost/config/posix_features.hpp>
|
#include <boost/config/posix_features.hpp>
|
||||||
|
|
||||||
// the following are always available:
|
// the following are always available:
|
||||||
#ifndef BOOST_HAS_GETTIMEOFDAY
|
#ifndef BOOST_HAS_GETTIMEOFDAY
|
||||||
# define BOOST_HAS_GETTIMEOFDAY
|
# define BOOST_HAS_GETTIMEOFDAY
|
||||||
#endif
|
#endif
|
||||||
#ifndef BOOST_HAS_SCHED_YIELD
|
#ifndef BOOST_HAS_SCHED_YIELD
|
||||||
# define BOOST_HAS_SCHED_YIELD
|
# define BOOST_HAS_SCHED_YIELD
|
||||||
#endif
|
#endif
|
||||||
#ifndef BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
|
#ifndef BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
|
||||||
# define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
|
# define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
|
||||||
#endif
|
#endif
|
||||||
#ifndef BOOST_HAS_NL_TYPES_H
|
#ifndef BOOST_HAS_NL_TYPES_H
|
||||||
# define BOOST_HAS_NL_TYPES_H
|
# define BOOST_HAS_NL_TYPES_H
|
||||||
#endif
|
#endif
|
||||||
#ifndef BOOST_HAS_NANOSLEEP
|
#ifndef BOOST_HAS_NANOSLEEP
|
||||||
# define BOOST_HAS_NANOSLEEP
|
# define BOOST_HAS_NANOSLEEP
|
||||||
#endif
|
#endif
|
||||||
#ifndef BOOST_HAS_GETTIMEOFDAY
|
#ifndef BOOST_HAS_GETTIMEOFDAY
|
||||||
# define BOOST_HAS_GETTIMEOFDAY
|
# define BOOST_HAS_GETTIMEOFDAY
|
||||||
#endif
|
#endif
|
||||||
#ifndef BOOST_HAS_DIRENT_H
|
#ifndef BOOST_HAS_DIRENT_H
|
||||||
# define BOOST_HAS_DIRENT_H
|
# define BOOST_HAS_DIRENT_H
|
||||||
#endif
|
#endif
|
||||||
#ifndef BOOST_HAS_CLOCK_GETTIME
|
#ifndef BOOST_HAS_CLOCK_GETTIME
|
||||||
# define BOOST_HAS_CLOCK_GETTIME
|
# define BOOST_HAS_CLOCK_GETTIME
|
||||||
#endif
|
#endif
|
||||||
#ifndef BOOST_HAS_SIGACTION
|
#ifndef BOOST_HAS_SIGACTION
|
||||||
# define BOOST_HAS_SIGACTION
|
# define BOOST_HAS_SIGACTION
|
||||||
#endif
|
#endif
|
||||||
#ifndef BOOST_HAS_NRVO
|
#ifndef BOOST_HAS_NRVO
|
||||||
# ifndef __parisc
|
# ifndef __parisc
|
||||||
# define BOOST_HAS_NRVO
|
# define BOOST_HAS_NRVO
|
||||||
# endif
|
# endif
|
||||||
#endif
|
#endif
|
||||||
#ifndef BOOST_HAS_LOG1P
|
#ifndef BOOST_HAS_LOG1P
|
||||||
# define BOOST_HAS_LOG1P
|
# define BOOST_HAS_LOG1P
|
||||||
#endif
|
#endif
|
||||||
#ifndef BOOST_HAS_EXPM1
|
#ifndef BOOST_HAS_EXPM1
|
||||||
# define BOOST_HAS_EXPM1
|
# define BOOST_HAS_EXPM1
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -1,31 +1,31 @@
|
||||||
// (C) Copyright John Maddock 2001 - 2003.
|
// (C) Copyright John Maddock 2001 - 2003.
|
||||||
// (C) Copyright Jens Maurer 2003.
|
// (C) Copyright Jens Maurer 2003.
|
||||||
// Use, modification and distribution are subject to the
|
// Use, modification and distribution are subject to the
|
||||||
// Boost Software License, Version 1.0. (See accompanying file
|
// Boost Software License, Version 1.0. (See accompanying file
|
||||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
|
||||||
|
|
||||||
// See http://www.boost.org for most recent version.
|
// See http://www.boost.org for most recent version.
|
||||||
|
|
||||||
// SGI Irix specific config options:
|
// SGI Irix specific config options:
|
||||||
|
|
||||||
#define BOOST_PLATFORM "SGI Irix"
|
#define BOOST_PLATFORM "SGI Irix"
|
||||||
|
|
||||||
#define BOOST_NO_SWPRINTF
|
#define BOOST_NO_SWPRINTF
|
||||||
//
|
//
|
||||||
// these are not auto detected by POSIX feature tests:
|
// these are not auto detected by POSIX feature tests:
|
||||||
//
|
//
|
||||||
#define BOOST_HAS_GETTIMEOFDAY
|
#define BOOST_HAS_GETTIMEOFDAY
|
||||||
#define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
|
#define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
|
||||||
|
|
||||||
#ifdef __GNUC__
|
#ifdef __GNUC__
|
||||||
// GNU C on IRIX does not support threads (checked up to gcc 3.3)
|
// GNU C on IRIX does not support threads (checked up to gcc 3.3)
|
||||||
# define BOOST_DISABLE_THREADS
|
# define BOOST_DISABLE_THREADS
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// boilerplate code:
|
// boilerplate code:
|
||||||
#define BOOST_HAS_UNISTD_H
|
#define BOOST_HAS_UNISTD_H
|
||||||
#include <boost/config/posix_features.hpp>
|
#include <boost/config/posix_features.hpp>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,98 +1,103 @@
|
||||||
// (C) Copyright John Maddock 2001 - 2003.
|
// (C) Copyright John Maddock 2001 - 2003.
|
||||||
// (C) Copyright Jens Maurer 2001 - 2003.
|
// (C) Copyright Jens Maurer 2001 - 2003.
|
||||||
// Use, modification and distribution are subject to the
|
// Use, modification and distribution are subject to the
|
||||||
// Boost Software License, Version 1.0. (See accompanying file
|
// Boost Software License, Version 1.0. (See accompanying file
|
||||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
|
||||||
// See http://www.boost.org for most recent version.
|
// See http://www.boost.org for most recent version.
|
||||||
|
|
||||||
// linux specific config options:
|
// linux specific config options:
|
||||||
|
|
||||||
#define BOOST_PLATFORM "linux"
|
#define BOOST_PLATFORM "linux"
|
||||||
|
|
||||||
// make sure we have __GLIBC_PREREQ if available at all
|
// make sure we have __GLIBC_PREREQ if available at all
|
||||||
#include <cstdlib>
|
#ifdef __cplusplus
|
||||||
|
#include <cstdlib>
|
||||||
//
|
#else
|
||||||
// <stdint.h> added to glibc 2.1.1
|
#include <stdlib.h>
|
||||||
// We can only test for 2.1 though:
|
#endif
|
||||||
//
|
|
||||||
#if defined(__GLIBC__) && ((__GLIBC__ > 2) || ((__GLIBC__ == 2) && (__GLIBC_MINOR__ >= 1)))
|
//
|
||||||
// <stdint.h> defines int64_t unconditionally, but <sys/types.h> defines
|
// <stdint.h> added to glibc 2.1.1
|
||||||
// int64_t only if __GNUC__. Thus, assume a fully usable <stdint.h>
|
// We can only test for 2.1 though:
|
||||||
// only when using GCC.
|
//
|
||||||
# if defined __GNUC__
|
#if defined(__GLIBC__) && ((__GLIBC__ > 2) || ((__GLIBC__ == 2) && (__GLIBC_MINOR__ >= 1)))
|
||||||
# define BOOST_HAS_STDINT_H
|
// <stdint.h> defines int64_t unconditionally, but <sys/types.h> defines
|
||||||
# endif
|
// int64_t only if __GNUC__. Thus, assume a fully usable <stdint.h>
|
||||||
#endif
|
// only when using GCC.
|
||||||
|
# if defined __GNUC__
|
||||||
#if defined(__LIBCOMO__)
|
# define BOOST_HAS_STDINT_H
|
||||||
//
|
# endif
|
||||||
// como on linux doesn't have std:: c functions:
|
#endif
|
||||||
// NOTE: versions of libcomo prior to beta28 have octal version numbering,
|
|
||||||
// e.g. version 25 is 21 (dec)
|
#if defined(__LIBCOMO__)
|
||||||
//
|
//
|
||||||
# if __LIBCOMO_VERSION__ <= 20
|
// como on linux doesn't have std:: c functions:
|
||||||
# define BOOST_NO_STDC_NAMESPACE
|
// NOTE: versions of libcomo prior to beta28 have octal version numbering,
|
||||||
# endif
|
// e.g. version 25 is 21 (dec)
|
||||||
|
//
|
||||||
# if __LIBCOMO_VERSION__ <= 21
|
# if __LIBCOMO_VERSION__ <= 20
|
||||||
# define BOOST_NO_SWPRINTF
|
# define BOOST_NO_STDC_NAMESPACE
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
#endif
|
# if __LIBCOMO_VERSION__ <= 21
|
||||||
|
# define BOOST_NO_SWPRINTF
|
||||||
//
|
# endif
|
||||||
// If glibc is past version 2 then we definitely have
|
|
||||||
// gettimeofday, earlier versions may or may not have it:
|
#endif
|
||||||
//
|
|
||||||
#if defined(__GLIBC__) && (__GLIBC__ >= 2)
|
//
|
||||||
# define BOOST_HAS_GETTIMEOFDAY
|
// If glibc is past version 2 then we definitely have
|
||||||
#endif
|
// gettimeofday, earlier versions may or may not have it:
|
||||||
|
//
|
||||||
#ifdef __USE_POSIX199309
|
#if defined(__GLIBC__) && (__GLIBC__ >= 2)
|
||||||
# define BOOST_HAS_NANOSLEEP
|
# define BOOST_HAS_GETTIMEOFDAY
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(__GLIBC__) && defined(__GLIBC_PREREQ)
|
#ifdef __USE_POSIX199309
|
||||||
// __GLIBC_PREREQ is available since 2.1.2
|
# define BOOST_HAS_NANOSLEEP
|
||||||
|
#endif
|
||||||
// swprintf is available since glibc 2.2.0
|
|
||||||
# if !__GLIBC_PREREQ(2,2) || (!defined(__USE_ISOC99) && !defined(__USE_UNIX98))
|
#if defined(__GLIBC__) && defined(__GLIBC_PREREQ)
|
||||||
# define BOOST_NO_SWPRINTF
|
// __GLIBC_PREREQ is available since 2.1.2
|
||||||
# endif
|
|
||||||
#else
|
// swprintf is available since glibc 2.2.0
|
||||||
# define BOOST_NO_SWPRINTF
|
# if !__GLIBC_PREREQ(2,2) || (!defined(__USE_ISOC99) && !defined(__USE_UNIX98))
|
||||||
#endif
|
# define BOOST_NO_SWPRINTF
|
||||||
|
# endif
|
||||||
// boilerplate code:
|
#else
|
||||||
#define BOOST_HAS_UNISTD_H
|
# define BOOST_NO_SWPRINTF
|
||||||
#include <boost/config/posix_features.hpp>
|
#endif
|
||||||
|
|
||||||
#ifndef __GNUC__
|
// boilerplate code:
|
||||||
//
|
#define BOOST_HAS_UNISTD_H
|
||||||
// if the compiler is not gcc we still need to be able to parse
|
#include <boost/config/posix_features.hpp>
|
||||||
// the GNU system headers, some of which (mainly <stdint.h>)
|
#define BOOST_HAS_PTHREAD_YIELD
|
||||||
// use GNU specific extensions:
|
|
||||||
//
|
#ifndef __GNUC__
|
||||||
# ifndef __extension__
|
//
|
||||||
# define __extension__
|
// if the compiler is not gcc we still need to be able to parse
|
||||||
# endif
|
// the GNU system headers, some of which (mainly <stdint.h>)
|
||||||
# ifndef __const__
|
// use GNU specific extensions:
|
||||||
# define __const__ const
|
//
|
||||||
# endif
|
# ifndef __extension__
|
||||||
# ifndef __volatile__
|
# define __extension__
|
||||||
# define __volatile__ volatile
|
# endif
|
||||||
# endif
|
# ifndef __const__
|
||||||
# ifndef __signed__
|
# define __const__ const
|
||||||
# define __signed__ signed
|
# endif
|
||||||
# endif
|
# ifndef __volatile__
|
||||||
# ifndef __typeof__
|
# define __volatile__ volatile
|
||||||
# define __typeof__ typeof
|
# endif
|
||||||
# endif
|
# ifndef __signed__
|
||||||
# ifndef __inline__
|
# define __signed__ signed
|
||||||
# define __inline__ inline
|
# endif
|
||||||
# endif
|
# ifndef __typeof__
|
||||||
#endif
|
# define __typeof__ typeof
|
||||||
|
# endif
|
||||||
|
# ifndef __inline__
|
||||||
|
# define __inline__ inline
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,86 +1,87 @@
|
||||||
// (C) Copyright John Maddock 2001 - 2003.
|
// (C) Copyright John Maddock 2001 - 2003.
|
||||||
// (C) Copyright Darin Adler 2001 - 2002.
|
// (C) Copyright Darin Adler 2001 - 2002.
|
||||||
// (C) Copyright Bill Kempf 2002.
|
// (C) Copyright Bill Kempf 2002.
|
||||||
// Use, modification and distribution are subject to the
|
// Use, modification and distribution are subject to the
|
||||||
// Boost Software License, Version 1.0. (See accompanying file
|
// Boost Software License, Version 1.0. (See accompanying file
|
||||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
|
||||||
// See http://www.boost.org for most recent version.
|
// See http://www.boost.org for most recent version.
|
||||||
|
|
||||||
// Mac OS specific config options:
|
// Mac OS specific config options:
|
||||||
|
|
||||||
#define BOOST_PLATFORM "Mac OS"
|
#define BOOST_PLATFORM "Mac OS"
|
||||||
|
|
||||||
#if __MACH__ && !defined(_MSL_USING_MSL_C)
|
#if __MACH__ && !defined(_MSL_USING_MSL_C)
|
||||||
|
|
||||||
// Using the Mac OS X system BSD-style C library.
|
// Using the Mac OS X system BSD-style C library.
|
||||||
|
|
||||||
# ifndef BOOST_HAS_UNISTD_H
|
# ifndef BOOST_HAS_UNISTD_H
|
||||||
# define BOOST_HAS_UNISTD_H
|
# define BOOST_HAS_UNISTD_H
|
||||||
# endif
|
# endif
|
||||||
//
|
//
|
||||||
// Begin by including our boilerplate code for POSIX
|
// Begin by including our boilerplate code for POSIX
|
||||||
// feature detection, this is safe even when using
|
// feature detection, this is safe even when using
|
||||||
// the MSL as Metrowerks supply their own <unistd.h>
|
// the MSL as Metrowerks supply their own <unistd.h>
|
||||||
// to replace the platform-native BSD one. G++ users
|
// to replace the platform-native BSD one. G++ users
|
||||||
// should also always be able to do this on MaxOS X.
|
// should also always be able to do this on MaxOS X.
|
||||||
//
|
//
|
||||||
# include <boost/config/posix_features.hpp>
|
# include <boost/config/posix_features.hpp>
|
||||||
# ifndef BOOST_HAS_STDINT_H
|
# ifndef BOOST_HAS_STDINT_H
|
||||||
# define BOOST_HAS_STDINT_H
|
# define BOOST_HAS_STDINT_H
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
//
|
//
|
||||||
// BSD runtime has pthreads, sigaction, sched_yield and gettimeofday,
|
// BSD runtime has pthreads, sigaction, sched_yield and gettimeofday,
|
||||||
// of these only pthreads are advertised in <unistd.h>, so set the
|
// of these only pthreads are advertised in <unistd.h>, so set the
|
||||||
// other options explicitly:
|
// other options explicitly:
|
||||||
//
|
//
|
||||||
# define BOOST_HAS_SCHED_YIELD
|
# define BOOST_HAS_SCHED_YIELD
|
||||||
# define BOOST_HAS_GETTIMEOFDAY
|
# define BOOST_HAS_GETTIMEOFDAY
|
||||||
# define BOOST_HAS_SIGACTION
|
# define BOOST_HAS_SIGACTION
|
||||||
|
|
||||||
# if (__GNUC__ < 3) && !defined( __APPLE_CC__)
|
# if (__GNUC__ < 3) && !defined( __APPLE_CC__)
|
||||||
|
|
||||||
// GCC strange "ignore std" mode works better if you pretend everything
|
// GCC strange "ignore std" mode works better if you pretend everything
|
||||||
// is in the std namespace, for the most part.
|
// is in the std namespace, for the most part.
|
||||||
|
|
||||||
# define BOOST_NO_STDC_NAMESPACE
|
# define BOOST_NO_STDC_NAMESPACE
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
# if (__GNUC__ == 4)
|
# if (__GNUC__ == 4)
|
||||||
|
|
||||||
// Both gcc and intel require these.
|
// Both gcc and intel require these.
|
||||||
# define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
|
# define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
|
||||||
# define BOOST_HAS_NANOSLEEP
|
# define BOOST_HAS_NANOSLEEP
|
||||||
|
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
#else
|
#else
|
||||||
|
|
||||||
// Using the MSL C library.
|
// Using the MSL C library.
|
||||||
|
|
||||||
// We will eventually support threads in non-Carbon builds, but we do
|
// We will eventually support threads in non-Carbon builds, but we do
|
||||||
// not support this yet.
|
// not support this yet.
|
||||||
# if ( defined(TARGET_API_MAC_CARBON) && TARGET_API_MAC_CARBON ) || ( defined(TARGET_CARBON) && TARGET_CARBON )
|
# if ( defined(TARGET_API_MAC_CARBON) && TARGET_API_MAC_CARBON ) || ( defined(TARGET_CARBON) && TARGET_CARBON )
|
||||||
|
|
||||||
# if !defined(BOOST_HAS_PTHREADS)
|
# if !defined(BOOST_HAS_PTHREADS)
|
||||||
# define BOOST_HAS_MPTASKS
|
// MPTasks support is deprecated/removed from Boost:
|
||||||
# elif ( __dest_os == __mac_os_x )
|
//# define BOOST_HAS_MPTASKS
|
||||||
// We are doing a Carbon/Mach-O/MSL build which has pthreads, but only the
|
# elif ( __dest_os == __mac_os_x )
|
||||||
// gettimeofday and no posix.
|
// We are doing a Carbon/Mach-O/MSL build which has pthreads, but only the
|
||||||
# define BOOST_HAS_GETTIMEOFDAY
|
// gettimeofday and no posix.
|
||||||
# endif
|
# define BOOST_HAS_GETTIMEOFDAY
|
||||||
|
# endif
|
||||||
// The MP task implementation of Boost Threads aims to replace MP-unsafe
|
|
||||||
// parts of the MSL, so we turn on threads unconditionally.
|
#ifdef BOOST_HAS_PTHREADS
|
||||||
# define BOOST_HAS_THREADS
|
# define BOOST_HAS_THREADS
|
||||||
|
#endif
|
||||||
// The remote call manager depends on this.
|
|
||||||
# define BOOST_BIND_ENABLE_PASCAL
|
// The remote call manager depends on this.
|
||||||
|
# define BOOST_BIND_ENABLE_PASCAL
|
||||||
# endif
|
|
||||||
|
# endif
|
||||||
#endif
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,31 +1,31 @@
|
||||||
// (C) Copyright Jim Douglas 2005.
|
// (C) Copyright Jim Douglas 2005.
|
||||||
// Use, modification and distribution are subject to the
|
// Use, modification and distribution are subject to the
|
||||||
// Boost Software License, Version 1.0. (See accompanying file
|
// Boost Software License, Version 1.0. (See accompanying file
|
||||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
|
||||||
// See http://www.boost.org for most recent version.
|
// See http://www.boost.org for most recent version.
|
||||||
|
|
||||||
// QNX specific config options:
|
// QNX specific config options:
|
||||||
|
|
||||||
#define BOOST_PLATFORM "QNX"
|
#define BOOST_PLATFORM "QNX"
|
||||||
|
|
||||||
#define BOOST_HAS_UNISTD_H
|
#define BOOST_HAS_UNISTD_H
|
||||||
#include <boost/config/posix_features.hpp>
|
#include <boost/config/posix_features.hpp>
|
||||||
|
|
||||||
// QNX claims XOpen version 5 compatibility, but doesn't have an nl_types.h
|
// QNX claims XOpen version 5 compatibility, but doesn't have an nl_types.h
|
||||||
// or log1p and expm1:
|
// or log1p and expm1:
|
||||||
#undef BOOST_HAS_NL_TYPES_H
|
#undef BOOST_HAS_NL_TYPES_H
|
||||||
#undef BOOST_HAS_LOG1P
|
#undef BOOST_HAS_LOG1P
|
||||||
#undef BOOST_HAS_EXPM1
|
#undef BOOST_HAS_EXPM1
|
||||||
|
|
||||||
#define BOOST_HAS_PTHREADS
|
#define BOOST_HAS_PTHREADS
|
||||||
#define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
|
#define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
|
||||||
|
|
||||||
#define BOOST_HAS_GETTIMEOFDAY
|
#define BOOST_HAS_GETTIMEOFDAY
|
||||||
#define BOOST_HAS_CLOCK_GETTIME
|
#define BOOST_HAS_CLOCK_GETTIME
|
||||||
#define BOOST_HAS_NANOSLEEP
|
#define BOOST_HAS_NANOSLEEP
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,28 +1,28 @@
|
||||||
// (C) Copyright John Maddock 2001 - 2003.
|
// (C) Copyright John Maddock 2001 - 2003.
|
||||||
// (C) Copyright Jens Maurer 2003.
|
// (C) Copyright Jens Maurer 2003.
|
||||||
// Use, modification and distribution are subject to the
|
// Use, modification and distribution are subject to the
|
||||||
// Boost Software License, Version 1.0. (See accompanying file
|
// Boost Software License, Version 1.0. (See accompanying file
|
||||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
|
||||||
// See http://www.boost.org for most recent version.
|
// See http://www.boost.org for most recent version.
|
||||||
|
|
||||||
// sun specific config options:
|
// sun specific config options:
|
||||||
|
|
||||||
#define BOOST_PLATFORM "Sun Solaris"
|
#define BOOST_PLATFORM "Sun Solaris"
|
||||||
|
|
||||||
#define BOOST_HAS_GETTIMEOFDAY
|
#define BOOST_HAS_GETTIMEOFDAY
|
||||||
|
|
||||||
// boilerplate code:
|
// boilerplate code:
|
||||||
#define BOOST_HAS_UNISTD_H
|
#define BOOST_HAS_UNISTD_H
|
||||||
#include <boost/config/posix_features.hpp>
|
#include <boost/config/posix_features.hpp>
|
||||||
|
|
||||||
//
|
//
|
||||||
// pthreads don't actually work with gcc unless _PTHREADS is defined:
|
// pthreads don't actually work with gcc unless _PTHREADS is defined:
|
||||||
//
|
//
|
||||||
#if defined(__GNUC__) && defined(_POSIX_THREADS) && !defined(_PTHREADS)
|
#if defined(__GNUC__) && defined(_POSIX_THREADS) && !defined(_PTHREADS)
|
||||||
# undef BOOST_HAS_PTHREADS
|
# undef BOOST_HAS_PTHREADS
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,94 +1,97 @@
|
||||||
// (C) Copyright Yuriy Krasnoschek 2009.
|
// (C) Copyright Yuriy Krasnoschek 2009.
|
||||||
// (C) Copyright John Maddock 2001 - 2003.
|
// (C) Copyright John Maddock 2001 - 2003.
|
||||||
// (C) Copyright Jens Maurer 2001 - 2003.
|
// (C) Copyright Jens Maurer 2001 - 2003.
|
||||||
// Use, modification and distribution are subject to the
|
// Use, modification and distribution are subject to the
|
||||||
// Boost Software License, Version 1.0. (See accompanying file
|
// Boost Software License, Version 1.0. (See accompanying file
|
||||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
|
||||||
// See http://www.boost.org for most recent version.
|
// See http://www.boost.org for most recent version.
|
||||||
|
|
||||||
// symbian specific config options:
|
// symbian specific config options:
|
||||||
|
|
||||||
|
|
||||||
#define BOOST_PLATFORM "Symbian"
|
#define BOOST_PLATFORM "Symbian"
|
||||||
#define BOOST_SYMBIAN 1
|
#define BOOST_SYMBIAN 1
|
||||||
|
|
||||||
|
|
||||||
#if defined(__S60_3X__)
|
#if defined(__S60_3X__)
|
||||||
// Open C / C++ plugin was introdused in this SDK, earlier versions don't have CRT / STL
|
// Open C / C++ plugin was introdused in this SDK, earlier versions don't have CRT / STL
|
||||||
# define BOOST_S60_3rd_EDITION_FP2_OR_LATER_SDK
|
# define BOOST_S60_3rd_EDITION_FP2_OR_LATER_SDK
|
||||||
// make sure we have __GLIBC_PREREQ if available at all
|
// make sure we have __GLIBC_PREREQ if available at all
|
||||||
# include <cstdlib>
|
#ifdef __cplusplus
|
||||||
// boilerplate code:
|
#include <cstdlib>
|
||||||
# define BOOST_HAS_UNISTD_H
|
#else
|
||||||
# include <boost/config/posix_features.hpp>
|
#include <stdlib.h>
|
||||||
// S60 SDK defines _POSIX_VERSION as POSIX.1
|
#endif// boilerplate code:
|
||||||
# ifndef BOOST_HAS_STDINT_H
|
# define BOOST_HAS_UNISTD_H
|
||||||
# define BOOST_HAS_STDINT_H
|
# include <boost/config/posix_features.hpp>
|
||||||
# endif
|
// S60 SDK defines _POSIX_VERSION as POSIX.1
|
||||||
# ifndef BOOST_HAS_GETTIMEOFDAY
|
# ifndef BOOST_HAS_STDINT_H
|
||||||
# define BOOST_HAS_GETTIMEOFDAY
|
# define BOOST_HAS_STDINT_H
|
||||||
# endif
|
# endif
|
||||||
# ifndef BOOST_HAS_DIRENT_H
|
# ifndef BOOST_HAS_GETTIMEOFDAY
|
||||||
# define BOOST_HAS_DIRENT_H
|
# define BOOST_HAS_GETTIMEOFDAY
|
||||||
# endif
|
# endif
|
||||||
# ifndef BOOST_HAS_SIGACTION
|
# ifndef BOOST_HAS_DIRENT_H
|
||||||
# define BOOST_HAS_SIGACTION
|
# define BOOST_HAS_DIRENT_H
|
||||||
# endif
|
# endif
|
||||||
# ifndef BOOST_HAS_PTHREADS
|
# ifndef BOOST_HAS_SIGACTION
|
||||||
# define BOOST_HAS_PTHREADS
|
# define BOOST_HAS_SIGACTION
|
||||||
# endif
|
# endif
|
||||||
# ifndef BOOST_HAS_NANOSLEEP
|
# ifndef BOOST_HAS_PTHREADS
|
||||||
# define BOOST_HAS_NANOSLEEP
|
# define BOOST_HAS_PTHREADS
|
||||||
# endif
|
# endif
|
||||||
# ifndef BOOST_HAS_SCHED_YIELD
|
# ifndef BOOST_HAS_NANOSLEEP
|
||||||
# define BOOST_HAS_SCHED_YIELD
|
# define BOOST_HAS_NANOSLEEP
|
||||||
# endif
|
# endif
|
||||||
# ifndef BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
|
# ifndef BOOST_HAS_SCHED_YIELD
|
||||||
# define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
|
# define BOOST_HAS_SCHED_YIELD
|
||||||
# endif
|
# endif
|
||||||
# ifndef BOOST_HAS_LOG1P
|
# ifndef BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
|
||||||
# define BOOST_HAS_LOG1P
|
# define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
|
||||||
# endif
|
# endif
|
||||||
# ifndef BOOST_HAS_EXPM1
|
# ifndef BOOST_HAS_LOG1P
|
||||||
# define BOOST_HAS_EXPM1
|
# define BOOST_HAS_LOG1P
|
||||||
# endif
|
# endif
|
||||||
# ifndef BOOST_POSIX_API
|
# ifndef BOOST_HAS_EXPM1
|
||||||
# define BOOST_POSIX_API
|
# define BOOST_HAS_EXPM1
|
||||||
# endif
|
# endif
|
||||||
// endianess support
|
# ifndef BOOST_POSIX_API
|
||||||
# include <sys/endian.h>
|
# define BOOST_POSIX_API
|
||||||
// Symbian SDK provides _BYTE_ORDER instead of __BYTE_ORDER
|
# endif
|
||||||
# ifndef __LITTLE_ENDIAN
|
// endianess support
|
||||||
# ifdef _LITTLE_ENDIAN
|
# include <sys/endian.h>
|
||||||
# define __LITTLE_ENDIAN _LITTLE_ENDIAN
|
// Symbian SDK provides _BYTE_ORDER instead of __BYTE_ORDER
|
||||||
# else
|
# ifndef __LITTLE_ENDIAN
|
||||||
# define __LITTLE_ENDIAN 1234
|
# ifdef _LITTLE_ENDIAN
|
||||||
# endif
|
# define __LITTLE_ENDIAN _LITTLE_ENDIAN
|
||||||
# endif
|
# else
|
||||||
# ifndef __BIG_ENDIAN
|
# define __LITTLE_ENDIAN 1234
|
||||||
# ifdef _BIG_ENDIAN
|
# endif
|
||||||
# define __BIG_ENDIAN _BIG_ENDIAN
|
# endif
|
||||||
# else
|
# ifndef __BIG_ENDIAN
|
||||||
# define __BIG_ENDIAN 4321
|
# ifdef _BIG_ENDIAN
|
||||||
# endif
|
# define __BIG_ENDIAN _BIG_ENDIAN
|
||||||
# endif
|
# else
|
||||||
# ifndef __BYTE_ORDER
|
# define __BIG_ENDIAN 4321
|
||||||
# define __BYTE_ORDER __LITTLE_ENDIAN // Symbian is LE
|
# endif
|
||||||
# endif
|
# endif
|
||||||
// Known limitations
|
# ifndef __BYTE_ORDER
|
||||||
# define BOOST_ASIO_DISABLE_SERIAL_PORT
|
# define __BYTE_ORDER __LITTLE_ENDIAN // Symbian is LE
|
||||||
# define BOOST_DATE_TIME_NO_LOCALE
|
# endif
|
||||||
# define BOOST_NO_STD_WSTRING
|
// Known limitations
|
||||||
# define BOOST_EXCEPTION_DISABLE
|
# define BOOST_ASIO_DISABLE_SERIAL_PORT
|
||||||
# define BOOST_NO_EXCEPTIONS
|
# define BOOST_DATE_TIME_NO_LOCALE
|
||||||
|
# define BOOST_NO_STD_WSTRING
|
||||||
#else // TODO: More platform support e.g. UIQ
|
# define BOOST_EXCEPTION_DISABLE
|
||||||
# error "Unsuppoted Symbian SDK"
|
# define BOOST_NO_EXCEPTIONS
|
||||||
#endif
|
|
||||||
|
#else // TODO: More platform support e.g. UIQ
|
||||||
#if defined(__WINSCW__) && !defined(BOOST_DISABLE_WIN32)
|
# error "Unsuppoted Symbian SDK"
|
||||||
# define BOOST_DISABLE_WIN32 // winscw defines WIN32 macro
|
#endif
|
||||||
#endif
|
|
||||||
|
#if defined(__WINSCW__) && !defined(BOOST_DISABLE_WIN32)
|
||||||
|
# define BOOST_DISABLE_WIN32 // winscw defines WIN32 macro
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,25 +1,25 @@
|
||||||
// (C) Copyright Artyom Beilis 2010.
|
// (C) Copyright Artyom Beilis 2010.
|
||||||
// Use, modification and distribution are subject to the
|
// Use, modification and distribution are subject to the
|
||||||
// Boost Software License, Version 1.0. (See accompanying file
|
// Boost Software License, Version 1.0. (See accompanying file
|
||||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
|
||||||
#ifndef BOOST_CONFIG_PLATFORM_VMS_HPP
|
#ifndef BOOST_CONFIG_PLATFORM_VMS_HPP
|
||||||
#define BOOST_CONFIG_PLATFORM_VMS_HPP
|
#define BOOST_CONFIG_PLATFORM_VMS_HPP
|
||||||
|
|
||||||
#define BOOST_PLATFORM "OpenVMS"
|
#define BOOST_PLATFORM "OpenVMS"
|
||||||
|
|
||||||
#undef BOOST_HAS_STDINT_H
|
#undef BOOST_HAS_STDINT_H
|
||||||
#define BOOST_HAS_UNISTD_H
|
#define BOOST_HAS_UNISTD_H
|
||||||
#define BOOST_HAS_NL_TYPES_H
|
#define BOOST_HAS_NL_TYPES_H
|
||||||
#define BOOST_HAS_GETTIMEOFDAY
|
#define BOOST_HAS_GETTIMEOFDAY
|
||||||
#define BOOST_HAS_DIRENT_H
|
#define BOOST_HAS_DIRENT_H
|
||||||
#define BOOST_HAS_PTHREADS
|
#define BOOST_HAS_PTHREADS
|
||||||
#define BOOST_HAS_NANOSLEEP
|
#define BOOST_HAS_NANOSLEEP
|
||||||
#define BOOST_HAS_CLOCK_GETTIME
|
#define BOOST_HAS_CLOCK_GETTIME
|
||||||
#define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
|
#define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
|
||||||
#define BOOST_HAS_LOG1P
|
#define BOOST_HAS_LOG1P
|
||||||
#define BOOST_HAS_EXPM1
|
#define BOOST_HAS_EXPM1
|
||||||
#define BOOST_HAS_THREADS
|
#define BOOST_HAS_THREADS
|
||||||
#undef BOOST_HAS_SCHED_YIELD
|
#undef BOOST_HAS_SCHED_YIELD
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -1,31 +1,31 @@
|
||||||
// (C) Copyright Dustin Spicuzza 2009.
|
// (C) Copyright Dustin Spicuzza 2009.
|
||||||
// Use, modification and distribution are subject to the
|
// Use, modification and distribution are subject to the
|
||||||
// Boost Software License, Version 1.0. (See accompanying file
|
// Boost Software License, Version 1.0. (See accompanying file
|
||||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
|
||||||
// See http://www.boost.org for most recent version.
|
// See http://www.boost.org for most recent version.
|
||||||
|
|
||||||
// vxWorks specific config options:
|
// vxWorks specific config options:
|
||||||
|
|
||||||
#define BOOST_PLATFORM "vxWorks"
|
#define BOOST_PLATFORM "vxWorks"
|
||||||
|
|
||||||
#define BOOST_NO_CWCHAR
|
#define BOOST_NO_CWCHAR
|
||||||
#define BOOST_NO_INTRINSIC_WCHAR_T
|
#define BOOST_NO_INTRINSIC_WCHAR_T
|
||||||
|
|
||||||
#if defined(__GNUC__) && defined(__STRICT_ANSI__)
|
#if defined(__GNUC__) && defined(__STRICT_ANSI__)
|
||||||
#define BOOST_NO_INT64_T
|
#define BOOST_NO_INT64_T
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define BOOST_HAS_UNISTD_H
|
#define BOOST_HAS_UNISTD_H
|
||||||
|
|
||||||
// these allow posix_features to work, since vxWorks doesn't
|
// these allow posix_features to work, since vxWorks doesn't
|
||||||
// define them itself
|
// define them itself
|
||||||
#define _POSIX_TIMERS 1
|
#define _POSIX_TIMERS 1
|
||||||
#define _POSIX_THREADS 1
|
#define _POSIX_THREADS 1
|
||||||
|
|
||||||
// vxworks doesn't work with asio serial ports
|
// vxworks doesn't work with asio serial ports
|
||||||
#define BOOST_ASIO_DISABLE_SERIAL_PORT
|
#define BOOST_ASIO_DISABLE_SERIAL_PORT
|
||||||
|
|
||||||
// boilerplate code:
|
// boilerplate code:
|
||||||
#include <boost/config/posix_features.hpp>
|
#include <boost/config/posix_features.hpp>
|
||||||
|
|
||||||
|
|
|
@ -1,65 +1,71 @@
|
||||||
// (C) Copyright John Maddock 2001 - 2003.
|
// (C) Copyright John Maddock 2001 - 2003.
|
||||||
// (C) Copyright Bill Kempf 2001.
|
// (C) Copyright Bill Kempf 2001.
|
||||||
// (C) Copyright Aleksey Gurtovoy 2003.
|
// (C) Copyright Aleksey Gurtovoy 2003.
|
||||||
// (C) Copyright Rene Rivera 2005.
|
// (C) Copyright Rene Rivera 2005.
|
||||||
// Use, modification and distribution are subject to the
|
// Use, modification and distribution are subject to the
|
||||||
// Boost Software License, Version 1.0. (See accompanying file
|
// Boost Software License, Version 1.0. (See accompanying file
|
||||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
|
||||||
// See http://www.boost.org for most recent version.
|
// See http://www.boost.org for most recent version.
|
||||||
|
|
||||||
// Win32 specific config options:
|
// Win32 specific config options:
|
||||||
|
|
||||||
#define BOOST_PLATFORM "Win32"
|
#define BOOST_PLATFORM "Win32"
|
||||||
|
|
||||||
// Get the information about the MinGW runtime, i.e. __MINGW32_*VERSION.
|
// Get the information about the MinGW runtime, i.e. __MINGW32_*VERSION.
|
||||||
#if defined(__MINGW32__)
|
#if defined(__MINGW32__)
|
||||||
# include <_mingw.h>
|
# include <_mingw.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(__GNUC__) && !defined(BOOST_NO_SWPRINTF)
|
#if defined(__GNUC__) && !defined(BOOST_NO_SWPRINTF)
|
||||||
# define BOOST_NO_SWPRINTF
|
# define BOOST_NO_SWPRINTF
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// Default defines for BOOST_SYMBOL_EXPORT and BOOST_SYMBOL_IMPORT
|
// Default defines for BOOST_SYMBOL_EXPORT and BOOST_SYMBOL_IMPORT
|
||||||
// If a compiler doesn't support __declspec(dllexport)/__declspec(dllimport),
|
// If a compiler doesn't support __declspec(dllexport)/__declspec(dllimport),
|
||||||
// its boost/config/compiler/ file must define BOOST_SYMBOL_EXPORT and
|
// its boost/config/compiler/ file must define BOOST_SYMBOL_EXPORT and
|
||||||
// BOOST_SYMBOL_IMPORT
|
// BOOST_SYMBOL_IMPORT
|
||||||
#ifndef BOOST_SYMBOL_EXPORT
|
#ifndef BOOST_SYMBOL_EXPORT
|
||||||
# define BOOST_HAS_DECLSPEC
|
# define BOOST_HAS_DECLSPEC
|
||||||
# define BOOST_SYMBOL_EXPORT __declspec(dllexport)
|
# define BOOST_SYMBOL_EXPORT __declspec(dllexport)
|
||||||
# define BOOST_SYMBOL_IMPORT __declspec(dllimport)
|
# define BOOST_SYMBOL_IMPORT __declspec(dllimport)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if defined(__MINGW32__) && ((__MINGW32_MAJOR_VERSION > 2) || ((__MINGW32_MAJOR_VERSION == 2) && (__MINGW32_MINOR_VERSION >= 0)))
|
||||||
#if defined(__MINGW32__) && ((__MINGW32_MAJOR_VERSION > 2) || ((__MINGW32_MAJOR_VERSION == 2) && (__MINGW32_MINOR_VERSION >= 0)))
|
# define BOOST_HAS_STDINT_H
|
||||||
# define BOOST_HAS_STDINT_H
|
# define __STDC_LIMIT_MACROS
|
||||||
# define __STDC_LIMIT_MACROS
|
# define BOOST_HAS_DIRENT_H
|
||||||
# define BOOST_HAS_DIRENT_H
|
# define BOOST_HAS_UNISTD_H
|
||||||
# define BOOST_HAS_UNISTD_H
|
#endif
|
||||||
#endif
|
|
||||||
|
#if defined(__MINGW32__) && (__GNUC__ >= 4)
|
||||||
//
|
# define BOOST_HAS_EXPM1
|
||||||
// Win32 will normally be using native Win32 threads,
|
# define BOOST_HAS_LOG1P
|
||||||
// but there is a pthread library avaliable as an option,
|
# define BOOST_HAS_GETTIMEOFDAY
|
||||||
// we used to disable this when BOOST_DISABLE_WIN32 was
|
#endif
|
||||||
// defined but no longer - this should allow some
|
//
|
||||||
// files to be compiled in strict mode - while maintaining
|
// Win32 will normally be using native Win32 threads,
|
||||||
// a consistent setting of BOOST_HAS_THREADS across
|
// but there is a pthread library avaliable as an option,
|
||||||
// all translation units (needed for shared_ptr etc).
|
// we used to disable this when BOOST_DISABLE_WIN32 was
|
||||||
//
|
// defined but no longer - this should allow some
|
||||||
|
// files to be compiled in strict mode - while maintaining
|
||||||
#ifdef _WIN32_WCE
|
// a consistent setting of BOOST_HAS_THREADS across
|
||||||
# define BOOST_NO_ANSI_APIS
|
// all translation units (needed for shared_ptr etc).
|
||||||
#endif
|
//
|
||||||
|
|
||||||
#ifndef BOOST_HAS_PTHREADS
|
#ifdef _WIN32_WCE
|
||||||
# define BOOST_HAS_WINTHREADS
|
# define BOOST_NO_ANSI_APIS
|
||||||
#endif
|
#else
|
||||||
|
# define BOOST_HAS_GETSYSTEMTIMEASFILETIME
|
||||||
#ifndef BOOST_DISABLE_WIN32
|
#endif
|
||||||
// WEK: Added
|
|
||||||
#define BOOST_HAS_FTIME
|
#ifndef BOOST_HAS_PTHREADS
|
||||||
#define BOOST_WINDOWS 1
|
# define BOOST_HAS_WINTHREADS
|
||||||
|
#endif
|
||||||
#endif
|
|
||||||
|
#ifndef BOOST_DISABLE_WIN32
|
||||||
|
// WEK: Added
|
||||||
|
#define BOOST_HAS_FTIME
|
||||||
|
#define BOOST_WINDOWS 1
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
|
@ -1,95 +1,95 @@
|
||||||
// (C) Copyright John Maddock 2001 - 2003.
|
// (C) Copyright John Maddock 2001 - 2003.
|
||||||
// Use, modification and distribution are subject to the
|
// Use, modification and distribution are subject to the
|
||||||
// Boost Software License, Version 1.0. (See accompanying file
|
// Boost Software License, Version 1.0. (See accompanying file
|
||||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
|
||||||
|
|
||||||
// See http://www.boost.org for most recent version.
|
// See http://www.boost.org for most recent version.
|
||||||
|
|
||||||
// All POSIX feature tests go in this file,
|
// All POSIX feature tests go in this file,
|
||||||
// Note that we test _POSIX_C_SOURCE and _XOPEN_SOURCE as well
|
// Note that we test _POSIX_C_SOURCE and _XOPEN_SOURCE as well
|
||||||
// _POSIX_VERSION and _XOPEN_VERSION: on some systems POSIX API's
|
// _POSIX_VERSION and _XOPEN_VERSION: on some systems POSIX API's
|
||||||
// may be present but none-functional unless _POSIX_C_SOURCE and
|
// may be present but none-functional unless _POSIX_C_SOURCE and
|
||||||
// _XOPEN_SOURCE have been defined to the right value (it's up
|
// _XOPEN_SOURCE have been defined to the right value (it's up
|
||||||
// to the user to do this *before* including any header, although
|
// to the user to do this *before* including any header, although
|
||||||
// in most cases the compiler will do this for you).
|
// in most cases the compiler will do this for you).
|
||||||
|
|
||||||
# if defined(BOOST_HAS_UNISTD_H)
|
# if defined(BOOST_HAS_UNISTD_H)
|
||||||
# include <unistd.h>
|
# include <unistd.h>
|
||||||
|
|
||||||
// XOpen has <nl_types.h>, but is this the correct version check?
|
// XOpen has <nl_types.h>, but is this the correct version check?
|
||||||
# if defined(_XOPEN_VERSION) && (_XOPEN_VERSION >= 3)
|
# if defined(_XOPEN_VERSION) && (_XOPEN_VERSION >= 3)
|
||||||
# define BOOST_HAS_NL_TYPES_H
|
# define BOOST_HAS_NL_TYPES_H
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
// POSIX version 6 requires <stdint.h>
|
// POSIX version 6 requires <stdint.h>
|
||||||
# if defined(_POSIX_VERSION) && (_POSIX_VERSION >= 200100)
|
# if defined(_POSIX_VERSION) && (_POSIX_VERSION >= 200100)
|
||||||
# define BOOST_HAS_STDINT_H
|
# define BOOST_HAS_STDINT_H
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
// POSIX version 2 requires <dirent.h>
|
// POSIX version 2 requires <dirent.h>
|
||||||
# if defined(_POSIX_VERSION) && (_POSIX_VERSION >= 199009L)
|
# if defined(_POSIX_VERSION) && (_POSIX_VERSION >= 199009L)
|
||||||
# define BOOST_HAS_DIRENT_H
|
# define BOOST_HAS_DIRENT_H
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
// POSIX version 3 requires <signal.h> to have sigaction:
|
// POSIX version 3 requires <signal.h> to have sigaction:
|
||||||
# if defined(_POSIX_VERSION) && (_POSIX_VERSION >= 199506L)
|
# if defined(_POSIX_VERSION) && (_POSIX_VERSION >= 199506L)
|
||||||
# define BOOST_HAS_SIGACTION
|
# define BOOST_HAS_SIGACTION
|
||||||
# endif
|
# endif
|
||||||
// POSIX defines _POSIX_THREADS > 0 for pthread support,
|
// POSIX defines _POSIX_THREADS > 0 for pthread support,
|
||||||
// however some platforms define _POSIX_THREADS without
|
// however some platforms define _POSIX_THREADS without
|
||||||
// a value, hence the (_POSIX_THREADS+0 >= 0) check.
|
// a value, hence the (_POSIX_THREADS+0 >= 0) check.
|
||||||
// Strictly speaking this may catch platforms with a
|
// Strictly speaking this may catch platforms with a
|
||||||
// non-functioning stub <pthreads.h>, but such occurrences should
|
// non-functioning stub <pthreads.h>, but such occurrences should
|
||||||
// occur very rarely if at all.
|
// occur very rarely if at all.
|
||||||
# if defined(_POSIX_THREADS) && (_POSIX_THREADS+0 >= 0) && !defined(BOOST_HAS_WINTHREADS) && !defined(BOOST_HAS_MPTASKS)
|
# if defined(_POSIX_THREADS) && (_POSIX_THREADS+0 >= 0) && !defined(BOOST_HAS_WINTHREADS) && !defined(BOOST_HAS_MPTASKS)
|
||||||
# define BOOST_HAS_PTHREADS
|
# define BOOST_HAS_PTHREADS
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
// BOOST_HAS_NANOSLEEP:
|
// BOOST_HAS_NANOSLEEP:
|
||||||
// This is predicated on _POSIX_TIMERS or _XOPEN_REALTIME:
|
// This is predicated on _POSIX_TIMERS or _XOPEN_REALTIME:
|
||||||
# if (defined(_POSIX_TIMERS) && (_POSIX_TIMERS+0 >= 0)) \
|
# if (defined(_POSIX_TIMERS) && (_POSIX_TIMERS+0 >= 0)) \
|
||||||
|| (defined(_XOPEN_REALTIME) && (_XOPEN_REALTIME+0 >= 0))
|
|| (defined(_XOPEN_REALTIME) && (_XOPEN_REALTIME+0 >= 0))
|
||||||
# define BOOST_HAS_NANOSLEEP
|
# define BOOST_HAS_NANOSLEEP
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
// BOOST_HAS_CLOCK_GETTIME:
|
// BOOST_HAS_CLOCK_GETTIME:
|
||||||
// This is predicated on _POSIX_TIMERS (also on _XOPEN_REALTIME
|
// This is predicated on _POSIX_TIMERS (also on _XOPEN_REALTIME
|
||||||
// but at least one platform - linux - defines that flag without
|
// but at least one platform - linux - defines that flag without
|
||||||
// defining clock_gettime):
|
// defining clock_gettime):
|
||||||
# if (defined(_POSIX_TIMERS) && (_POSIX_TIMERS+0 >= 0))
|
# if (defined(_POSIX_TIMERS) && (_POSIX_TIMERS+0 >= 0))
|
||||||
# define BOOST_HAS_CLOCK_GETTIME
|
# define BOOST_HAS_CLOCK_GETTIME
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
// BOOST_HAS_SCHED_YIELD:
|
// BOOST_HAS_SCHED_YIELD:
|
||||||
// This is predicated on _POSIX_PRIORITY_SCHEDULING or
|
// This is predicated on _POSIX_PRIORITY_SCHEDULING or
|
||||||
// on _POSIX_THREAD_PRIORITY_SCHEDULING or on _XOPEN_REALTIME.
|
// on _POSIX_THREAD_PRIORITY_SCHEDULING or on _XOPEN_REALTIME.
|
||||||
# if defined(_POSIX_PRIORITY_SCHEDULING) && (_POSIX_PRIORITY_SCHEDULING+0 > 0)\
|
# if defined(_POSIX_PRIORITY_SCHEDULING) && (_POSIX_PRIORITY_SCHEDULING+0 > 0)\
|
||||||
|| (defined(_POSIX_THREAD_PRIORITY_SCHEDULING) && (_POSIX_THREAD_PRIORITY_SCHEDULING+0 > 0))\
|
|| (defined(_POSIX_THREAD_PRIORITY_SCHEDULING) && (_POSIX_THREAD_PRIORITY_SCHEDULING+0 > 0))\
|
||||||
|| (defined(_XOPEN_REALTIME) && (_XOPEN_REALTIME+0 >= 0))
|
|| (defined(_XOPEN_REALTIME) && (_XOPEN_REALTIME+0 >= 0))
|
||||||
# define BOOST_HAS_SCHED_YIELD
|
# define BOOST_HAS_SCHED_YIELD
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
// BOOST_HAS_GETTIMEOFDAY:
|
// BOOST_HAS_GETTIMEOFDAY:
|
||||||
// BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE:
|
// BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE:
|
||||||
// These are predicated on _XOPEN_VERSION, and appears to be first released
|
// These are predicated on _XOPEN_VERSION, and appears to be first released
|
||||||
// in issue 4, version 2 (_XOPEN_VERSION > 500).
|
// in issue 4, version 2 (_XOPEN_VERSION > 500).
|
||||||
// Likewise for the functions log1p and expm1.
|
// Likewise for the functions log1p and expm1.
|
||||||
# if defined(_XOPEN_VERSION) && (_XOPEN_VERSION+0 >= 500)
|
# if defined(_XOPEN_VERSION) && (_XOPEN_VERSION+0 >= 500)
|
||||||
# define BOOST_HAS_GETTIMEOFDAY
|
# define BOOST_HAS_GETTIMEOFDAY
|
||||||
# if defined(_XOPEN_SOURCE) && (_XOPEN_SOURCE+0 >= 500)
|
# if defined(_XOPEN_SOURCE) && (_XOPEN_SOURCE+0 >= 500)
|
||||||
# define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
|
# define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
|
||||||
# endif
|
# endif
|
||||||
# ifndef BOOST_HAS_LOG1P
|
# ifndef BOOST_HAS_LOG1P
|
||||||
# define BOOST_HAS_LOG1P
|
# define BOOST_HAS_LOG1P
|
||||||
# endif
|
# endif
|
||||||
# ifndef BOOST_HAS_EXPM1
|
# ifndef BOOST_HAS_EXPM1
|
||||||
# define BOOST_HAS_EXPM1
|
# define BOOST_HAS_EXPM1
|
||||||
# endif
|
# endif
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,92 +1,92 @@
|
||||||
// (C) Copyright John Maddock 2003.
|
// (C) Copyright John Maddock 2003.
|
||||||
// Use, modification and distribution are subject to the
|
// Use, modification and distribution are subject to the
|
||||||
// Boost Software License, Version 1.0. (See accompanying file
|
// Boost Software License, Version 1.0. (See accompanying file
|
||||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
|
||||||
|
|
||||||
#ifndef BOOST_CONFIG_REQUIRES_THREADS_HPP
|
#ifndef BOOST_CONFIG_REQUIRES_THREADS_HPP
|
||||||
#define BOOST_CONFIG_REQUIRES_THREADS_HPP
|
#define BOOST_CONFIG_REQUIRES_THREADS_HPP
|
||||||
|
|
||||||
#ifndef BOOST_CONFIG_HPP
|
#ifndef BOOST_CONFIG_HPP
|
||||||
# include <boost/config.hpp>
|
# include <boost/config.hpp>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(BOOST_DISABLE_THREADS)
|
#if defined(BOOST_DISABLE_THREADS)
|
||||||
|
|
||||||
//
|
//
|
||||||
// special case to handle versions of gcc which don't currently support threads:
|
// special case to handle versions of gcc which don't currently support threads:
|
||||||
//
|
//
|
||||||
#if defined(__GNUC__) && ((__GNUC__ < 3) || (__GNUC_MINOR__ <= 3) || !defined(BOOST_STRICT_CONFIG))
|
#if defined(__GNUC__) && ((__GNUC__ < 3) || (__GNUC_MINOR__ <= 3) || !defined(BOOST_STRICT_CONFIG))
|
||||||
//
|
//
|
||||||
// this is checked up to gcc 3.3:
|
// this is checked up to gcc 3.3:
|
||||||
//
|
//
|
||||||
#if defined(__sgi) || defined(__hpux)
|
#if defined(__sgi) || defined(__hpux)
|
||||||
# error "Multi-threaded programs are not supported by gcc on HPUX or Irix (last checked with gcc 3.3)"
|
# error "Multi-threaded programs are not supported by gcc on HPUX or Irix (last checked with gcc 3.3)"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
# error "Threading support unavaliable: it has been explicitly disabled with BOOST_DISABLE_THREADS"
|
# error "Threading support unavaliable: it has been explicitly disabled with BOOST_DISABLE_THREADS"
|
||||||
|
|
||||||
#elif !defined(BOOST_HAS_THREADS)
|
#elif !defined(BOOST_HAS_THREADS)
|
||||||
|
|
||||||
# if defined __COMO__
|
# if defined __COMO__
|
||||||
// Comeau C++
|
// Comeau C++
|
||||||
# error "Compiler threading support is not turned on. Please set the correct command line options for threading: -D_MT (Windows) or -D_REENTRANT (Unix)"
|
# error "Compiler threading support is not turned on. Please set the correct command line options for threading: -D_MT (Windows) or -D_REENTRANT (Unix)"
|
||||||
|
|
||||||
#elif defined(__INTEL_COMPILER) || defined(__ICL) || defined(__ICC) || defined(__ECC)
|
#elif defined(__INTEL_COMPILER) || defined(__ICL) || defined(__ICC) || defined(__ECC)
|
||||||
// Intel
|
// Intel
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
# error "Compiler threading support is not turned on. Please set the correct command line options for threading: either /MT /MTd /MD or /MDd"
|
# error "Compiler threading support is not turned on. Please set the correct command line options for threading: either /MT /MTd /MD or /MDd"
|
||||||
#else
|
#else
|
||||||
# error "Compiler threading support is not turned on. Please set the correct command line options for threading: -openmp"
|
# error "Compiler threading support is not turned on. Please set the correct command line options for threading: -openmp"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
# elif defined __GNUC__
|
# elif defined __GNUC__
|
||||||
// GNU C++:
|
// GNU C++:
|
||||||
# error "Compiler threading support is not turned on. Please set the correct command line options for threading: -pthread (Linux), -pthreads (Solaris) or -mthreads (Mingw32)"
|
# error "Compiler threading support is not turned on. Please set the correct command line options for threading: -pthread (Linux), -pthreads (Solaris) or -mthreads (Mingw32)"
|
||||||
|
|
||||||
#elif defined __sgi
|
#elif defined __sgi
|
||||||
// SGI MIPSpro C++
|
// SGI MIPSpro C++
|
||||||
# error "Compiler threading support is not turned on. Please set the correct command line options for threading: -D_SGI_MP_SOURCE"
|
# error "Compiler threading support is not turned on. Please set the correct command line options for threading: -D_SGI_MP_SOURCE"
|
||||||
|
|
||||||
#elif defined __DECCXX
|
#elif defined __DECCXX
|
||||||
// Compaq Tru64 Unix cxx
|
// Compaq Tru64 Unix cxx
|
||||||
# error "Compiler threading support is not turned on. Please set the correct command line options for threading: -pthread"
|
# error "Compiler threading support is not turned on. Please set the correct command line options for threading: -pthread"
|
||||||
|
|
||||||
#elif defined __BORLANDC__
|
#elif defined __BORLANDC__
|
||||||
// Borland
|
// Borland
|
||||||
# error "Compiler threading support is not turned on. Please set the correct command line options for threading: -tWM"
|
# error "Compiler threading support is not turned on. Please set the correct command line options for threading: -tWM"
|
||||||
|
|
||||||
#elif defined __MWERKS__
|
#elif defined __MWERKS__
|
||||||
// Metrowerks CodeWarrior
|
// Metrowerks CodeWarrior
|
||||||
# error "Compiler threading support is not turned on. Please set the correct command line options for threading: either -runtime sm, -runtime smd, -runtime dm, or -runtime dmd"
|
# error "Compiler threading support is not turned on. Please set the correct command line options for threading: either -runtime sm, -runtime smd, -runtime dm, or -runtime dmd"
|
||||||
|
|
||||||
#elif defined __SUNPRO_CC
|
#elif defined __SUNPRO_CC
|
||||||
// Sun Workshop Compiler C++
|
// Sun Workshop Compiler C++
|
||||||
# error "Compiler threading support is not turned on. Please set the correct command line options for threading: -mt"
|
# error "Compiler threading support is not turned on. Please set the correct command line options for threading: -mt"
|
||||||
|
|
||||||
#elif defined __HP_aCC
|
#elif defined __HP_aCC
|
||||||
// HP aCC
|
// HP aCC
|
||||||
# error "Compiler threading support is not turned on. Please set the correct command line options for threading: -mt"
|
# error "Compiler threading support is not turned on. Please set the correct command line options for threading: -mt"
|
||||||
|
|
||||||
#elif defined(__IBMCPP__)
|
#elif defined(__IBMCPP__)
|
||||||
// IBM Visual Age
|
// IBM Visual Age
|
||||||
# error "Compiler threading support is not turned on. Please compile the code with the xlC_r compiler"
|
# error "Compiler threading support is not turned on. Please compile the code with the xlC_r compiler"
|
||||||
|
|
||||||
#elif defined _MSC_VER
|
#elif defined _MSC_VER
|
||||||
// Microsoft Visual C++
|
// Microsoft Visual C++
|
||||||
//
|
//
|
||||||
// Must remain the last #elif since some other vendors (Metrowerks, for
|
// Must remain the last #elif since some other vendors (Metrowerks, for
|
||||||
// example) also #define _MSC_VER
|
// example) also #define _MSC_VER
|
||||||
# error "Compiler threading support is not turned on. Please set the correct command line options for threading: either /MT /MTd /MD or /MDd"
|
# error "Compiler threading support is not turned on. Please set the correct command line options for threading: either /MT /MTd /MD or /MDd"
|
||||||
|
|
||||||
#else
|
#else
|
||||||
|
|
||||||
# error "Compiler threading support is not turned on. Please consult your compiler's documentation for the appropriate options to use"
|
# error "Compiler threading support is not turned on. Please consult your compiler's documentation for the appropriate options to use"
|
||||||
|
|
||||||
#endif // compilers
|
#endif // compilers
|
||||||
|
|
||||||
#endif // BOOST_HAS_THREADS
|
#endif // BOOST_HAS_THREADS
|
||||||
|
|
||||||
#endif // BOOST_CONFIG_REQUIRES_THREADS_HPP
|
#endif // BOOST_CONFIG_REQUIRES_THREADS_HPP
|
||||||
|
|
|
@ -1,129 +1,112 @@
|
||||||
// Boost compiler configuration selection header file
|
// Boost compiler configuration selection header file
|
||||||
|
|
||||||
// (C) Copyright John Maddock 2001 - 2003.
|
// (C) Copyright John Maddock 2001 - 2003.
|
||||||
// (C) Copyright Martin Wille 2003.
|
// (C) Copyright Martin Wille 2003.
|
||||||
// (C) Copyright Guillaume Melquiond 2003.
|
// (C) Copyright Guillaume Melquiond 2003.
|
||||||
//
|
//
|
||||||
// Distributed under the Boost Software License, Version 1.0.
|
// Distributed under the Boost Software License, Version 1.0.
|
||||||
// (See accompanying file LICENSE_1_0.txt or copy at
|
// (See accompanying file LICENSE_1_0.txt or copy at
|
||||||
// http://www.boost.org/LICENSE_1_0.txt)
|
// http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
|
||||||
// See http://www.boost.org/ for most recent version.
|
// See http://www.boost.org/ for most recent version.
|
||||||
|
|
||||||
|
// locate which compiler we are using and define
|
||||||
// one identification macro for each of the
|
// BOOST_COMPILER_CONFIG as needed:
|
||||||
// compilers we support:
|
|
||||||
|
#if defined(__GCCXML__)
|
||||||
# define BOOST_CXX_GCCXML 0
|
// GCC-XML emulates other compilers, it has to appear first here!
|
||||||
# define BOOST_CXX_CLANG 0
|
# define BOOST_COMPILER_CONFIG "boost/config/compiler/gcc_xml.hpp"
|
||||||
# define BOOST_CXX_COMO 0
|
|
||||||
# define BOOST_CXX_DMC 0
|
#elif defined(_CRAYC)
|
||||||
# define BOOST_CXX_INTEL 0
|
// EDG based Cray compiler:
|
||||||
# define BOOST_CXX_GNUC 0
|
# define BOOST_COMPILER_CONFIG "boost/config/compiler/cray.hpp"
|
||||||
# define BOOST_CXX_KCC 0
|
|
||||||
# define BOOST_CXX_SGI 0
|
#elif defined __CUDACC__
|
||||||
# define BOOST_CXX_TRU64 0
|
// NVIDIA CUDA C++ compiler for GPU
|
||||||
# define BOOST_CXX_GHS 0
|
# define BOOST_COMPILER_CONFIG "boost/config/compiler/nvcc.hpp"
|
||||||
# define BOOST_CXX_BORLAND 0
|
|
||||||
# define BOOST_CXX_CW 0
|
#elif defined __COMO__
|
||||||
# define BOOST_CXX_SUNPRO 0
|
// Comeau C++
|
||||||
# define BOOST_CXX_HPACC 0
|
# define BOOST_COMPILER_CONFIG "boost/config/compiler/comeau.hpp"
|
||||||
# define BOOST_CXX_MPW 0
|
|
||||||
# define BOOST_CXX_IBMCPP 0
|
#elif defined(__PATHSCALE__) && (__PATHCC__ >= 4)
|
||||||
# define BOOST_CXX_MSVC 0
|
// PathScale EKOPath compiler (has to come before clang and gcc)
|
||||||
# define BOOST_CXX_PGI 0
|
# define BOOST_COMPILER_CONFIG "boost/config/compiler/pathscale.hpp"
|
||||||
# define BOOST_CXX_NVCC 0
|
|
||||||
|
#elif defined __clang__
|
||||||
|
// Clang C++ emulates GCC, so it has to appear early.
|
||||||
// locate which compiler we are using and define
|
# define BOOST_COMPILER_CONFIG "boost/config/compiler/clang.hpp"
|
||||||
// BOOST_COMPILER_CONFIG as needed:
|
|
||||||
|
#elif defined __DMC__
|
||||||
#if defined(__GCCXML__)
|
// Digital Mars C++
|
||||||
// GCC-XML emulates other compilers, it has to appear first here!
|
# define BOOST_COMPILER_CONFIG "boost/config/compiler/digitalmars.hpp"
|
||||||
# define BOOST_COMPILER_CONFIG "boost/config/compiler/gcc_xml.hpp"
|
|
||||||
|
#elif defined(__INTEL_COMPILER) || defined(__ICL) || defined(__ICC) || defined(__ECC)
|
||||||
#elif defined __CUDACC__
|
// Intel
|
||||||
// NVIDIA CUDA C++ compiler for GPU
|
# define BOOST_COMPILER_CONFIG "boost/config/compiler/intel.hpp"
|
||||||
# define BOOST_COMPILER_CONFIG "boost/config/compiler/nvcc.hpp"
|
|
||||||
|
# elif defined __GNUC__
|
||||||
#elif defined __COMO__
|
// GNU C++:
|
||||||
// Comeau C++
|
# define BOOST_COMPILER_CONFIG "boost/config/compiler/gcc.hpp"
|
||||||
# define BOOST_COMPILER_CONFIG "boost/config/compiler/comeau.hpp"
|
|
||||||
|
#elif defined __KCC
|
||||||
#elif defined __clang__
|
// Kai C++
|
||||||
// Clang C++ emulates GCC, so it has to appear early.
|
# define BOOST_COMPILER_CONFIG "boost/config/compiler/kai.hpp"
|
||||||
# define BOOST_COMPILER_CONFIG "boost/config/compiler/clang.hpp"
|
|
||||||
|
#elif defined __sgi
|
||||||
#elif defined __DMC__
|
// SGI MIPSpro C++
|
||||||
// Digital Mars C++
|
# define BOOST_COMPILER_CONFIG "boost/config/compiler/sgi_mipspro.hpp"
|
||||||
# define BOOST_COMPILER_CONFIG "boost/config/compiler/digitalmars.hpp"
|
|
||||||
|
#elif defined __DECCXX
|
||||||
#elif defined(__INTEL_COMPILER) || defined(__ICL) || defined(__ICC) || defined(__ECC)
|
// Compaq Tru64 Unix cxx
|
||||||
// Intel
|
# define BOOST_COMPILER_CONFIG "boost/config/compiler/compaq_cxx.hpp"
|
||||||
# define BOOST_COMPILER_CONFIG "boost/config/compiler/intel.hpp"
|
|
||||||
|
#elif defined __ghs
|
||||||
# elif defined __GNUC__
|
// Greenhills C++
|
||||||
// GNU C++:
|
# define BOOST_COMPILER_CONFIG "boost/config/compiler/greenhills.hpp"
|
||||||
# define BOOST_COMPILER_CONFIG "boost/config/compiler/gcc.hpp"
|
|
||||||
|
#elif defined __CODEGEARC__
|
||||||
#elif defined __KCC
|
// CodeGear - must be checked for before Borland
|
||||||
// Kai C++
|
# define BOOST_COMPILER_CONFIG "boost/config/compiler/codegear.hpp"
|
||||||
# define BOOST_COMPILER_CONFIG "boost/config/compiler/kai.hpp"
|
|
||||||
|
#elif defined __BORLANDC__
|
||||||
#elif defined __sgi
|
// Borland
|
||||||
// SGI MIPSpro C++
|
# define BOOST_COMPILER_CONFIG "boost/config/compiler/borland.hpp"
|
||||||
# define BOOST_COMPILER_CONFIG "boost/config/compiler/sgi_mipspro.hpp"
|
|
||||||
|
#elif defined __MWERKS__
|
||||||
#elif defined __DECCXX
|
// Metrowerks CodeWarrior
|
||||||
// Compaq Tru64 Unix cxx
|
# define BOOST_COMPILER_CONFIG "boost/config/compiler/metrowerks.hpp"
|
||||||
# define BOOST_COMPILER_CONFIG "boost/config/compiler/compaq_cxx.hpp"
|
|
||||||
|
#elif defined __SUNPRO_CC
|
||||||
#elif defined __ghs
|
// Sun Workshop Compiler C++
|
||||||
// Greenhills C++
|
# define BOOST_COMPILER_CONFIG "boost/config/compiler/sunpro_cc.hpp"
|
||||||
# define BOOST_COMPILER_CONFIG "boost/config/compiler/greenhills.hpp"
|
|
||||||
|
#elif defined __HP_aCC
|
||||||
#elif defined __CODEGEARC__
|
// HP aCC
|
||||||
// CodeGear - must be checked for before Borland
|
# define BOOST_COMPILER_CONFIG "boost/config/compiler/hp_acc.hpp"
|
||||||
# define BOOST_COMPILER_CONFIG "boost/config/compiler/codegear.hpp"
|
|
||||||
|
#elif defined(__MRC__) || defined(__SC__)
|
||||||
#elif defined __BORLANDC__
|
// MPW MrCpp or SCpp
|
||||||
// Borland
|
# define BOOST_COMPILER_CONFIG "boost/config/compiler/mpw.hpp"
|
||||||
# define BOOST_COMPILER_CONFIG "boost/config/compiler/borland.hpp"
|
|
||||||
|
#elif defined(__IBMCPP__)
|
||||||
#elif defined __MWERKS__
|
// IBM Visual Age
|
||||||
// Metrowerks CodeWarrior
|
# define BOOST_COMPILER_CONFIG "boost/config/compiler/vacpp.hpp"
|
||||||
# define BOOST_COMPILER_CONFIG "boost/config/compiler/metrowerks.hpp"
|
|
||||||
|
#elif defined(__PGI)
|
||||||
#elif defined __SUNPRO_CC
|
// Portland Group Inc.
|
||||||
// Sun Workshop Compiler C++
|
# define BOOST_COMPILER_CONFIG "boost/config/compiler/pgi.hpp"
|
||||||
# define BOOST_COMPILER_CONFIG "boost/config/compiler/sunpro_cc.hpp"
|
|
||||||
|
#elif defined _MSC_VER
|
||||||
#elif defined __HP_aCC
|
// Microsoft Visual C++
|
||||||
// HP aCC
|
//
|
||||||
# define BOOST_COMPILER_CONFIG "boost/config/compiler/hp_acc.hpp"
|
// Must remain the last #elif since some other vendors (Metrowerks, for
|
||||||
|
// example) also #define _MSC_VER
|
||||||
#elif defined(__MRC__) || defined(__SC__)
|
# define BOOST_COMPILER_CONFIG "boost/config/compiler/visualc.hpp"
|
||||||
// MPW MrCpp or SCpp
|
|
||||||
# define BOOST_COMPILER_CONFIG "boost/config/compiler/mpw.hpp"
|
#elif defined (BOOST_ASSERT_CONFIG)
|
||||||
|
// this must come last - generate an error if we don't
|
||||||
#elif defined(__IBMCPP__)
|
// recognise the compiler:
|
||||||
// IBM Visual Age
|
# error "Unknown compiler - please configure (http://www.boost.org/libs/config/config.htm#configuring) and report the results to the main boost mailing list (http://www.boost.org/more/mailing_lists.htm#main)"
|
||||||
# define BOOST_COMPILER_CONFIG "boost/config/compiler/vacpp.hpp"
|
|
||||||
|
#endif
|
||||||
#elif defined(__PGI)
|
|
||||||
// Portland Group Inc.
|
|
||||||
# define BOOST_COMPILER_CONFIG "boost/config/compiler/pgi.hpp"
|
|
||||||
|
|
||||||
#elif defined _MSC_VER
|
|
||||||
// Microsoft Visual C++
|
|
||||||
//
|
|
||||||
// Must remain the last #elif since some other vendors (Metrowerks, for
|
|
||||||
// example) also #define _MSC_VER
|
|
||||||
# define BOOST_COMPILER_CONFIG "boost/config/compiler/visualc.hpp"
|
|
||||||
|
|
||||||
#elif defined (BOOST_ASSERT_CONFIG)
|
|
||||||
// this must come last - generate an error if we don't
|
|
||||||
// recognise the compiler:
|
|
||||||
# error "Unknown compiler - please configure (http://www.boost.org/libs/config/config.htm#configuring) and report the results to the main boost mailing list (http://www.boost.org/more/mailing_lists.htm#main)"
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
|
@ -1,101 +1,105 @@
|
||||||
// Boost compiler configuration selection header file
|
// Boost compiler configuration selection header file
|
||||||
|
|
||||||
// (C) Copyright John Maddock 2001 - 2002.
|
// (C) Copyright John Maddock 2001 - 2002.
|
||||||
// (C) Copyright Jens Maurer 2001.
|
// (C) Copyright Jens Maurer 2001.
|
||||||
// Use, modification and distribution are subject to the
|
// Use, modification and distribution are subject to the
|
||||||
// Boost Software License, Version 1.0. (See accompanying file
|
// Boost Software License, Version 1.0. (See accompanying file
|
||||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
|
||||||
// See http://www.boost.org for most recent version.
|
// See http://www.boost.org for most recent version.
|
||||||
|
|
||||||
// locate which platform we are on and define BOOST_PLATFORM_CONFIG as needed.
|
// locate which platform we are on and define BOOST_PLATFORM_CONFIG as needed.
|
||||||
// Note that we define the headers to include using "header_name" not
|
// Note that we define the headers to include using "header_name" not
|
||||||
// <header_name> in order to prevent macro expansion within the header
|
// <header_name> in order to prevent macro expansion within the header
|
||||||
// name (for example "linux" is a macro on linux systems).
|
// name (for example "linux" is a macro on linux systems).
|
||||||
|
|
||||||
#if defined(linux) || defined(__linux) || defined(__linux__) || defined(__GNU__) || defined(__GLIBC__)
|
#if (defined(linux) || defined(__linux) || defined(__linux__) || defined(__GNU__) || defined(__GLIBC__)) && !defined(_CRAYC)
|
||||||
// linux, also other platforms (Hurd etc) that use GLIBC, should these really have their own config headers though?
|
// linux, also other platforms (Hurd etc) that use GLIBC, should these really have their own config headers though?
|
||||||
# define BOOST_PLATFORM_CONFIG "boost/config/platform/linux.hpp"
|
# define BOOST_PLATFORM_CONFIG "boost/config/platform/linux.hpp"
|
||||||
|
|
||||||
#elif defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__DragonFly__)
|
#elif defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__DragonFly__)
|
||||||
// BSD:
|
// BSD:
|
||||||
# define BOOST_PLATFORM_CONFIG "boost/config/platform/bsd.hpp"
|
# define BOOST_PLATFORM_CONFIG "boost/config/platform/bsd.hpp"
|
||||||
|
|
||||||
#elif defined(sun) || defined(__sun)
|
#elif defined(sun) || defined(__sun)
|
||||||
// solaris:
|
// solaris:
|
||||||
# define BOOST_PLATFORM_CONFIG "boost/config/platform/solaris.hpp"
|
# define BOOST_PLATFORM_CONFIG "boost/config/platform/solaris.hpp"
|
||||||
|
|
||||||
#elif defined(__sgi)
|
#elif defined(__sgi)
|
||||||
// SGI Irix:
|
// SGI Irix:
|
||||||
# define BOOST_PLATFORM_CONFIG "boost/config/platform/irix.hpp"
|
# define BOOST_PLATFORM_CONFIG "boost/config/platform/irix.hpp"
|
||||||
|
|
||||||
#elif defined(__hpux)
|
#elif defined(__hpux)
|
||||||
// hp unix:
|
// hp unix:
|
||||||
# define BOOST_PLATFORM_CONFIG "boost/config/platform/hpux.hpp"
|
# define BOOST_PLATFORM_CONFIG "boost/config/platform/hpux.hpp"
|
||||||
|
|
||||||
#elif defined(__CYGWIN__)
|
#elif defined(__CYGWIN__)
|
||||||
// cygwin is not win32:
|
// cygwin is not win32:
|
||||||
# define BOOST_PLATFORM_CONFIG "boost/config/platform/cygwin.hpp"
|
# define BOOST_PLATFORM_CONFIG "boost/config/platform/cygwin.hpp"
|
||||||
|
|
||||||
#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32)
|
#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32)
|
||||||
// win32:
|
// win32:
|
||||||
# define BOOST_PLATFORM_CONFIG "boost/config/platform/win32.hpp"
|
# define BOOST_PLATFORM_CONFIG "boost/config/platform/win32.hpp"
|
||||||
|
|
||||||
#elif defined(__BEOS__)
|
#elif defined(__BEOS__)
|
||||||
// BeOS
|
// BeOS
|
||||||
# define BOOST_PLATFORM_CONFIG "boost/config/platform/beos.hpp"
|
# define BOOST_PLATFORM_CONFIG "boost/config/platform/beos.hpp"
|
||||||
|
|
||||||
#elif defined(macintosh) || defined(__APPLE__) || defined(__APPLE_CC__)
|
#elif defined(macintosh) || defined(__APPLE__) || defined(__APPLE_CC__)
|
||||||
// MacOS
|
// MacOS
|
||||||
# define BOOST_PLATFORM_CONFIG "boost/config/platform/macos.hpp"
|
# define BOOST_PLATFORM_CONFIG "boost/config/platform/macos.hpp"
|
||||||
|
|
||||||
#elif defined(__IBMCPP__) || defined(_AIX)
|
#elif defined(__IBMCPP__) || defined(_AIX)
|
||||||
// IBM
|
// IBM
|
||||||
# define BOOST_PLATFORM_CONFIG "boost/config/platform/aix.hpp"
|
# define BOOST_PLATFORM_CONFIG "boost/config/platform/aix.hpp"
|
||||||
|
|
||||||
#elif defined(__amigaos__)
|
#elif defined(__amigaos__)
|
||||||
// AmigaOS
|
// AmigaOS
|
||||||
# define BOOST_PLATFORM_CONFIG "boost/config/platform/amigaos.hpp"
|
# define BOOST_PLATFORM_CONFIG "boost/config/platform/amigaos.hpp"
|
||||||
|
|
||||||
#elif defined(__QNXNTO__)
|
#elif defined(__QNXNTO__)
|
||||||
// QNX:
|
// QNX:
|
||||||
# define BOOST_PLATFORM_CONFIG "boost/config/platform/qnxnto.hpp"
|
# define BOOST_PLATFORM_CONFIG "boost/config/platform/qnxnto.hpp"
|
||||||
|
|
||||||
#elif defined(__VXWORKS__)
|
#elif defined(__VXWORKS__)
|
||||||
// vxWorks:
|
// vxWorks:
|
||||||
# define BOOST_PLATFORM_CONFIG "boost/config/platform/vxworks.hpp"
|
# define BOOST_PLATFORM_CONFIG "boost/config/platform/vxworks.hpp"
|
||||||
|
|
||||||
#elif defined(__SYMBIAN32__)
|
#elif defined(__SYMBIAN32__)
|
||||||
// Symbian:
|
// Symbian:
|
||||||
# define BOOST_PLATFORM_CONFIG "boost/config/platform/symbian.hpp"
|
# define BOOST_PLATFORM_CONFIG "boost/config/platform/symbian.hpp"
|
||||||
|
|
||||||
#elif defined(__VMS)
|
#elif defined(_CRAYC)
|
||||||
// VMS:
|
// Cray:
|
||||||
# define BOOST_PLATFORM_CONFIG "boost/config/platform/vms.hpp"
|
# define BOOST_PLATFORM_CONFIG "boost/config/platform/cray.hpp"
|
||||||
#else
|
|
||||||
|
#elif defined(__VMS)
|
||||||
# if defined(unix) \
|
// VMS:
|
||||||
|| defined(__unix) \
|
# define BOOST_PLATFORM_CONFIG "boost/config/platform/vms.hpp"
|
||||||
|| defined(_XOPEN_SOURCE) \
|
#else
|
||||||
|| defined(_POSIX_SOURCE)
|
|
||||||
|
# if defined(unix) \
|
||||||
// generic unix platform:
|
|| defined(__unix) \
|
||||||
|
|| defined(_XOPEN_SOURCE) \
|
||||||
# ifndef BOOST_HAS_UNISTD_H
|
|| defined(_POSIX_SOURCE)
|
||||||
# define BOOST_HAS_UNISTD_H
|
|
||||||
# endif
|
// generic unix platform:
|
||||||
|
|
||||||
# include <boost/config/posix_features.hpp>
|
# ifndef BOOST_HAS_UNISTD_H
|
||||||
|
# define BOOST_HAS_UNISTD_H
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
# if defined (BOOST_ASSERT_CONFIG)
|
# include <boost/config/posix_features.hpp>
|
||||||
// this must come last - generate an error if we don't
|
|
||||||
// recognise the platform:
|
# endif
|
||||||
# error "Unknown platform - please configure and report the results to boost.org"
|
|
||||||
# endif
|
# if defined (BOOST_ASSERT_CONFIG)
|
||||||
|
// this must come last - generate an error if we don't
|
||||||
#endif
|
// recognise the platform:
|
||||||
|
# error "Unknown platform - please configure and report the results to boost.org"
|
||||||
|
# endif
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,77 +1,85 @@
|
||||||
// Boost compiler configuration selection header file
|
// Boost compiler configuration selection header file
|
||||||
|
|
||||||
// (C) Copyright John Maddock 2001 - 2003.
|
// (C) Copyright John Maddock 2001 - 2003.
|
||||||
// (C) Copyright Jens Maurer 2001 - 2002.
|
// (C) Copyright Jens Maurer 2001 - 2002.
|
||||||
// Use, modification and distribution are subject to the
|
// Use, modification and distribution are subject to the
|
||||||
// Boost Software License, Version 1.0. (See accompanying file
|
// Boost Software License, Version 1.0. (See accompanying file
|
||||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
|
||||||
|
|
||||||
// See http://www.boost.org for most recent version.
|
// See http://www.boost.org for most recent version.
|
||||||
|
|
||||||
// locate which std lib we are using and define BOOST_STDLIB_CONFIG as needed:
|
// locate which std lib we are using and define BOOST_STDLIB_CONFIG as needed:
|
||||||
|
|
||||||
// First include <cstddef> to determine if some version of STLport is in use as the std lib
|
// First include <cstddef> to determine if some version of STLport is in use as the std lib
|
||||||
// (do not rely on this header being included since users can short-circuit this header
|
// (do not rely on this header being included since users can short-circuit this header
|
||||||
// if they know whose std lib they are using.)
|
// if they know whose std lib they are using.)
|
||||||
#include <cstddef>
|
#ifdef __cplusplus
|
||||||
|
# include <cstddef>
|
||||||
#if defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION)
|
#else
|
||||||
// STLPort library; this _must_ come first, otherwise since
|
# include <stddef.h>
|
||||||
// STLport typically sits on top of some other library, we
|
#endif
|
||||||
// can end up detecting that first rather than STLport:
|
|
||||||
# define BOOST_STDLIB_CONFIG "boost/config/stdlib/stlport.hpp"
|
#if defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION)
|
||||||
|
// STLPort library; this _must_ come first, otherwise since
|
||||||
#else
|
// STLport typically sits on top of some other library, we
|
||||||
|
// can end up detecting that first rather than STLport:
|
||||||
// If our std lib was not some version of STLport, then include <utility> as it is about
|
# define BOOST_STDLIB_CONFIG "boost/config/stdlib/stlport.hpp"
|
||||||
// the smallest of the std lib headers that includes real C++ stuff. (Some std libs do not
|
|
||||||
// include their C++-related macros in <cstddef> so this additional include makes sure
|
#else
|
||||||
// we get those definitions)
|
|
||||||
// (again do not rely on this header being included since users can short-circuit this
|
// If our std lib was not some version of STLport, then include <utility> as it is about
|
||||||
// header if they know whose std lib they are using.)
|
// the smallest of the std lib headers that includes real C++ stuff. (Some std libs do not
|
||||||
#include <boost/config/no_tr1/utility.hpp>
|
// include their C++-related macros in <cstddef> so this additional include makes sure
|
||||||
|
// we get those definitions)
|
||||||
#if defined(__LIBCOMO__)
|
// (again do not rely on this header being included since users can short-circuit this
|
||||||
// Comeau STL:
|
// header if they know whose std lib they are using.)
|
||||||
#define BOOST_STDLIB_CONFIG "boost/config/stdlib/libcomo.hpp"
|
#include <boost/config/no_tr1/utility.hpp>
|
||||||
|
|
||||||
#elif defined(__STD_RWCOMPILER_H__) || defined(_RWSTD_VER)
|
#if defined(__LIBCOMO__)
|
||||||
// Rogue Wave library:
|
// Comeau STL:
|
||||||
# define BOOST_STDLIB_CONFIG "boost/config/stdlib/roguewave.hpp"
|
#define BOOST_STDLIB_CONFIG "boost/config/stdlib/libcomo.hpp"
|
||||||
|
|
||||||
#elif defined(__GLIBCPP__) || defined(__GLIBCXX__)
|
#elif defined(__STD_RWCOMPILER_H__) || defined(_RWSTD_VER)
|
||||||
// GNU libstdc++ 3
|
// Rogue Wave library:
|
||||||
# define BOOST_STDLIB_CONFIG "boost/config/stdlib/libstdcpp3.hpp"
|
# define BOOST_STDLIB_CONFIG "boost/config/stdlib/roguewave.hpp"
|
||||||
|
|
||||||
#elif defined(__STL_CONFIG_H)
|
#elif defined(_LIBCPP_VERSION)
|
||||||
// generic SGI STL
|
// libc++
|
||||||
# define BOOST_STDLIB_CONFIG "boost/config/stdlib/sgi.hpp"
|
# define BOOST_STDLIB_CONFIG "boost/config/stdlib/libcpp.hpp"
|
||||||
|
|
||||||
#elif defined(__MSL_CPP__)
|
#elif defined(__GLIBCPP__) || defined(__GLIBCXX__)
|
||||||
// MSL standard lib:
|
// GNU libstdc++ 3
|
||||||
# define BOOST_STDLIB_CONFIG "boost/config/stdlib/msl.hpp"
|
# define BOOST_STDLIB_CONFIG "boost/config/stdlib/libstdcpp3.hpp"
|
||||||
|
|
||||||
#elif defined(__IBMCPP__)
|
#elif defined(__STL_CONFIG_H)
|
||||||
// take the default VACPP std lib
|
// generic SGI STL
|
||||||
# define BOOST_STDLIB_CONFIG "boost/config/stdlib/vacpp.hpp"
|
# define BOOST_STDLIB_CONFIG "boost/config/stdlib/sgi.hpp"
|
||||||
|
|
||||||
#elif defined(MSIPL_COMPILE_H)
|
#elif defined(__MSL_CPP__)
|
||||||
// Modena C++ standard library
|
// MSL standard lib:
|
||||||
# define BOOST_STDLIB_CONFIG "boost/config/stdlib/modena.hpp"
|
# define BOOST_STDLIB_CONFIG "boost/config/stdlib/msl.hpp"
|
||||||
|
|
||||||
#elif (defined(_YVALS) && !defined(__IBMCPP__)) || defined(_CPPLIB_VER)
|
#elif defined(__IBMCPP__)
|
||||||
// Dinkumware Library (this has to appear after any possible replacement libraries):
|
// take the default VACPP std lib
|
||||||
# define BOOST_STDLIB_CONFIG "boost/config/stdlib/dinkumware.hpp"
|
# define BOOST_STDLIB_CONFIG "boost/config/stdlib/vacpp.hpp"
|
||||||
|
|
||||||
#elif defined (BOOST_ASSERT_CONFIG)
|
#elif defined(MSIPL_COMPILE_H)
|
||||||
// this must come last - generate an error if we don't
|
// Modena C++ standard library
|
||||||
// recognise the library:
|
# define BOOST_STDLIB_CONFIG "boost/config/stdlib/modena.hpp"
|
||||||
# error "Unknown standard library - please configure and report the results to boost.org"
|
|
||||||
|
#elif (defined(_YVALS) && !defined(__IBMCPP__)) || defined(_CPPLIB_VER)
|
||||||
#endif
|
// Dinkumware Library (this has to appear after any possible replacement libraries):
|
||||||
|
# define BOOST_STDLIB_CONFIG "boost/config/stdlib/dinkumware.hpp"
|
||||||
#endif
|
|
||||||
|
#elif defined (BOOST_ASSERT_CONFIG)
|
||||||
|
// this must come last - generate an error if we don't
|
||||||
|
// recognise the library:
|
||||||
|
# error "Unknown standard library - please configure and report the results to boost.org"
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,149 +1,145 @@
|
||||||
// (C) Copyright John Maddock 2001 - 2003.
|
// (C) Copyright John Maddock 2001 - 2003.
|
||||||
// (C) Copyright Jens Maurer 2001.
|
// (C) Copyright Jens Maurer 2001.
|
||||||
// (C) Copyright Peter Dimov 2001.
|
// (C) Copyright Peter Dimov 2001.
|
||||||
// (C) Copyright David Abrahams 2002.
|
// (C) Copyright David Abrahams 2002.
|
||||||
// (C) Copyright Guillaume Melquiond 2003.
|
// (C) Copyright Guillaume Melquiond 2003.
|
||||||
// Use, modification and distribution are subject to the
|
// Use, modification and distribution are subject to the
|
||||||
// Boost Software License, Version 1.0. (See accompanying file
|
// Boost Software License, Version 1.0. (See accompanying file
|
||||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
|
||||||
// See http://www.boost.org for most recent version.
|
// See http://www.boost.org for most recent version.
|
||||||
|
|
||||||
// Dinkumware standard library config:
|
// Dinkumware standard library config:
|
||||||
|
|
||||||
#if !defined(_YVALS) && !defined(_CPPLIB_VER)
|
#if !defined(_YVALS) && !defined(_CPPLIB_VER)
|
||||||
#include <boost/config/no_tr1/utility.hpp>
|
#include <boost/config/no_tr1/utility.hpp>
|
||||||
#if !defined(_YVALS) && !defined(_CPPLIB_VER)
|
#if !defined(_YVALS) && !defined(_CPPLIB_VER)
|
||||||
#error This is not the Dinkumware lib!
|
#error This is not the Dinkumware lib!
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
#if defined(_CPPLIB_VER) && (_CPPLIB_VER >= 306)
|
#if defined(_CPPLIB_VER) && (_CPPLIB_VER >= 306)
|
||||||
// full dinkumware 3.06 and above
|
// full dinkumware 3.06 and above
|
||||||
// fully conforming provided the compiler supports it:
|
// fully conforming provided the compiler supports it:
|
||||||
# if !(defined(_GLOBAL_USING) && (_GLOBAL_USING+0 > 0)) && !defined(__BORLANDC__) && !defined(_STD) && !(defined(__ICC) && (__ICC >= 700)) // can be defined in yvals.h
|
# if !(defined(_GLOBAL_USING) && (_GLOBAL_USING+0 > 0)) && !defined(__BORLANDC__) && !defined(_STD) && !(defined(__ICC) && (__ICC >= 700)) // can be defined in yvals.h
|
||||||
# define BOOST_NO_STDC_NAMESPACE
|
# define BOOST_NO_STDC_NAMESPACE
|
||||||
# endif
|
# endif
|
||||||
# if !(defined(_HAS_MEMBER_TEMPLATES_REBIND) && (_HAS_MEMBER_TEMPLATES_REBIND+0 > 0)) && !(defined(_MSC_VER) && (_MSC_VER > 1300)) && defined(BOOST_MSVC)
|
# if !(defined(_HAS_MEMBER_TEMPLATES_REBIND) && (_HAS_MEMBER_TEMPLATES_REBIND+0 > 0)) && !(defined(_MSC_VER) && (_MSC_VER > 1300)) && defined(BOOST_MSVC)
|
||||||
# define BOOST_NO_STD_ALLOCATOR
|
# define BOOST_NO_STD_ALLOCATOR
|
||||||
# endif
|
# endif
|
||||||
# define BOOST_HAS_PARTIAL_STD_ALLOCATOR
|
# define BOOST_HAS_PARTIAL_STD_ALLOCATOR
|
||||||
# if defined(BOOST_MSVC) && (BOOST_MSVC < 1300)
|
# if defined(BOOST_MSVC) && (BOOST_MSVC < 1300)
|
||||||
// if this lib version is set up for vc6 then there is no std::use_facet:
|
// if this lib version is set up for vc6 then there is no std::use_facet:
|
||||||
# define BOOST_NO_STD_USE_FACET
|
# define BOOST_NO_STD_USE_FACET
|
||||||
# define BOOST_HAS_TWO_ARG_USE_FACET
|
# define BOOST_HAS_TWO_ARG_USE_FACET
|
||||||
// C lib functions aren't in namespace std either:
|
// C lib functions aren't in namespace std either:
|
||||||
# define BOOST_NO_STDC_NAMESPACE
|
# define BOOST_NO_STDC_NAMESPACE
|
||||||
// and nor is <exception>
|
// and nor is <exception>
|
||||||
# define BOOST_NO_EXCEPTION_STD_NAMESPACE
|
# define BOOST_NO_EXCEPTION_STD_NAMESPACE
|
||||||
# endif
|
# endif
|
||||||
// There's no numeric_limits<long long> support unless _LONGLONG is defined:
|
// There's no numeric_limits<long long> support unless _LONGLONG is defined:
|
||||||
# if !defined(_LONGLONG) && (_CPPLIB_VER <= 310)
|
# if !defined(_LONGLONG) && (_CPPLIB_VER <= 310)
|
||||||
# define BOOST_NO_MS_INT64_NUMERIC_LIMITS
|
# define BOOST_NO_MS_INT64_NUMERIC_LIMITS
|
||||||
# endif
|
# endif
|
||||||
// 3.06 appears to have (non-sgi versions of) <hash_set> & <hash_map>,
|
// 3.06 appears to have (non-sgi versions of) <hash_set> & <hash_map>,
|
||||||
// and no <slist> at all
|
// and no <slist> at all
|
||||||
#else
|
#else
|
||||||
# define BOOST_MSVC_STD_ITERATOR 1
|
# define BOOST_MSVC_STD_ITERATOR 1
|
||||||
# define BOOST_NO_STD_ITERATOR
|
# define BOOST_NO_STD_ITERATOR
|
||||||
# define BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS
|
# define BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS
|
||||||
# define BOOST_NO_STD_ALLOCATOR
|
# define BOOST_NO_STD_ALLOCATOR
|
||||||
# define BOOST_NO_STDC_NAMESPACE
|
# define BOOST_NO_STDC_NAMESPACE
|
||||||
# define BOOST_NO_STD_USE_FACET
|
# define BOOST_NO_STD_USE_FACET
|
||||||
# define BOOST_NO_STD_OUTPUT_ITERATOR_ASSIGN
|
# define BOOST_NO_STD_OUTPUT_ITERATOR_ASSIGN
|
||||||
# define BOOST_HAS_MACRO_USE_FACET
|
# define BOOST_HAS_MACRO_USE_FACET
|
||||||
# ifndef _CPPLIB_VER
|
# ifndef _CPPLIB_VER
|
||||||
// Updated Dinkum library defines this, and provides
|
// Updated Dinkum library defines this, and provides
|
||||||
// its own min and max definitions, as does MTA version.
|
// its own min and max definitions, as does MTA version.
|
||||||
# ifndef __MTA__
|
# ifndef __MTA__
|
||||||
# define BOOST_NO_STD_MIN_MAX
|
# define BOOST_NO_STD_MIN_MAX
|
||||||
# endif
|
# endif
|
||||||
# define BOOST_NO_MS_INT64_NUMERIC_LIMITS
|
# define BOOST_NO_MS_INT64_NUMERIC_LIMITS
|
||||||
# endif
|
# endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//
|
//
|
||||||
// std extension namespace is stdext for vc7.1 and later,
|
// std extension namespace is stdext for vc7.1 and later,
|
||||||
// the same applies to other compilers that sit on top
|
// the same applies to other compilers that sit on top
|
||||||
// of vc7.1 (Intel and Comeau):
|
// of vc7.1 (Intel and Comeau):
|
||||||
//
|
//
|
||||||
#if defined(_MSC_VER) && (_MSC_VER >= 1310) && !defined(__BORLANDC__)
|
#if defined(_MSC_VER) && (_MSC_VER >= 1310) && !defined(__BORLANDC__)
|
||||||
# define BOOST_STD_EXTENSION_NAMESPACE stdext
|
# define BOOST_STD_EXTENSION_NAMESPACE stdext
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
#if (defined(_MSC_VER) && (_MSC_VER <= 1300) && !defined(__BORLANDC__)) || !defined(_CPPLIB_VER) || (_CPPLIB_VER < 306)
|
#if (defined(_MSC_VER) && (_MSC_VER <= 1300) && !defined(__BORLANDC__)) || !defined(_CPPLIB_VER) || (_CPPLIB_VER < 306)
|
||||||
// if we're using a dinkum lib that's
|
// if we're using a dinkum lib that's
|
||||||
// been configured for VC6/7 then there is
|
// been configured for VC6/7 then there is
|
||||||
// no iterator traits (true even for icl)
|
// no iterator traits (true even for icl)
|
||||||
# define BOOST_NO_STD_ITERATOR_TRAITS
|
# define BOOST_NO_STD_ITERATOR_TRAITS
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(__ICL) && (__ICL < 800) && defined(_CPPLIB_VER) && (_CPPLIB_VER <= 310)
|
#if defined(__ICL) && (__ICL < 800) && defined(_CPPLIB_VER) && (_CPPLIB_VER <= 310)
|
||||||
// Intel C++ chokes over any non-trivial use of <locale>
|
// Intel C++ chokes over any non-trivial use of <locale>
|
||||||
// this may be an overly restrictive define, but regex fails without it:
|
// this may be an overly restrictive define, but regex fails without it:
|
||||||
# define BOOST_NO_STD_LOCALE
|
# define BOOST_NO_STD_LOCALE
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include <typeinfo>
|
#include <typeinfo>
|
||||||
#if !_HAS_EXCEPTIONS
|
#if ( (!_HAS_EXCEPTIONS && !defined(__ghs__)) || (!_HAS_NAMESPACE && defined(__ghs__)) )
|
||||||
# define BOOST_NO_STD_TYPEINFO
|
# define BOOST_NO_STD_TYPEINFO
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// C++0x headers implemented in 520 (as shipped by Microsoft)
|
// C++0x headers implemented in 520 (as shipped by Microsoft)
|
||||||
//
|
//
|
||||||
#if !defined(_CPPLIB_VER) || _CPPLIB_VER < 520
|
#if !defined(_CPPLIB_VER) || _CPPLIB_VER < 520
|
||||||
# define BOOST_NO_0X_HDR_ARRAY
|
# define BOOST_NO_0X_HDR_ARRAY
|
||||||
# define BOOST_NO_0X_HDR_CODECVT
|
# define BOOST_NO_0X_HDR_CODECVT
|
||||||
# define BOOST_NO_0X_HDR_FORWARD_LIST
|
# define BOOST_NO_0X_HDR_FORWARD_LIST
|
||||||
# define BOOST_NO_0X_HDR_INITIALIZER_LIST
|
# define BOOST_NO_0X_HDR_INITIALIZER_LIST
|
||||||
# define BOOST_NO_0X_HDR_RANDOM
|
# define BOOST_NO_0X_HDR_RANDOM
|
||||||
# define BOOST_NO_0X_HDR_REGEX
|
# define BOOST_NO_0X_HDR_REGEX
|
||||||
# define BOOST_NO_0X_HDR_SYSTEM_ERROR
|
# define BOOST_NO_0X_HDR_SYSTEM_ERROR
|
||||||
# define BOOST_NO_0X_HDR_TYPE_TRAITS
|
# define BOOST_NO_STD_UNORDERED // deprecated; see following
|
||||||
# define BOOST_NO_STD_UNORDERED // deprecated; see following
|
# define BOOST_NO_0X_HDR_UNORDERED_MAP
|
||||||
# define BOOST_NO_0X_HDR_UNORDERED_MAP
|
# define BOOST_NO_0X_HDR_UNORDERED_SET
|
||||||
# define BOOST_NO_0X_HDR_UNORDERED_SET
|
# define BOOST_NO_0X_HDR_TUPLE
|
||||||
# define BOOST_NO_0X_HDR_TUPLE
|
# define BOOST_NO_0X_HDR_TYPEINDEX
|
||||||
# define BOOST_NO_0X_HDR_TYPEINDEX
|
# define BOOST_NO_NUMERIC_LIMITS_LOWEST
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if !defined(_HAS_TR1_IMPORTS) && !defined(BOOST_NO_0X_HDR_TUPLE)
|
#if (!defined(_HAS_TR1_IMPORTS) || (_HAS_TR1_IMPORTS+0 == 0)) && !defined(BOOST_NO_0X_HDR_TUPLE)
|
||||||
# define BOOST_NO_0X_HDR_TUPLE
|
# define BOOST_NO_0X_HDR_TUPLE
|
||||||
#endif
|
#endif
|
||||||
|
//
|
||||||
// C++0x headers not yet implemented
|
// C++0x headers not yet (fully) implemented:
|
||||||
//
|
//
|
||||||
# define BOOST_NO_0X_HDR_CHRONO
|
# define BOOST_NO_0X_HDR_TYPE_TRAITS
|
||||||
# define BOOST_NO_0X_HDR_CONCEPTS
|
# define BOOST_NO_0X_HDR_CHRONO
|
||||||
# define BOOST_NO_0X_HDR_CONDITION_VARIABLE
|
# define BOOST_NO_0X_HDR_CONDITION_VARIABLE
|
||||||
# define BOOST_NO_0X_HDR_CONTAINER_CONCEPTS
|
# define BOOST_NO_0X_HDR_FUTURE
|
||||||
# define BOOST_NO_0X_HDR_FUTURE
|
# define BOOST_NO_0X_HDR_MUTEX
|
||||||
# define BOOST_NO_0X_HDR_ITERATOR_CONCEPTS
|
# define BOOST_NO_0X_HDR_RATIO
|
||||||
# define BOOST_NO_0X_HDR_MEMORY_CONCEPTS
|
# define BOOST_NO_0X_HDR_THREAD
|
||||||
# define BOOST_NO_0X_HDR_MUTEX
|
|
||||||
# define BOOST_NO_0X_HDR_RATIO
|
#ifdef _CPPLIB_VER
|
||||||
# define BOOST_NO_0X_HDR_THREAD
|
# define BOOST_DINKUMWARE_STDLIB _CPPLIB_VER
|
||||||
# define BOOST_NO_NUMERIC_LIMITS_LOWEST
|
#else
|
||||||
|
# define BOOST_DINKUMWARE_STDLIB 1
|
||||||
#ifdef _CPPLIB_VER
|
#endif
|
||||||
# define BOOST_DINKUMWARE_STDLIB _CPPLIB_VER
|
|
||||||
#else
|
#ifdef _CPPLIB_VER
|
||||||
# define BOOST_DINKUMWARE_STDLIB 1
|
# define BOOST_STDLIB "Dinkumware standard library version " BOOST_STRINGIZE(_CPPLIB_VER)
|
||||||
#endif
|
#else
|
||||||
|
# define BOOST_STDLIB "Dinkumware standard library version 1.x"
|
||||||
#ifdef _CPPLIB_VER
|
#endif
|
||||||
# define BOOST_STDLIB "Dinkumware standard library version " BOOST_STRINGIZE(_CPPLIB_VER)
|
|
||||||
#else
|
|
||||||
# define BOOST_STDLIB "Dinkumware standard library version 1.x"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,73 +1,69 @@
|
||||||
// (C) Copyright John Maddock 2002 - 2003.
|
// (C) Copyright John Maddock 2002 - 2003.
|
||||||
// (C) Copyright Jens Maurer 2002 - 2003.
|
// (C) Copyright Jens Maurer 2002 - 2003.
|
||||||
// (C) Copyright Beman Dawes 2002 - 2003.
|
// (C) Copyright Beman Dawes 2002 - 2003.
|
||||||
// Use, modification and distribution are subject to the
|
// Use, modification and distribution are subject to the
|
||||||
// Boost Software License, Version 1.0. (See accompanying file
|
// Boost Software License, Version 1.0. (See accompanying file
|
||||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
|
||||||
// See http://www.boost.org for most recent version.
|
// See http://www.boost.org for most recent version.
|
||||||
|
|
||||||
// Comeau STL:
|
// Comeau STL:
|
||||||
|
|
||||||
#if !defined(__LIBCOMO__)
|
#if !defined(__LIBCOMO__)
|
||||||
# include <boost/config/no_tr1/utility.hpp>
|
# include <boost/config/no_tr1/utility.hpp>
|
||||||
# if !defined(__LIBCOMO__)
|
# if !defined(__LIBCOMO__)
|
||||||
# error "This is not the Comeau STL!"
|
# error "This is not the Comeau STL!"
|
||||||
# endif
|
# endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//
|
//
|
||||||
// std::streambuf<wchar_t> is non-standard
|
// std::streambuf<wchar_t> is non-standard
|
||||||
// NOTE: versions of libcomo prior to beta28 have octal version numbering,
|
// NOTE: versions of libcomo prior to beta28 have octal version numbering,
|
||||||
// e.g. version 25 is 21 (dec)
|
// e.g. version 25 is 21 (dec)
|
||||||
#if __LIBCOMO_VERSION__ <= 22
|
#if __LIBCOMO_VERSION__ <= 22
|
||||||
# define BOOST_NO_STD_WSTREAMBUF
|
# define BOOST_NO_STD_WSTREAMBUF
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if (__LIBCOMO_VERSION__ <= 31) && defined(_WIN32)
|
#if (__LIBCOMO_VERSION__ <= 31) && defined(_WIN32)
|
||||||
#define BOOST_NO_SWPRINTF
|
#define BOOST_NO_SWPRINTF
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if __LIBCOMO_VERSION__ >= 31
|
#if __LIBCOMO_VERSION__ >= 31
|
||||||
# define BOOST_HAS_HASH
|
# define BOOST_HAS_HASH
|
||||||
# define BOOST_HAS_SLIST
|
# define BOOST_HAS_SLIST
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// C++0x headers not yet implemented
|
// C++0x headers not yet implemented
|
||||||
//
|
//
|
||||||
# define BOOST_NO_0X_HDR_ARRAY
|
# define BOOST_NO_0X_HDR_ARRAY
|
||||||
# define BOOST_NO_0X_HDR_CHRONO
|
# define BOOST_NO_0X_HDR_CHRONO
|
||||||
# define BOOST_NO_0X_HDR_CODECVT
|
# define BOOST_NO_0X_HDR_CODECVT
|
||||||
# define BOOST_NO_0X_HDR_CONCEPTS
|
# define BOOST_NO_0X_HDR_CONDITION_VARIABLE
|
||||||
# define BOOST_NO_0X_HDR_CONDITION_VARIABLE
|
# define BOOST_NO_0X_HDR_FORWARD_LIST
|
||||||
# define BOOST_NO_0X_HDR_CONTAINER_CONCEPTS
|
# define BOOST_NO_0X_HDR_FUTURE
|
||||||
# define BOOST_NO_0X_HDR_FORWARD_LIST
|
# define BOOST_NO_0X_HDR_INITIALIZER_LIST
|
||||||
# define BOOST_NO_0X_HDR_FUTURE
|
# define BOOST_NO_0X_HDR_MUTEX
|
||||||
# define BOOST_NO_0X_HDR_INITIALIZER_LIST
|
# define BOOST_NO_0X_HDR_RANDOM
|
||||||
# define BOOST_NO_0X_HDR_ITERATOR_CONCEPTS
|
# define BOOST_NO_0X_HDR_RATIO
|
||||||
# define BOOST_NO_0X_HDR_MEMORY_CONCEPTS
|
# define BOOST_NO_0X_HDR_REGEX
|
||||||
# define BOOST_NO_0X_HDR_MUTEX
|
# define BOOST_NO_0X_HDR_SYSTEM_ERROR
|
||||||
# define BOOST_NO_0X_HDR_RANDOM
|
# define BOOST_NO_0X_HDR_THREAD
|
||||||
# define BOOST_NO_0X_HDR_RATIO
|
# define BOOST_NO_0X_HDR_TUPLE
|
||||||
# define BOOST_NO_0X_HDR_REGEX
|
# define BOOST_NO_0X_HDR_TYPE_TRAITS
|
||||||
# define BOOST_NO_0X_HDR_SYSTEM_ERROR
|
# define BOOST_NO_0X_HDR_TYPEINDEX
|
||||||
# define BOOST_NO_0X_HDR_THREAD
|
# define BOOST_NO_STD_UNORDERED // deprecated; see following
|
||||||
# define BOOST_NO_0X_HDR_TUPLE
|
# define BOOST_NO_0X_HDR_UNORDERED_MAP
|
||||||
# define BOOST_NO_0X_HDR_TYPE_TRAITS
|
# define BOOST_NO_0X_HDR_UNORDERED_SET
|
||||||
# define BOOST_NO_0X_HDR_TYPEINDEX
|
# define BOOST_NO_NUMERIC_LIMITS_LOWEST
|
||||||
# define BOOST_NO_STD_UNORDERED // deprecated; see following
|
|
||||||
# define BOOST_NO_0X_HDR_UNORDERED_MAP
|
//
|
||||||
# define BOOST_NO_0X_HDR_UNORDERED_SET
|
// Intrinsic type_traits support.
|
||||||
# define BOOST_NO_NUMERIC_LIMITS_LOWEST
|
// The SGI STL has it's own __type_traits class, which
|
||||||
|
// has intrinsic compiler support with SGI's compilers.
|
||||||
//
|
// Whatever map SGI style type traits to boost equivalents:
|
||||||
// Intrinsic type_traits support.
|
//
|
||||||
// The SGI STL has it's own __type_traits class, which
|
#define BOOST_HAS_SGI_TYPE_TRAITS
|
||||||
// has intrinsic compiler support with SGI's compilers.
|
|
||||||
// Whatever map SGI style type traits to boost equivalents:
|
#define BOOST_STDLIB "Comeau standard library " BOOST_STRINGIZE(__LIBCOMO_VERSION__)
|
||||||
//
|
|
||||||
#define BOOST_HAS_SGI_TYPE_TRAITS
|
|
||||||
|
|
||||||
#define BOOST_STDLIB "Comeau standard library " BOOST_STRINGIZE(__LIBCOMO_VERSION__)
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,36 @@
|
||||||
|
// (C) Copyright Christopher Jefferson 2011.
|
||||||
|
// Use, modification and distribution are subject to the
|
||||||
|
// Boost Software License, Version 1.0. (See accompanying file
|
||||||
|
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
|
||||||
|
// See http://www.boost.org for most recent version.
|
||||||
|
|
||||||
|
// config for libc++
|
||||||
|
// Might need more in here later.
|
||||||
|
|
||||||
|
#if !defined(_LIBCPP_VERSION)
|
||||||
|
# include <ciso646>
|
||||||
|
# if !defined(_LIBCPP_VERSION)
|
||||||
|
# error "This is not libc++!"
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define BOOST_STDLIB "libc++ version " BOOST_STRINGIZE(_LIBCPP_VERSION)
|
||||||
|
|
||||||
|
#define BOOST_HAS_THREADS
|
||||||
|
|
||||||
|
#ifdef _LIBCPP_HAS_NO_VARIADICS
|
||||||
|
# define BOOST_NO_0X_HDR_TUPLE
|
||||||
|
#endif
|
||||||
|
|
||||||
|
//
|
||||||
|
// These appear to be unusable/incomplete so far:
|
||||||
|
//
|
||||||
|
# define BOOST_NO_0X_HDR_CHRONO
|
||||||
|
# define BOOST_NO_0X_HDR_FUTURE
|
||||||
|
# define BOOST_NO_0X_HDR_TYPE_TRAITS
|
||||||
|
|
||||||
|
// libc++ uses a non-standard messages_base
|
||||||
|
#define BOOST_NO_STD_MESSAGES
|
||||||
|
|
||||||
|
// --- end ---
|
|
@ -1,134 +1,155 @@
|
||||||
// (C) Copyright John Maddock 2001.
|
// (C) Copyright John Maddock 2001.
|
||||||
// (C) Copyright Jens Maurer 2001.
|
// (C) Copyright Jens Maurer 2001.
|
||||||
// Use, modification and distribution are subject to the
|
// Use, modification and distribution are subject to the
|
||||||
// Boost Software License, Version 1.0. (See accompanying file
|
// Boost Software License, Version 1.0. (See accompanying file
|
||||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
|
||||||
// See http://www.boost.org for most recent version.
|
// See http://www.boost.org for most recent version.
|
||||||
|
|
||||||
// config for libstdc++ v3
|
// config for libstdc++ v3
|
||||||
// not much to go in here:
|
// not much to go in here:
|
||||||
|
|
||||||
#ifdef __GLIBCXX__
|
#define BOOST_GNU_STDLIB 1
|
||||||
#define BOOST_STDLIB "GNU libstdc++ version " BOOST_STRINGIZE(__GLIBCXX__)
|
|
||||||
#else
|
#ifdef __GLIBCXX__
|
||||||
#define BOOST_STDLIB "GNU libstdc++ version " BOOST_STRINGIZE(__GLIBCPP__)
|
#define BOOST_STDLIB "GNU libstdc++ version " BOOST_STRINGIZE(__GLIBCXX__)
|
||||||
#endif
|
#else
|
||||||
|
#define BOOST_STDLIB "GNU libstdc++ version " BOOST_STRINGIZE(__GLIBCPP__)
|
||||||
#if !defined(_GLIBCPP_USE_WCHAR_T) && !defined(_GLIBCXX_USE_WCHAR_T)
|
#endif
|
||||||
# define BOOST_NO_CWCHAR
|
|
||||||
# define BOOST_NO_CWCTYPE
|
#if !defined(_GLIBCPP_USE_WCHAR_T) && !defined(_GLIBCXX_USE_WCHAR_T)
|
||||||
# define BOOST_NO_STD_WSTRING
|
# define BOOST_NO_CWCHAR
|
||||||
# define BOOST_NO_STD_WSTREAMBUF
|
# define BOOST_NO_CWCTYPE
|
||||||
#endif
|
# define BOOST_NO_STD_WSTRING
|
||||||
|
# define BOOST_NO_STD_WSTREAMBUF
|
||||||
#if defined(__osf__) && !defined(_REENTRANT) \
|
#endif
|
||||||
&& ( defined(_GLIBCXX_HAVE_GTHR_DEFAULT) || defined(_GLIBCPP_HAVE_GTHR_DEFAULT) )
|
|
||||||
// GCC 3 on Tru64 forces the definition of _REENTRANT when any std lib header
|
#if defined(__osf__) && !defined(_REENTRANT) \
|
||||||
// file is included, therefore for consistency we define it here as well.
|
&& ( defined(_GLIBCXX_HAVE_GTHR_DEFAULT) || defined(_GLIBCPP_HAVE_GTHR_DEFAULT) )
|
||||||
# define _REENTRANT
|
// GCC 3 on Tru64 forces the definition of _REENTRANT when any std lib header
|
||||||
#endif
|
// file is included, therefore for consistency we define it here as well.
|
||||||
|
# define _REENTRANT
|
||||||
#ifdef __GLIBCXX__ // gcc 3.4 and greater:
|
#endif
|
||||||
# if defined(_GLIBCXX_HAVE_GTHR_DEFAULT) \
|
|
||||||
|| defined(_GLIBCXX__PTHREADS)
|
#ifdef __GLIBCXX__ // gcc 3.4 and greater:
|
||||||
//
|
# if defined(_GLIBCXX_HAVE_GTHR_DEFAULT) \
|
||||||
// If the std lib has thread support turned on, then turn it on in Boost
|
|| defined(_GLIBCXX__PTHREADS) \
|
||||||
// as well. We do this because some gcc-3.4 std lib headers define _REENTANT
|
|| defined(_GLIBCXX_HAS_GTHREADS) \
|
||||||
// while others do not...
|
|| defined(_WIN32)
|
||||||
//
|
//
|
||||||
# define BOOST_HAS_THREADS
|
// If the std lib has thread support turned on, then turn it on in Boost
|
||||||
# else
|
// as well. We do this because some gcc-3.4 std lib headers define _REENTANT
|
||||||
# define BOOST_DISABLE_THREADS
|
// while others do not...
|
||||||
# endif
|
//
|
||||||
#elif defined(__GLIBCPP__) \
|
# define BOOST_HAS_THREADS
|
||||||
&& !defined(_GLIBCPP_HAVE_GTHR_DEFAULT) \
|
# else
|
||||||
&& !defined(_GLIBCPP__PTHREADS)
|
# define BOOST_DISABLE_THREADS
|
||||||
// disable thread support if the std lib was built single threaded:
|
# endif
|
||||||
# define BOOST_DISABLE_THREADS
|
#elif defined(__GLIBCPP__) \
|
||||||
#endif
|
&& !defined(_GLIBCPP_HAVE_GTHR_DEFAULT) \
|
||||||
|
&& !defined(_GLIBCPP__PTHREADS)
|
||||||
#if (defined(linux) || defined(__linux) || defined(__linux__)) && defined(__arm__) && defined(_GLIBCPP_HAVE_GTHR_DEFAULT)
|
// disable thread support if the std lib was built single threaded:
|
||||||
// linux on arm apparently doesn't define _REENTRANT
|
# define BOOST_DISABLE_THREADS
|
||||||
// so just turn on threading support whenever the std lib is thread safe:
|
#endif
|
||||||
# define BOOST_HAS_THREADS
|
|
||||||
#endif
|
#if (defined(linux) || defined(__linux) || defined(__linux__)) && defined(__arm__) && defined(_GLIBCPP_HAVE_GTHR_DEFAULT)
|
||||||
|
// linux on arm apparently doesn't define _REENTRANT
|
||||||
|
// so just turn on threading support whenever the std lib is thread safe:
|
||||||
#if !defined(_GLIBCPP_USE_LONG_LONG) \
|
# define BOOST_HAS_THREADS
|
||||||
&& !defined(_GLIBCXX_USE_LONG_LONG)\
|
#endif
|
||||||
&& defined(BOOST_HAS_LONG_LONG)
|
|
||||||
// May have been set by compiler/*.hpp, but "long long" without library
|
#if !defined(_GLIBCPP_USE_LONG_LONG) \
|
||||||
// support is useless.
|
&& !defined(_GLIBCXX_USE_LONG_LONG)\
|
||||||
# undef BOOST_HAS_LONG_LONG
|
&& defined(BOOST_HAS_LONG_LONG)
|
||||||
#endif
|
// May have been set by compiler/*.hpp, but "long long" without library
|
||||||
|
// support is useless.
|
||||||
#if defined(__GLIBCXX__) || (defined(__GLIBCPP__) && __GLIBCPP__>=20020514) // GCC >= 3.1.0
|
# undef BOOST_HAS_LONG_LONG
|
||||||
# define BOOST_STD_EXTENSION_NAMESPACE __gnu_cxx
|
#endif
|
||||||
# define BOOST_HAS_SLIST
|
|
||||||
# define BOOST_HAS_HASH
|
// Apple doesn't seem to reliably defined a *unix* macro
|
||||||
# define BOOST_SLIST_HEADER <ext/slist>
|
#if !defined(CYGWIN) && ( defined(__unix__) \
|
||||||
# if !defined(__GNUC__) || __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 3)
|
|| defined(__unix) \
|
||||||
# define BOOST_HASH_SET_HEADER <ext/hash_set>
|
|| defined(unix) \
|
||||||
# define BOOST_HASH_MAP_HEADER <ext/hash_map>
|
|| defined(__APPLE__) \
|
||||||
# else
|
|| defined(__APPLE) \
|
||||||
# define BOOST_HASH_SET_HEADER <backward/hash_set>
|
|| defined(APPLE))
|
||||||
# define BOOST_HASH_MAP_HEADER <backward/hash_map>
|
# include <unistd.h>
|
||||||
# endif
|
#endif
|
||||||
#endif
|
|
||||||
|
#if defined(__GLIBCXX__) || (defined(__GLIBCPP__) && __GLIBCPP__>=20020514) // GCC >= 3.1.0
|
||||||
// stdlibc++ C++0x support is detected via __GNUC__, __GNUC_MINOR__, and possibly
|
# define BOOST_STD_EXTENSION_NAMESPACE __gnu_cxx
|
||||||
// __GNUC_PATCHLEVEL__ at the suggestion of Jonathan Wakely, one of the stdlibc++
|
# define BOOST_HAS_SLIST
|
||||||
// developers. He also commented:
|
# define BOOST_HAS_HASH
|
||||||
//
|
# define BOOST_SLIST_HEADER <ext/slist>
|
||||||
// "I'm not sure how useful __GLIBCXX__ is for your purposes, for instance in
|
# if !defined(__GNUC__) || __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 3)
|
||||||
// GCC 4.2.4 it is set to 20080519 but in GCC 4.3.0 it is set to 20080305.
|
# define BOOST_HASH_SET_HEADER <ext/hash_set>
|
||||||
// Although 4.3.0 was released earlier than 4.2.4, it has better C++0x support
|
# define BOOST_HASH_MAP_HEADER <ext/hash_map>
|
||||||
// than any release in the 4.2 series."
|
# else
|
||||||
//
|
# define BOOST_HASH_SET_HEADER <backward/hash_set>
|
||||||
// Another resource for understanding stdlibc++ features is:
|
# define BOOST_HASH_MAP_HEADER <backward/hash_map>
|
||||||
// http://gcc.gnu.org/onlinedocs/libstdc++/manual/status.html#manual.intro.status.standard.200x
|
# endif
|
||||||
|
#endif
|
||||||
// C++0x headers in GCC 4.3.0 and later
|
|
||||||
//
|
// stdlibc++ C++0x support is detected via __GNUC__, __GNUC_MINOR__, and possibly
|
||||||
#if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 3) || !defined(__GXX_EXPERIMENTAL_CXX0X__)
|
// __GNUC_PATCHLEVEL__ at the suggestion of Jonathan Wakely, one of the stdlibc++
|
||||||
# define BOOST_NO_0X_HDR_ARRAY
|
// developers. He also commented:
|
||||||
# define BOOST_NO_0X_HDR_RANDOM
|
//
|
||||||
# define BOOST_NO_0X_HDR_REGEX
|
// "I'm not sure how useful __GLIBCXX__ is for your purposes, for instance in
|
||||||
# define BOOST_NO_0X_HDR_TUPLE
|
// GCC 4.2.4 it is set to 20080519 but in GCC 4.3.0 it is set to 20080305.
|
||||||
# define BOOST_NO_0X_HDR_TYPE_TRAITS
|
// Although 4.3.0 was released earlier than 4.2.4, it has better C++0x support
|
||||||
# define BOOST_NO_STD_UNORDERED // deprecated; see following
|
// than any release in the 4.2 series."
|
||||||
# define BOOST_NO_0X_HDR_UNORDERED_MAP
|
//
|
||||||
# define BOOST_NO_0X_HDR_UNORDERED_SET
|
// Another resource for understanding stdlibc++ features is:
|
||||||
#endif
|
// http://gcc.gnu.org/onlinedocs/libstdc++/manual/status.html#manual.intro.status.standard.200x
|
||||||
|
|
||||||
// C++0x headers in GCC 4.4.0 and later
|
// C++0x headers in GCC 4.3.0 and later
|
||||||
//
|
//
|
||||||
#if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 4) || !defined(__GXX_EXPERIMENTAL_CXX0X__)
|
#if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 3) || !defined(__GXX_EXPERIMENTAL_CXX0X__)
|
||||||
# define BOOST_NO_0X_HDR_CHRONO
|
# define BOOST_NO_0X_HDR_ARRAY
|
||||||
# define BOOST_NO_0X_HDR_CONDITION_VARIABLE
|
# define BOOST_NO_0X_HDR_REGEX
|
||||||
# define BOOST_NO_0X_HDR_FORWARD_LIST
|
# define BOOST_NO_0X_HDR_TUPLE
|
||||||
# define BOOST_NO_0X_HDR_INITIALIZER_LIST
|
# define BOOST_NO_STD_UNORDERED // deprecated; see following
|
||||||
# define BOOST_NO_0X_HDR_MUTEX
|
# define BOOST_NO_0X_HDR_UNORDERED_MAP
|
||||||
# define BOOST_NO_0X_HDR_RATIO
|
# define BOOST_NO_0X_HDR_UNORDERED_SET
|
||||||
# define BOOST_NO_0X_HDR_SYSTEM_ERROR
|
#endif
|
||||||
# define BOOST_NO_0X_HDR_THREAD
|
|
||||||
#endif
|
// C++0x headers in GCC 4.4.0 and later
|
||||||
|
//
|
||||||
// C++0x features in GCC 4.5.0 and later
|
#if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 4) || !defined(__GXX_EXPERIMENTAL_CXX0X__)
|
||||||
//
|
# define BOOST_NO_0X_HDR_CHRONO
|
||||||
#if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 5) || !defined(__GXX_EXPERIMENTAL_CXX0X__)
|
# define BOOST_NO_0X_HDR_CONDITION_VARIABLE
|
||||||
# define BOOST_NO_NUMERIC_LIMITS_LOWEST
|
# define BOOST_NO_0X_HDR_FORWARD_LIST
|
||||||
#endif
|
# define BOOST_NO_0X_HDR_INITIALIZER_LIST
|
||||||
|
# define BOOST_NO_0X_HDR_MUTEX
|
||||||
// C++0x headers not yet implemented
|
# define BOOST_NO_0X_HDR_RATIO
|
||||||
//
|
# define BOOST_NO_0X_HDR_SYSTEM_ERROR
|
||||||
# define BOOST_NO_0X_HDR_CODECVT
|
#else
|
||||||
# define BOOST_NO_0X_HDR_CONCEPTS
|
# define BOOST_HAS_TR1_COMPLEX_INVERSE_TRIG
|
||||||
# define BOOST_NO_0X_HDR_CONTAINER_CONCEPTS
|
# define BOOST_HAS_TR1_COMPLEX_OVERLOADS
|
||||||
# define BOOST_NO_0X_HDR_FUTURE
|
#endif
|
||||||
# define BOOST_NO_0X_HDR_ITERATOR_CONCEPTS
|
|
||||||
# define BOOST_NO_0X_HDR_MEMORY_CONCEPTS
|
#if (!defined(_GLIBCXX_HAS_GTHREADS) || !defined(_GLIBCXX_USE_C99_STDINT_TR1)) && (!defined(BOOST_NO_0X_HDR_CONDITION_VARIABLE) || !defined(BOOST_NO_0X_HDR_MUTEX))
|
||||||
# define BOOST_NO_0X_HDR_TYPEINDEX
|
# define BOOST_NO_0X_HDR_CONDITION_VARIABLE
|
||||||
|
# define BOOST_NO_0X_HDR_MUTEX
|
||||||
// --- end ---
|
#endif
|
||||||
|
|
||||||
|
// C++0x features in GCC 4.5.0 and later
|
||||||
|
//
|
||||||
|
#if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 5) || !defined(__GXX_EXPERIMENTAL_CXX0X__)
|
||||||
|
# define BOOST_NO_NUMERIC_LIMITS_LOWEST
|
||||||
|
# define BOOST_NO_0X_HDR_FUTURE
|
||||||
|
# define BOOST_NO_0X_HDR_RANDOM
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// C++0x features in GCC 4.5.0 and later
|
||||||
|
//
|
||||||
|
#if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 6) || !defined(__GXX_EXPERIMENTAL_CXX0X__)
|
||||||
|
# define BOOST_NO_0X_HDR_TYPEINDEX
|
||||||
|
#endif
|
||||||
|
// C++0x headers not yet (fully!) implemented
|
||||||
|
//
|
||||||
|
# define BOOST_NO_0X_HDR_THREAD
|
||||||
|
# define BOOST_NO_0X_HDR_TYPE_TRAITS
|
||||||
|
# define BOOST_NO_0X_HDR_CODECVT
|
||||||
|
|
||||||
|
// --- end ---
|
||||||
|
|
|
@ -1,57 +1,53 @@
|
||||||
// (C) Copyright Jens Maurer 2001.
|
// (C) Copyright Jens Maurer 2001.
|
||||||
// Use, modification and distribution are subject to the
|
// Use, modification and distribution are subject to the
|
||||||
// Boost Software License, Version 1.0. (See accompanying file
|
// Boost Software License, Version 1.0. (See accompanying file
|
||||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
|
||||||
// See http://www.boost.org for most recent version.
|
// See http://www.boost.org for most recent version.
|
||||||
|
|
||||||
// Modena C++ standard library (comes with KAI C++)
|
// Modena C++ standard library (comes with KAI C++)
|
||||||
|
|
||||||
#if !defined(MSIPL_COMPILE_H)
|
#if !defined(MSIPL_COMPILE_H)
|
||||||
# include <boost/config/no_tr1/utility.hpp>
|
# include <boost/config/no_tr1/utility.hpp>
|
||||||
# if !defined(__MSIPL_COMPILE_H)
|
# if !defined(__MSIPL_COMPILE_H)
|
||||||
# error "This is not the Modena C++ library!"
|
# error "This is not the Modena C++ library!"
|
||||||
# endif
|
# endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef MSIPL_NL_TYPES
|
#ifndef MSIPL_NL_TYPES
|
||||||
#define BOOST_NO_STD_MESSAGES
|
#define BOOST_NO_STD_MESSAGES
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef MSIPL_WCHART
|
#ifndef MSIPL_WCHART
|
||||||
#define BOOST_NO_STD_WSTRING
|
#define BOOST_NO_STD_WSTRING
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// C++0x headers not yet implemented
|
// C++0x headers not yet implemented
|
||||||
//
|
//
|
||||||
# define BOOST_NO_0X_HDR_ARRAY
|
# define BOOST_NO_0X_HDR_ARRAY
|
||||||
# define BOOST_NO_0X_HDR_CHRONO
|
# define BOOST_NO_0X_HDR_CHRONO
|
||||||
# define BOOST_NO_0X_HDR_CODECVT
|
# define BOOST_NO_0X_HDR_CODECVT
|
||||||
# define BOOST_NO_0X_HDR_CONCEPTS
|
# define BOOST_NO_0X_HDR_CONDITION_VARIABLE
|
||||||
# define BOOST_NO_0X_HDR_CONDITION_VARIABLE
|
# define BOOST_NO_0X_HDR_FORWARD_LIST
|
||||||
# define BOOST_NO_0X_HDR_CONTAINER_CONCEPTS
|
# define BOOST_NO_0X_HDR_FUTURE
|
||||||
# define BOOST_NO_0X_HDR_FORWARD_LIST
|
# define BOOST_NO_0X_HDR_INITIALIZER_LIST
|
||||||
# define BOOST_NO_0X_HDR_FUTURE
|
# define BOOST_NO_0X_HDR_MUTEX
|
||||||
# define BOOST_NO_0X_HDR_INITIALIZER_LIST
|
# define BOOST_NO_0X_HDR_RANDOM
|
||||||
# define BOOST_NO_0X_HDR_ITERATOR_CONCEPTS
|
# define BOOST_NO_0X_HDR_RATIO
|
||||||
# define BOOST_NO_0X_HDR_MEMORY_CONCEPTS
|
# define BOOST_NO_0X_HDR_REGEX
|
||||||
# define BOOST_NO_0X_HDR_MUTEX
|
# define BOOST_NO_0X_HDR_SYSTEM_ERROR
|
||||||
# define BOOST_NO_0X_HDR_RANDOM
|
# define BOOST_NO_0X_HDR_THREAD
|
||||||
# define BOOST_NO_0X_HDR_RATIO
|
# define BOOST_NO_0X_HDR_TUPLE
|
||||||
# define BOOST_NO_0X_HDR_REGEX
|
# define BOOST_NO_0X_HDR_TYPE_TRAITS
|
||||||
# define BOOST_NO_0X_HDR_SYSTEM_ERROR
|
# define BOOST_NO_0X_HDR_TYPEINDEX
|
||||||
# define BOOST_NO_0X_HDR_THREAD
|
# define BOOST_NO_STD_UNORDERED // deprecated; see following
|
||||||
# define BOOST_NO_0X_HDR_TUPLE
|
# define BOOST_NO_0X_HDR_UNORDERED_MAP
|
||||||
# define BOOST_NO_0X_HDR_TYPE_TRAITS
|
# define BOOST_NO_0X_HDR_UNORDERED_SET
|
||||||
# define BOOST_NO_0X_HDR_TYPEINDEX
|
# define BOOST_NO_NUMERIC_LIMITS_LOWEST
|
||||||
# define BOOST_NO_STD_UNORDERED // deprecated; see following
|
|
||||||
# define BOOST_NO_0X_HDR_UNORDERED_MAP
|
#define BOOST_STDLIB "Modena C++ standard library"
|
||||||
# define BOOST_NO_0X_HDR_UNORDERED_SET
|
|
||||||
# define BOOST_NO_NUMERIC_LIMITS_LOWEST
|
|
||||||
|
|
||||||
#define BOOST_STDLIB "Modena C++ standard library"
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,85 +1,81 @@
|
||||||
// (C) Copyright John Maddock 2001.
|
// (C) Copyright John Maddock 2001.
|
||||||
// (C) Copyright Darin Adler 2001.
|
// (C) Copyright Darin Adler 2001.
|
||||||
// Use, modification and distribution are subject to the
|
// Use, modification and distribution are subject to the
|
||||||
// Boost Software License, Version 1.0. (See accompanying file
|
// Boost Software License, Version 1.0. (See accompanying file
|
||||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
|
||||||
// See http://www.boost.org for most recent version.
|
// See http://www.boost.org for most recent version.
|
||||||
|
|
||||||
// Metrowerks standard library:
|
// Metrowerks standard library:
|
||||||
|
|
||||||
#ifndef __MSL_CPP__
|
#ifndef __MSL_CPP__
|
||||||
# include <boost/config/no_tr1/utility.hpp>
|
# include <boost/config/no_tr1/utility.hpp>
|
||||||
# ifndef __MSL_CPP__
|
# ifndef __MSL_CPP__
|
||||||
# error This is not the MSL standard library!
|
# error This is not the MSL standard library!
|
||||||
# endif
|
# endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if __MSL_CPP__ >= 0x6000 // Pro 6
|
#if __MSL_CPP__ >= 0x6000 // Pro 6
|
||||||
# define BOOST_HAS_HASH
|
# define BOOST_HAS_HASH
|
||||||
# define BOOST_STD_EXTENSION_NAMESPACE Metrowerks
|
# define BOOST_STD_EXTENSION_NAMESPACE Metrowerks
|
||||||
#endif
|
#endif
|
||||||
#define BOOST_HAS_SLIST
|
#define BOOST_HAS_SLIST
|
||||||
|
|
||||||
#if __MSL_CPP__ < 0x6209
|
#if __MSL_CPP__ < 0x6209
|
||||||
# define BOOST_NO_STD_MESSAGES
|
# define BOOST_NO_STD_MESSAGES
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// check C lib version for <stdint.h>
|
// check C lib version for <stdint.h>
|
||||||
#include <cstddef>
|
#include <cstddef>
|
||||||
|
|
||||||
#if defined(__MSL__) && (__MSL__ >= 0x5000)
|
#if defined(__MSL__) && (__MSL__ >= 0x5000)
|
||||||
# define BOOST_HAS_STDINT_H
|
# define BOOST_HAS_STDINT_H
|
||||||
# if !defined(__PALMOS_TRAPS__)
|
# if !defined(__PALMOS_TRAPS__)
|
||||||
# define BOOST_HAS_UNISTD_H
|
# define BOOST_HAS_UNISTD_H
|
||||||
# endif
|
# endif
|
||||||
// boilerplate code:
|
// boilerplate code:
|
||||||
# include <boost/config/posix_features.hpp>
|
# include <boost/config/posix_features.hpp>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(_MWMT) || _MSL_THREADSAFE
|
#if defined(_MWMT) || _MSL_THREADSAFE
|
||||||
# define BOOST_HAS_THREADS
|
# define BOOST_HAS_THREADS
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef _MSL_NO_EXPLICIT_FUNC_TEMPLATE_ARG
|
#ifdef _MSL_NO_EXPLICIT_FUNC_TEMPLATE_ARG
|
||||||
# define BOOST_NO_STD_USE_FACET
|
# define BOOST_NO_STD_USE_FACET
|
||||||
# define BOOST_HAS_TWO_ARG_USE_FACET
|
# define BOOST_HAS_TWO_ARG_USE_FACET
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// C++0x headers not yet implemented
|
// C++0x headers not yet implemented
|
||||||
//
|
//
|
||||||
# define BOOST_NO_0X_HDR_ARRAY
|
# define BOOST_NO_0X_HDR_ARRAY
|
||||||
# define BOOST_NO_0X_HDR_CHRONO
|
# define BOOST_NO_0X_HDR_CHRONO
|
||||||
# define BOOST_NO_0X_HDR_CODECVT
|
# define BOOST_NO_0X_HDR_CODECVT
|
||||||
# define BOOST_NO_0X_HDR_CONCEPTS
|
# define BOOST_NO_0X_HDR_CONDITION_VARIABLE
|
||||||
# define BOOST_NO_0X_HDR_CONDITION_VARIABLE
|
# define BOOST_NO_0X_HDR_FORWARD_LIST
|
||||||
# define BOOST_NO_0X_HDR_CONTAINER_CONCEPTS
|
# define BOOST_NO_0X_HDR_FUTURE
|
||||||
# define BOOST_NO_0X_HDR_FORWARD_LIST
|
# define BOOST_NO_0X_HDR_INITIALIZER_LIST
|
||||||
# define BOOST_NO_0X_HDR_FUTURE
|
# define BOOST_NO_0X_HDR_MUTEX
|
||||||
# define BOOST_NO_0X_HDR_INITIALIZER_LIST
|
# define BOOST_NO_0X_HDR_RANDOM
|
||||||
# define BOOST_NO_0X_HDR_ITERATOR_CONCEPTS
|
# define BOOST_NO_0X_HDR_RATIO
|
||||||
# define BOOST_NO_0X_HDR_MEMORY_CONCEPTS
|
# define BOOST_NO_0X_HDR_REGEX
|
||||||
# define BOOST_NO_0X_HDR_MUTEX
|
# define BOOST_NO_0X_HDR_SYSTEM_ERROR
|
||||||
# define BOOST_NO_0X_HDR_RANDOM
|
# define BOOST_NO_0X_HDR_THREAD
|
||||||
# define BOOST_NO_0X_HDR_RATIO
|
# define BOOST_NO_0X_HDR_TUPLE
|
||||||
# define BOOST_NO_0X_HDR_REGEX
|
# define BOOST_NO_0X_HDR_TYPE_TRAITS
|
||||||
# define BOOST_NO_0X_HDR_SYSTEM_ERROR
|
# define BOOST_NO_0X_HDR_TYPEINDEX
|
||||||
# define BOOST_NO_0X_HDR_THREAD
|
# define BOOST_NO_STD_UNORDERED // deprecated; see following
|
||||||
# define BOOST_NO_0X_HDR_TUPLE
|
# define BOOST_NO_0X_HDR_UNORDERED_MAP
|
||||||
# define BOOST_NO_0X_HDR_TYPE_TRAITS
|
# define BOOST_NO_0X_HDR_UNORDERED_SET
|
||||||
# define BOOST_NO_0X_HDR_TYPEINDEX
|
# define BOOST_NO_NUMERIC_LIMITS_LOWEST
|
||||||
# define BOOST_NO_STD_UNORDERED // deprecated; see following
|
|
||||||
# define BOOST_NO_0X_HDR_UNORDERED_MAP
|
#define BOOST_STDLIB "Metrowerks Standard Library version " BOOST_STRINGIZE(__MSL_CPP__)
|
||||||
# define BOOST_NO_0X_HDR_UNORDERED_SET
|
|
||||||
# define BOOST_NO_NUMERIC_LIMITS_LOWEST
|
|
||||||
|
|
||||||
#define BOOST_STDLIB "Metrowerks Standard Library version " BOOST_STRINGIZE(__MSL_CPP__)
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,181 +1,183 @@
|
||||||
// (C) Copyright John Maddock 2001 - 2003.
|
// (C) Copyright John Maddock 2001 - 2003.
|
||||||
// (C) Copyright Jens Maurer 2001.
|
// (C) Copyright Jens Maurer 2001.
|
||||||
// (C) Copyright David Abrahams 2003.
|
// (C) Copyright David Abrahams 2003.
|
||||||
// (C) Copyright Boris Gubenko 2007.
|
// (C) Copyright Boris Gubenko 2007.
|
||||||
// Use, modification and distribution are subject to the
|
// Use, modification and distribution are subject to the
|
||||||
// Boost Software License, Version 1.0. (See accompanying file
|
// Boost Software License, Version 1.0. (See accompanying file
|
||||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
|
||||||
// See http://www.boost.org for most recent version.
|
// See http://www.boost.org for most recent version.
|
||||||
|
|
||||||
// Rogue Wave std lib:
|
// Rogue Wave std lib:
|
||||||
|
|
||||||
#if !defined(__STD_RWCOMPILER_H__) && !defined(_RWSTD_VER)
|
#define BOOST_RW_STDLIB 1
|
||||||
# include <boost/config/no_tr1/utility.hpp>
|
|
||||||
# if !defined(__STD_RWCOMPILER_H__) && !defined(_RWSTD_VER)
|
#if !defined(__STD_RWCOMPILER_H__) && !defined(_RWSTD_VER)
|
||||||
# error This is not the Rogue Wave standard library
|
# include <boost/config/no_tr1/utility.hpp>
|
||||||
# endif
|
# if !defined(__STD_RWCOMPILER_H__) && !defined(_RWSTD_VER)
|
||||||
#endif
|
# error This is not the Rogue Wave standard library
|
||||||
//
|
# endif
|
||||||
// figure out a consistent version number:
|
#endif
|
||||||
//
|
//
|
||||||
#ifndef _RWSTD_VER
|
// figure out a consistent version number:
|
||||||
# define BOOST_RWSTD_VER 0x010000
|
//
|
||||||
#elif _RWSTD_VER < 0x010000
|
#ifndef _RWSTD_VER
|
||||||
# define BOOST_RWSTD_VER (_RWSTD_VER << 8)
|
# define BOOST_RWSTD_VER 0x010000
|
||||||
#else
|
#elif _RWSTD_VER < 0x010000
|
||||||
# define BOOST_RWSTD_VER _RWSTD_VER
|
# define BOOST_RWSTD_VER (_RWSTD_VER << 8)
|
||||||
#endif
|
#else
|
||||||
|
# define BOOST_RWSTD_VER _RWSTD_VER
|
||||||
#ifndef _RWSTD_VER
|
#endif
|
||||||
# define BOOST_STDLIB "Rogue Wave standard library version (Unknown version)"
|
|
||||||
#elif _RWSTD_VER < 0x04010200
|
#ifndef _RWSTD_VER
|
||||||
# define BOOST_STDLIB "Rogue Wave standard library version " BOOST_STRINGIZE(_RWSTD_VER)
|
# define BOOST_STDLIB "Rogue Wave standard library version (Unknown version)"
|
||||||
#else
|
#elif _RWSTD_VER < 0x04010200
|
||||||
# ifdef _RWSTD_VER_STR
|
# define BOOST_STDLIB "Rogue Wave standard library version " BOOST_STRINGIZE(_RWSTD_VER)
|
||||||
# define BOOST_STDLIB "Apache STDCXX standard library version " _RWSTD_VER_STR
|
#else
|
||||||
# else
|
# ifdef _RWSTD_VER_STR
|
||||||
# define BOOST_STDLIB "Apache STDCXX standard library version " BOOST_STRINGIZE(_RWSTD_VER)
|
# define BOOST_STDLIB "Apache STDCXX standard library version " _RWSTD_VER_STR
|
||||||
# endif
|
# else
|
||||||
#endif
|
# define BOOST_STDLIB "Apache STDCXX standard library version " BOOST_STRINGIZE(_RWSTD_VER)
|
||||||
|
# endif
|
||||||
//
|
#endif
|
||||||
// Prior to version 2.2.0 the primary template for std::numeric_limits
|
|
||||||
// does not have compile time constants, even though specializations of that
|
//
|
||||||
// template do:
|
// Prior to version 2.2.0 the primary template for std::numeric_limits
|
||||||
//
|
// does not have compile time constants, even though specializations of that
|
||||||
#if BOOST_RWSTD_VER < 0x020200
|
// template do:
|
||||||
# define BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
|
//
|
||||||
#endif
|
#if BOOST_RWSTD_VER < 0x020200
|
||||||
|
# define BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
|
||||||
// Sun CC 5.5 patch 113817-07 adds long long specialization, but does not change the
|
#endif
|
||||||
// library version number (http://sunsolve6.sun.com/search/document.do?assetkey=1-21-113817):
|
|
||||||
#if BOOST_RWSTD_VER <= 0x020101 && (!defined(__SUNPRO_CC) || (__SUNPRO_CC < 0x550))
|
// Sun CC 5.5 patch 113817-07 adds long long specialization, but does not change the
|
||||||
# define BOOST_NO_LONG_LONG_NUMERIC_LIMITS
|
// library version number (http://sunsolve6.sun.com/search/document.do?assetkey=1-21-113817):
|
||||||
# endif
|
#if BOOST_RWSTD_VER <= 0x020101 && (!defined(__SUNPRO_CC) || (__SUNPRO_CC < 0x550))
|
||||||
|
# define BOOST_NO_LONG_LONG_NUMERIC_LIMITS
|
||||||
//
|
# endif
|
||||||
// Borland version of numeric_limits lacks __int64 specialisation:
|
|
||||||
//
|
//
|
||||||
#ifdef __BORLANDC__
|
// Borland version of numeric_limits lacks __int64 specialisation:
|
||||||
# define BOOST_NO_MS_INT64_NUMERIC_LIMITS
|
//
|
||||||
#endif
|
#ifdef __BORLANDC__
|
||||||
|
# define BOOST_NO_MS_INT64_NUMERIC_LIMITS
|
||||||
//
|
#endif
|
||||||
// No std::iterator if it can't figure out default template args:
|
|
||||||
//
|
//
|
||||||
#if defined(_RWSTD_NO_SIMPLE_DEFAULT_TEMPLATES) || defined(RWSTD_NO_SIMPLE_DEFAULT_TEMPLATES) || (BOOST_RWSTD_VER < 0x020000)
|
// No std::iterator if it can't figure out default template args:
|
||||||
# define BOOST_NO_STD_ITERATOR
|
//
|
||||||
#endif
|
#if defined(_RWSTD_NO_SIMPLE_DEFAULT_TEMPLATES) || defined(RWSTD_NO_SIMPLE_DEFAULT_TEMPLATES) || (BOOST_RWSTD_VER < 0x020000)
|
||||||
|
# define BOOST_NO_STD_ITERATOR
|
||||||
//
|
#endif
|
||||||
// No iterator traits without partial specialization:
|
|
||||||
//
|
//
|
||||||
#if defined(_RWSTD_NO_CLASS_PARTIAL_SPEC) || defined(RWSTD_NO_CLASS_PARTIAL_SPEC)
|
// No iterator traits without partial specialization:
|
||||||
# define BOOST_NO_STD_ITERATOR_TRAITS
|
//
|
||||||
#endif
|
#if defined(_RWSTD_NO_CLASS_PARTIAL_SPEC) || defined(RWSTD_NO_CLASS_PARTIAL_SPEC)
|
||||||
|
# define BOOST_NO_STD_ITERATOR_TRAITS
|
||||||
//
|
#endif
|
||||||
// Prior to version 2.0, std::auto_ptr was buggy, and there were no
|
|
||||||
// new-style iostreams, and no conformant std::allocator:
|
//
|
||||||
//
|
// Prior to version 2.0, std::auto_ptr was buggy, and there were no
|
||||||
#if (BOOST_RWSTD_VER < 0x020000)
|
// new-style iostreams, and no conformant std::allocator:
|
||||||
# define BOOST_NO_AUTO_PTR
|
//
|
||||||
# define BOOST_NO_STRINGSTREAM
|
#if (BOOST_RWSTD_VER < 0x020000)
|
||||||
# define BOOST_NO_STD_ALLOCATOR
|
# define BOOST_NO_AUTO_PTR
|
||||||
# define BOOST_NO_STD_LOCALE
|
# define BOOST_NO_STRINGSTREAM
|
||||||
#endif
|
# define BOOST_NO_STD_ALLOCATOR
|
||||||
|
# define BOOST_NO_STD_LOCALE
|
||||||
//
|
#endif
|
||||||
// No template iterator constructors without member template support:
|
|
||||||
//
|
//
|
||||||
#if defined(RWSTD_NO_MEMBER_TEMPLATES) || defined(_RWSTD_NO_MEMBER_TEMPLATES)
|
// No template iterator constructors without member template support:
|
||||||
# define BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS
|
//
|
||||||
#endif
|
#if defined(RWSTD_NO_MEMBER_TEMPLATES) || defined(_RWSTD_NO_MEMBER_TEMPLATES)
|
||||||
|
# define BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS
|
||||||
//
|
#endif
|
||||||
// RW defines _RWSTD_ALLOCATOR if the allocator is conformant and in use
|
|
||||||
// (the or _HPACC_ part is a hack - the library seems to define _RWSTD_ALLOCATOR
|
//
|
||||||
// on HP aCC systems even though the allocator is in fact broken):
|
// RW defines _RWSTD_ALLOCATOR if the allocator is conformant and in use
|
||||||
//
|
// (the or _HPACC_ part is a hack - the library seems to define _RWSTD_ALLOCATOR
|
||||||
#if !defined(_RWSTD_ALLOCATOR) || (defined(__HP_aCC) && __HP_aCC <= 33100)
|
// on HP aCC systems even though the allocator is in fact broken):
|
||||||
# define BOOST_NO_STD_ALLOCATOR
|
//
|
||||||
#endif
|
#if !defined(_RWSTD_ALLOCATOR) || (defined(__HP_aCC) && __HP_aCC <= 33100)
|
||||||
|
# define BOOST_NO_STD_ALLOCATOR
|
||||||
//
|
#endif
|
||||||
// If we have a std::locale, we still may not have std::use_facet:
|
|
||||||
//
|
//
|
||||||
#if defined(_RWSTD_NO_TEMPLATE_ON_RETURN_TYPE) && !defined(BOOST_NO_STD_LOCALE)
|
// If we have a std::locale, we still may not have std::use_facet:
|
||||||
# define BOOST_NO_STD_USE_FACET
|
//
|
||||||
# define BOOST_HAS_TWO_ARG_USE_FACET
|
#if defined(_RWSTD_NO_TEMPLATE_ON_RETURN_TYPE) && !defined(BOOST_NO_STD_LOCALE)
|
||||||
#endif
|
# define BOOST_NO_STD_USE_FACET
|
||||||
|
# define BOOST_HAS_TWO_ARG_USE_FACET
|
||||||
//
|
#endif
|
||||||
// There's no std::distance prior to version 2, or without
|
|
||||||
// partial specialization support:
|
//
|
||||||
//
|
// There's no std::distance prior to version 2, or without
|
||||||
#if (BOOST_RWSTD_VER < 0x020000) || defined(_RWSTD_NO_CLASS_PARTIAL_SPEC)
|
// partial specialization support:
|
||||||
#define BOOST_NO_STD_DISTANCE
|
//
|
||||||
#endif
|
#if (BOOST_RWSTD_VER < 0x020000) || defined(_RWSTD_NO_CLASS_PARTIAL_SPEC)
|
||||||
|
#define BOOST_NO_STD_DISTANCE
|
||||||
//
|
#endif
|
||||||
// Some versions of the rogue wave library don't have assignable
|
|
||||||
// OutputIterators:
|
//
|
||||||
//
|
// Some versions of the rogue wave library don't have assignable
|
||||||
#if BOOST_RWSTD_VER < 0x020100
|
// OutputIterators:
|
||||||
# define BOOST_NO_STD_OUTPUT_ITERATOR_ASSIGN
|
//
|
||||||
#endif
|
#if BOOST_RWSTD_VER < 0x020100
|
||||||
|
# define BOOST_NO_STD_OUTPUT_ITERATOR_ASSIGN
|
||||||
//
|
#endif
|
||||||
// Disable BOOST_HAS_LONG_LONG when the library has no support for it.
|
|
||||||
//
|
//
|
||||||
#if !defined(_RWSTD_LONG_LONG) && defined(BOOST_HAS_LONG_LONG)
|
// Disable BOOST_HAS_LONG_LONG when the library has no support for it.
|
||||||
# undef BOOST_HAS_LONG_LONG
|
//
|
||||||
#endif
|
#if !defined(_RWSTD_LONG_LONG) && defined(BOOST_HAS_LONG_LONG)
|
||||||
|
# undef BOOST_HAS_LONG_LONG
|
||||||
//
|
#endif
|
||||||
// check that on HP-UX, the proper RW library is used
|
|
||||||
//
|
//
|
||||||
#if defined(__HP_aCC) && !defined(_HP_NAMESPACE_STD)
|
// check that on HP-UX, the proper RW library is used
|
||||||
# error "Boost requires Standard RW library. Please compile and link with -AA"
|
//
|
||||||
#endif
|
#if defined(__HP_aCC) && !defined(_HP_NAMESPACE_STD)
|
||||||
|
# error "Boost requires Standard RW library. Please compile and link with -AA"
|
||||||
//
|
#endif
|
||||||
// Define macros specific to RW V2.2 on HP-UX
|
|
||||||
//
|
//
|
||||||
#if defined(__HP_aCC) && (BOOST_RWSTD_VER == 0x02020100)
|
// Define macros specific to RW V2.2 on HP-UX
|
||||||
# ifndef __HP_TC1_MAKE_PAIR
|
//
|
||||||
# define __HP_TC1_MAKE_PAIR
|
#if defined(__HP_aCC) && (BOOST_RWSTD_VER == 0x02020100)
|
||||||
# endif
|
# ifndef __HP_TC1_MAKE_PAIR
|
||||||
# ifndef _HP_INSTANTIATE_STD2_VL
|
# define __HP_TC1_MAKE_PAIR
|
||||||
# define _HP_INSTANTIATE_STD2_VL
|
# endif
|
||||||
# endif
|
# ifndef _HP_INSTANTIATE_STD2_VL
|
||||||
#endif
|
# define _HP_INSTANTIATE_STD2_VL
|
||||||
|
# endif
|
||||||
// C++0x headers not yet implemented
|
#endif
|
||||||
//
|
|
||||||
# define BOOST_NO_0X_HDR_ARRAY
|
#if _RWSTD_VER < 0x05000000
|
||||||
# define BOOST_NO_0X_HDR_CHRONO
|
# define BOOST_NO_0X_HDR_ARRAY
|
||||||
# define BOOST_NO_0X_HDR_CODECVT
|
#endif
|
||||||
# define BOOST_NO_0X_HDR_CONCEPTS
|
// type_traits header is incomplete:
|
||||||
# define BOOST_NO_0X_HDR_CONDITION_VARIABLE
|
# define BOOST_NO_0X_HDR_TYPE_TRAITS
|
||||||
# define BOOST_NO_0X_HDR_CONTAINER_CONCEPTS
|
//
|
||||||
# define BOOST_NO_0X_HDR_FORWARD_LIST
|
// C++0x headers not yet implemented
|
||||||
# define BOOST_NO_0X_HDR_FUTURE
|
//
|
||||||
# define BOOST_NO_0X_HDR_INITIALIZER_LIST
|
# define BOOST_NO_0X_HDR_CHRONO
|
||||||
# define BOOST_NO_0X_HDR_ITERATOR_CONCEPTS
|
# define BOOST_NO_0X_HDR_CODECVT
|
||||||
# define BOOST_NO_0X_HDR_MEMORY_CONCEPTS
|
# define BOOST_NO_0X_HDR_CONDITION_VARIABLE
|
||||||
# define BOOST_NO_0X_HDR_MUTEX
|
# define BOOST_NO_0X_HDR_FORWARD_LIST
|
||||||
# define BOOST_NO_0X_HDR_RANDOM
|
# define BOOST_NO_0X_HDR_FUTURE
|
||||||
# define BOOST_NO_0X_HDR_RATIO
|
# define BOOST_NO_0X_HDR_INITIALIZER_LIST
|
||||||
# define BOOST_NO_0X_HDR_REGEX
|
# define BOOST_NO_0X_HDR_MUTEX
|
||||||
# define BOOST_NO_0X_HDR_SYSTEM_ERROR
|
# define BOOST_NO_0X_HDR_RANDOM
|
||||||
# define BOOST_NO_0X_HDR_THREAD
|
# define BOOST_NO_0X_HDR_RATIO
|
||||||
# define BOOST_NO_0X_HDR_TUPLE
|
# define BOOST_NO_0X_HDR_REGEX
|
||||||
# define BOOST_NO_0X_HDR_TYPE_TRAITS
|
# define BOOST_NO_0X_HDR_SYSTEM_ERROR
|
||||||
# define BOOST_NO_0X_HDR_TYPEINDEX
|
# define BOOST_NO_0X_HDR_THREAD
|
||||||
# define BOOST_NO_STD_UNORDERED // deprecated; see following
|
# define BOOST_NO_0X_HDR_TUPLE
|
||||||
# define BOOST_NO_0X_HDR_UNORDERED_MAP
|
# define BOOST_NO_0X_HDR_TYPEINDEX
|
||||||
# define BOOST_NO_0X_HDR_UNORDERED_SET
|
# define BOOST_NO_STD_UNORDERED // deprecated; see following
|
||||||
# define BOOST_NO_NUMERIC_LIMITS_LOWEST
|
# define BOOST_NO_0X_HDR_UNORDERED_MAP
|
||||||
|
# define BOOST_NO_0X_HDR_UNORDERED_SET
|
||||||
|
# define BOOST_NO_NUMERIC_LIMITS_LOWEST
|
||||||
|
|
||||||
|
|
|
@ -1,138 +1,145 @@
|
||||||
// (C) Copyright John Maddock 2001 - 2003.
|
// (C) Copyright John Maddock 2001 - 2003.
|
||||||
// (C) Copyright Darin Adler 2001.
|
// (C) Copyright Darin Adler 2001.
|
||||||
// (C) Copyright Jens Maurer 2001 - 2003.
|
// (C) Copyright Jens Maurer 2001 - 2003.
|
||||||
// Use, modification and distribution are subject to the
|
// Use, modification and distribution are subject to the
|
||||||
// Boost Software License, Version 1.0. (See accompanying file
|
// Boost Software License, Version 1.0. (See accompanying file
|
||||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
|
||||||
// See http://www.boost.org for most recent version.
|
// See http://www.boost.org for most recent version.
|
||||||
|
|
||||||
// generic SGI STL:
|
// generic SGI STL:
|
||||||
|
|
||||||
#if !defined(__STL_CONFIG_H)
|
#if !defined(__STL_CONFIG_H)
|
||||||
# include <boost/config/no_tr1/utility.hpp>
|
# include <boost/config/no_tr1/utility.hpp>
|
||||||
# if !defined(__STL_CONFIG_H)
|
# if !defined(__STL_CONFIG_H)
|
||||||
# error "This is not the SGI STL!"
|
# error "This is not the SGI STL!"
|
||||||
# endif
|
# endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//
|
//
|
||||||
// No std::iterator traits without partial specialisation:
|
// No std::iterator traits without partial specialisation:
|
||||||
//
|
//
|
||||||
#if !defined(__STL_CLASS_PARTIAL_SPECIALIZATION)
|
#if !defined(__STL_CLASS_PARTIAL_SPECIALIZATION)
|
||||||
# define BOOST_NO_STD_ITERATOR_TRAITS
|
# define BOOST_NO_STD_ITERATOR_TRAITS
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//
|
//
|
||||||
// No std::stringstream with gcc < 3
|
// No std::stringstream with gcc < 3
|
||||||
//
|
//
|
||||||
#if defined(__GNUC__) && (__GNUC__ < 3) && \
|
#if defined(__GNUC__) && (__GNUC__ < 3) && \
|
||||||
((__GNUC_MINOR__ < 95) || (__GNUC_MINOR__ == 96)) && \
|
((__GNUC_MINOR__ < 95) || (__GNUC_MINOR__ == 96)) && \
|
||||||
!defined(__STL_USE_NEW_IOSTREAMS) || \
|
!defined(__STL_USE_NEW_IOSTREAMS) || \
|
||||||
defined(__APPLE_CC__)
|
defined(__APPLE_CC__)
|
||||||
// Note that we only set this for GNU C++ prior to 2.95 since the
|
// Note that we only set this for GNU C++ prior to 2.95 since the
|
||||||
// latest patches for that release do contain a minimal <sstream>
|
// latest patches for that release do contain a minimal <sstream>
|
||||||
// If you are running a 2.95 release prior to 2.95.3 then this will need
|
// If you are running a 2.95 release prior to 2.95.3 then this will need
|
||||||
// setting, but there is no way to detect that automatically (other
|
// setting, but there is no way to detect that automatically (other
|
||||||
// than by running the configure script).
|
// than by running the configure script).
|
||||||
// Also, the unofficial GNU C++ 2.96 included in RedHat 7.1 doesn't
|
// Also, the unofficial GNU C++ 2.96 included in RedHat 7.1 doesn't
|
||||||
// have <sstream>.
|
// have <sstream>.
|
||||||
# define BOOST_NO_STRINGSTREAM
|
# define BOOST_NO_STRINGSTREAM
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//
|
// Apple doesn't seem to reliably defined a *unix* macro
|
||||||
// Assume no std::locale without own iostreams (this may be an
|
#if !defined(CYGWIN) && ( defined(__unix__) \
|
||||||
// incorrect assumption in some cases):
|
|| defined(__unix) \
|
||||||
//
|
|| defined(unix) \
|
||||||
#if !defined(__SGI_STL_OWN_IOSTREAMS) && !defined(__STL_USE_NEW_IOSTREAMS)
|
|| defined(__APPLE__) \
|
||||||
# define BOOST_NO_STD_LOCALE
|
|| defined(__APPLE) \
|
||||||
#endif
|
|| defined(APPLE))
|
||||||
|
# include <unistd.h>
|
||||||
//
|
#endif
|
||||||
// Original native SGI streams have non-standard std::messages facet:
|
|
||||||
//
|
|
||||||
#if defined(__sgi) && (_COMPILER_VERSION <= 650) && !defined(__SGI_STL_OWN_IOSTREAMS)
|
//
|
||||||
# define BOOST_NO_STD_LOCALE
|
// Assume no std::locale without own iostreams (this may be an
|
||||||
#endif
|
// incorrect assumption in some cases):
|
||||||
|
//
|
||||||
//
|
#if !defined(__SGI_STL_OWN_IOSTREAMS) && !defined(__STL_USE_NEW_IOSTREAMS)
|
||||||
// SGI's new iostreams have missing "const" in messages<>::open
|
# define BOOST_NO_STD_LOCALE
|
||||||
//
|
#endif
|
||||||
#if defined(__sgi) && (_COMPILER_VERSION <= 740) && defined(__STL_USE_NEW_IOSTREAMS)
|
|
||||||
# define BOOST_NO_STD_MESSAGES
|
//
|
||||||
#endif
|
// Original native SGI streams have non-standard std::messages facet:
|
||||||
|
//
|
||||||
//
|
#if defined(__sgi) && (_COMPILER_VERSION <= 650) && !defined(__SGI_STL_OWN_IOSTREAMS)
|
||||||
// No template iterator constructors, or std::allocator
|
# define BOOST_NO_STD_LOCALE
|
||||||
// without member templates:
|
#endif
|
||||||
//
|
|
||||||
#if !defined(__STL_MEMBER_TEMPLATES)
|
//
|
||||||
# define BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS
|
// SGI's new iostreams have missing "const" in messages<>::open
|
||||||
# define BOOST_NO_STD_ALLOCATOR
|
//
|
||||||
#endif
|
#if defined(__sgi) && (_COMPILER_VERSION <= 740) && defined(__STL_USE_NEW_IOSTREAMS)
|
||||||
|
# define BOOST_NO_STD_MESSAGES
|
||||||
//
|
#endif
|
||||||
// We always have SGI style hash_set, hash_map, and slist:
|
|
||||||
//
|
//
|
||||||
#define BOOST_HAS_HASH
|
// No template iterator constructors, or std::allocator
|
||||||
#define BOOST_HAS_SLIST
|
// without member templates:
|
||||||
|
//
|
||||||
//
|
#if !defined(__STL_MEMBER_TEMPLATES)
|
||||||
// If this is GNU libstdc++2, then no <limits> and no std::wstring:
|
# define BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS
|
||||||
//
|
# define BOOST_NO_STD_ALLOCATOR
|
||||||
#if (defined(__GNUC__) && (__GNUC__ < 3))
|
#endif
|
||||||
# include <string>
|
|
||||||
# if defined(__BASTRING__)
|
//
|
||||||
# define BOOST_NO_LIMITS
|
// We always have SGI style hash_set, hash_map, and slist:
|
||||||
// Note: <boost/limits.hpp> will provide compile-time constants
|
//
|
||||||
# undef BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
|
#define BOOST_HAS_HASH
|
||||||
# define BOOST_NO_STD_WSTRING
|
#define BOOST_HAS_SLIST
|
||||||
# endif
|
|
||||||
#endif
|
//
|
||||||
|
// If this is GNU libstdc++2, then no <limits> and no std::wstring:
|
||||||
//
|
//
|
||||||
// There is no standard iterator unless we have namespace support:
|
#if (defined(__GNUC__) && (__GNUC__ < 3))
|
||||||
//
|
# include <string>
|
||||||
#if !defined(__STL_USE_NAMESPACES)
|
# if defined(__BASTRING__)
|
||||||
# define BOOST_NO_STD_ITERATOR
|
# define BOOST_NO_LIMITS
|
||||||
#endif
|
// Note: <boost/limits.hpp> will provide compile-time constants
|
||||||
|
# undef BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
|
||||||
//
|
# define BOOST_NO_STD_WSTRING
|
||||||
// Intrinsic type_traits support.
|
# endif
|
||||||
// The SGI STL has it's own __type_traits class, which
|
#endif
|
||||||
// has intrinsic compiler support with SGI's compilers.
|
|
||||||
// Whatever map SGI style type traits to boost equivalents:
|
//
|
||||||
//
|
// There is no standard iterator unless we have namespace support:
|
||||||
#define BOOST_HAS_SGI_TYPE_TRAITS
|
//
|
||||||
|
#if !defined(__STL_USE_NAMESPACES)
|
||||||
// C++0x headers not yet implemented
|
# define BOOST_NO_STD_ITERATOR
|
||||||
//
|
#endif
|
||||||
# define BOOST_NO_0X_HDR_ARRAY
|
|
||||||
# define BOOST_NO_0X_HDR_CHRONO
|
//
|
||||||
# define BOOST_NO_0X_HDR_CODECVT
|
// Intrinsic type_traits support.
|
||||||
# define BOOST_NO_0X_HDR_CONCEPTS
|
// The SGI STL has it's own __type_traits class, which
|
||||||
# define BOOST_NO_0X_HDR_CONDITION_VARIABLE
|
// has intrinsic compiler support with SGI's compilers.
|
||||||
# define BOOST_NO_0X_HDR_CONTAINER_CONCEPTS
|
// Whatever map SGI style type traits to boost equivalents:
|
||||||
# define BOOST_NO_0X_HDR_FORWARD_LIST
|
//
|
||||||
# define BOOST_NO_0X_HDR_FUTURE
|
#define BOOST_HAS_SGI_TYPE_TRAITS
|
||||||
# define BOOST_NO_0X_HDR_INITIALIZER_LIST
|
|
||||||
# define BOOST_NO_0X_HDR_ITERATOR_CONCEPTS
|
// C++0x headers not yet implemented
|
||||||
# define BOOST_NO_0X_HDR_MEMORY_CONCEPTS
|
//
|
||||||
# define BOOST_NO_0X_HDR_MUTEX
|
# define BOOST_NO_0X_HDR_ARRAY
|
||||||
# define BOOST_NO_0X_HDR_RANDOM
|
# define BOOST_NO_0X_HDR_CHRONO
|
||||||
# define BOOST_NO_0X_HDR_RATIO
|
# define BOOST_NO_0X_HDR_CODECVT
|
||||||
# define BOOST_NO_0X_HDR_REGEX
|
# define BOOST_NO_0X_HDR_CONDITION_VARIABLE
|
||||||
# define BOOST_NO_0X_HDR_SYSTEM_ERROR
|
# define BOOST_NO_0X_HDR_FORWARD_LIST
|
||||||
# define BOOST_NO_0X_HDR_THREAD
|
# define BOOST_NO_0X_HDR_FUTURE
|
||||||
# define BOOST_NO_0X_HDR_TUPLE
|
# define BOOST_NO_0X_HDR_INITIALIZER_LIST
|
||||||
# define BOOST_NO_0X_HDR_TYPE_TRAITS
|
# define BOOST_NO_0X_HDR_MUTEX
|
||||||
# define BOOST_NO_0X_HDR_TYPEINDEX
|
# define BOOST_NO_0X_HDR_RANDOM
|
||||||
# define BOOST_NO_STD_UNORDERED // deprecated; see following
|
# define BOOST_NO_0X_HDR_RATIO
|
||||||
# define BOOST_NO_0X_HDR_UNORDERED_MAP
|
# define BOOST_NO_0X_HDR_REGEX
|
||||||
# define BOOST_NO_0X_HDR_UNORDERED_SET
|
# define BOOST_NO_0X_HDR_SYSTEM_ERROR
|
||||||
# define BOOST_NO_NUMERIC_LIMITS_LOWEST
|
# define BOOST_NO_0X_HDR_THREAD
|
||||||
|
# define BOOST_NO_0X_HDR_TUPLE
|
||||||
#define BOOST_STDLIB "SGI standard library"
|
# define BOOST_NO_0X_HDR_TYPE_TRAITS
|
||||||
|
# define BOOST_NO_0X_HDR_TYPEINDEX
|
||||||
|
# define BOOST_NO_STD_UNORDERED // deprecated; see following
|
||||||
|
# define BOOST_NO_0X_HDR_UNORDERED_MAP
|
||||||
|
# define BOOST_NO_0X_HDR_UNORDERED_SET
|
||||||
|
# define BOOST_NO_NUMERIC_LIMITS_LOWEST
|
||||||
|
|
||||||
|
#define BOOST_STDLIB "SGI standard library"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,238 +1,244 @@
|
||||||
// (C) Copyright John Maddock 2001 - 2002.
|
// (C) Copyright John Maddock 2001 - 2002.
|
||||||
// (C) Copyright Darin Adler 2001.
|
// (C) Copyright Darin Adler 2001.
|
||||||
// (C) Copyright Jens Maurer 2001.
|
// (C) Copyright Jens Maurer 2001.
|
||||||
// Use, modification and distribution are subject to the
|
// Use, modification and distribution are subject to the
|
||||||
// Boost Software License, Version 1.0. (See accompanying file
|
// Boost Software License, Version 1.0. (See accompanying file
|
||||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
|
||||||
// See http://www.boost.org for most recent version.
|
// See http://www.boost.org for most recent version.
|
||||||
|
|
||||||
// STLPort standard library config:
|
// STLPort standard library config:
|
||||||
|
|
||||||
#if !defined(__SGI_STL_PORT) && !defined(_STLPORT_VERSION)
|
#if !defined(__SGI_STL_PORT) && !defined(_STLPORT_VERSION)
|
||||||
# include <cstddef>
|
# include <cstddef>
|
||||||
# if !defined(__SGI_STL_PORT) && !defined(_STLPORT_VERSION)
|
# if !defined(__SGI_STL_PORT) && !defined(_STLPORT_VERSION)
|
||||||
# error "This is not STLPort!"
|
# error "This is not STLPort!"
|
||||||
# endif
|
# endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//
|
// Apple doesn't seem to reliably defined a *unix* macro
|
||||||
// __STL_STATIC_CONST_INIT_BUG implies BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
|
#if !defined(CYGWIN) && ( defined(__unix__) \
|
||||||
// for versions prior to 4.1(beta)
|
|| defined(__unix) \
|
||||||
//
|
|| defined(unix) \
|
||||||
#if (defined(__STL_STATIC_CONST_INIT_BUG) || defined(_STLP_STATIC_CONST_INIT_BUG)) && (__SGI_STL_PORT <= 0x400)
|
|| defined(__APPLE__) \
|
||||||
# define BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
|
|| defined(__APPLE) \
|
||||||
#endif
|
|| defined(APPLE))
|
||||||
|
# include <unistd.h>
|
||||||
//
|
#endif
|
||||||
// If STLport thinks that there is no partial specialisation, then there is no
|
|
||||||
// std::iterator traits:
|
//
|
||||||
//
|
// __STL_STATIC_CONST_INIT_BUG implies BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
|
||||||
#if !(defined(_STLP_CLASS_PARTIAL_SPECIALIZATION) || defined(__STL_CLASS_PARTIAL_SPECIALIZATION))
|
// for versions prior to 4.1(beta)
|
||||||
# define BOOST_NO_STD_ITERATOR_TRAITS
|
//
|
||||||
#endif
|
#if (defined(__STL_STATIC_CONST_INIT_BUG) || defined(_STLP_STATIC_CONST_INIT_BUG)) && (__SGI_STL_PORT <= 0x400)
|
||||||
|
# define BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
|
||||||
//
|
#endif
|
||||||
// No new style iostreams on GCC without STLport's iostreams enabled:
|
|
||||||
//
|
//
|
||||||
#if (defined(__GNUC__) && (__GNUC__ < 3)) && !(defined(__SGI_STL_OWN_IOSTREAMS) || defined(_STLP_OWN_IOSTREAMS))
|
// If STLport thinks that there is no partial specialisation, then there is no
|
||||||
# define BOOST_NO_STRINGSTREAM
|
// std::iterator traits:
|
||||||
#endif
|
//
|
||||||
|
#if !(defined(_STLP_CLASS_PARTIAL_SPECIALIZATION) || defined(__STL_CLASS_PARTIAL_SPECIALIZATION))
|
||||||
//
|
# define BOOST_NO_STD_ITERATOR_TRAITS
|
||||||
// No new iostreams implies no std::locale, and no std::stringstream:
|
#endif
|
||||||
//
|
|
||||||
#if defined(__STL_NO_IOSTREAMS) || defined(__STL_NO_NEW_IOSTREAMS) || defined(_STLP_NO_IOSTREAMS) || defined(_STLP_NO_NEW_IOSTREAMS)
|
//
|
||||||
# define BOOST_NO_STD_LOCALE
|
// No new style iostreams on GCC without STLport's iostreams enabled:
|
||||||
# define BOOST_NO_STRINGSTREAM
|
//
|
||||||
#endif
|
#if (defined(__GNUC__) && (__GNUC__ < 3)) && !(defined(__SGI_STL_OWN_IOSTREAMS) || defined(_STLP_OWN_IOSTREAMS))
|
||||||
|
# define BOOST_NO_STRINGSTREAM
|
||||||
//
|
#endif
|
||||||
// If the streams are not native, and we have a "using ::x" compiler bug
|
|
||||||
// then the io stream facets are not available in namespace std::
|
//
|
||||||
//
|
// No new iostreams implies no std::locale, and no std::stringstream:
|
||||||
#ifdef _STLPORT_VERSION
|
//
|
||||||
# if !(_STLPORT_VERSION >= 0x500) && !defined(_STLP_OWN_IOSTREAMS) && defined(_STLP_USE_NAMESPACES) && defined(BOOST_NO_USING_TEMPLATE) && !defined(__BORLANDC__)
|
#if defined(__STL_NO_IOSTREAMS) || defined(__STL_NO_NEW_IOSTREAMS) || defined(_STLP_NO_IOSTREAMS) || defined(_STLP_NO_NEW_IOSTREAMS)
|
||||||
# define BOOST_NO_STD_LOCALE
|
# define BOOST_NO_STD_LOCALE
|
||||||
# endif
|
# define BOOST_NO_STRINGSTREAM
|
||||||
#else
|
#endif
|
||||||
# if !defined(__SGI_STL_OWN_IOSTREAMS) && defined(__STL_USE_NAMESPACES) && defined(BOOST_NO_USING_TEMPLATE) && !defined(__BORLANDC__)
|
|
||||||
# define BOOST_NO_STD_LOCALE
|
//
|
||||||
# endif
|
// If the streams are not native, and we have a "using ::x" compiler bug
|
||||||
#endif
|
// then the io stream facets are not available in namespace std::
|
||||||
|
//
|
||||||
#if defined(_STLPORT_VERSION) && ((_STLPORT_VERSION < 0x500) || (_STLPORT_VERSION >= 0x520))
|
#ifdef _STLPORT_VERSION
|
||||||
# define BOOST_NO_STD_UNORDERED
|
# if !(_STLPORT_VERSION >= 0x500) && !defined(_STLP_OWN_IOSTREAMS) && defined(_STLP_USE_NAMESPACES) && defined(BOOST_NO_USING_TEMPLATE) && !defined(__BORLANDC__)
|
||||||
#endif
|
# define BOOST_NO_STD_LOCALE
|
||||||
|
# endif
|
||||||
#if defined(_STLPORT_VERSION) && (_STLPORT_VERSION >= 0x520)
|
#else
|
||||||
# define BOOST_HAS_TR1_UNORDERED_SET
|
# if !defined(__SGI_STL_OWN_IOSTREAMS) && defined(__STL_USE_NAMESPACES) && defined(BOOST_NO_USING_TEMPLATE) && !defined(__BORLANDC__)
|
||||||
# define BOOST_HAS_TR1_UNORDERED_MAP
|
# define BOOST_NO_STD_LOCALE
|
||||||
#endif
|
# endif
|
||||||
//
|
#endif
|
||||||
// Without member template support enabled, their are no template
|
|
||||||
// iterate constructors, and no std::allocator:
|
#if defined(_STLPORT_VERSION) && ((_STLPORT_VERSION < 0x500) || (_STLPORT_VERSION >= 0x520))
|
||||||
//
|
# define BOOST_NO_STD_UNORDERED
|
||||||
#if !(defined(__STL_MEMBER_TEMPLATES) || defined(_STLP_MEMBER_TEMPLATES))
|
#endif
|
||||||
# define BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS
|
|
||||||
# define BOOST_NO_STD_ALLOCATOR
|
#if defined(_STLPORT_VERSION) && (_STLPORT_VERSION >= 0x520)
|
||||||
#endif
|
# define BOOST_HAS_TR1_UNORDERED_SET
|
||||||
//
|
# define BOOST_HAS_TR1_UNORDERED_MAP
|
||||||
// however we always have at least a partial allocator:
|
#endif
|
||||||
//
|
//
|
||||||
#define BOOST_HAS_PARTIAL_STD_ALLOCATOR
|
// Without member template support enabled, their are no template
|
||||||
|
// iterate constructors, and no std::allocator:
|
||||||
#if !defined(_STLP_MEMBER_TEMPLATE_CLASSES) || defined(_STLP_DONT_SUPPORT_REBIND_MEMBER_TEMPLATE)
|
//
|
||||||
# define BOOST_NO_STD_ALLOCATOR
|
#if !(defined(__STL_MEMBER_TEMPLATES) || defined(_STLP_MEMBER_TEMPLATES))
|
||||||
#endif
|
# define BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS
|
||||||
|
# define BOOST_NO_STD_ALLOCATOR
|
||||||
#if defined(_STLP_NO_MEMBER_TEMPLATE_KEYWORD) && defined(BOOST_MSVC) && (BOOST_MSVC <= 1300)
|
#endif
|
||||||
# define BOOST_NO_STD_ALLOCATOR
|
//
|
||||||
#endif
|
// however we always have at least a partial allocator:
|
||||||
|
//
|
||||||
//
|
#define BOOST_HAS_PARTIAL_STD_ALLOCATOR
|
||||||
// If STLport thinks there is no wchar_t at all, then we have to disable
|
|
||||||
// the support for the relevant specilazations of std:: templates.
|
#if !defined(_STLP_MEMBER_TEMPLATE_CLASSES) || defined(_STLP_DONT_SUPPORT_REBIND_MEMBER_TEMPLATE)
|
||||||
//
|
# define BOOST_NO_STD_ALLOCATOR
|
||||||
#if !defined(_STLP_HAS_WCHAR_T) && !defined(_STLP_WCHAR_T_IS_USHORT)
|
#endif
|
||||||
# ifndef BOOST_NO_STD_WSTRING
|
|
||||||
# define BOOST_NO_STD_WSTRING
|
#if defined(_STLP_NO_MEMBER_TEMPLATE_KEYWORD) && defined(BOOST_MSVC) && (BOOST_MSVC <= 1300)
|
||||||
# endif
|
# define BOOST_NO_STD_ALLOCATOR
|
||||||
# ifndef BOOST_NO_STD_WSTREAMBUF
|
#endif
|
||||||
# define BOOST_NO_STD_WSTREAMBUF
|
|
||||||
# endif
|
//
|
||||||
#endif
|
// If STLport thinks there is no wchar_t at all, then we have to disable
|
||||||
|
// the support for the relevant specilazations of std:: templates.
|
||||||
//
|
//
|
||||||
// We always have SGI style hash_set, hash_map, and slist:
|
#if !defined(_STLP_HAS_WCHAR_T) && !defined(_STLP_WCHAR_T_IS_USHORT)
|
||||||
//
|
# ifndef BOOST_NO_STD_WSTRING
|
||||||
#ifndef _STLP_NO_EXTENSIONS
|
# define BOOST_NO_STD_WSTRING
|
||||||
#define BOOST_HAS_HASH
|
# endif
|
||||||
#define BOOST_HAS_SLIST
|
# ifndef BOOST_NO_STD_WSTREAMBUF
|
||||||
#endif
|
# define BOOST_NO_STD_WSTREAMBUF
|
||||||
|
# endif
|
||||||
//
|
#endif
|
||||||
// STLport does a good job of importing names into namespace std::,
|
|
||||||
// but doesn't always get them all, define BOOST_NO_STDC_NAMESPACE, since our
|
//
|
||||||
// workaround does not conflict with STLports:
|
// We always have SGI style hash_set, hash_map, and slist:
|
||||||
//
|
//
|
||||||
//
|
#ifndef _STLP_NO_EXTENSIONS
|
||||||
// Harold Howe says:
|
#define BOOST_HAS_HASH
|
||||||
// Borland switched to STLport in BCB6. Defining BOOST_NO_STDC_NAMESPACE with
|
#define BOOST_HAS_SLIST
|
||||||
// BCB6 does cause problems. If we detect C++ Builder, then don't define
|
#endif
|
||||||
// BOOST_NO_STDC_NAMESPACE
|
|
||||||
//
|
//
|
||||||
#if !defined(__BORLANDC__) && !defined(__DMC__)
|
// STLport does a good job of importing names into namespace std::,
|
||||||
//
|
// but doesn't always get them all, define BOOST_NO_STDC_NAMESPACE, since our
|
||||||
// If STLport is using it's own namespace, and the real names are in
|
// workaround does not conflict with STLports:
|
||||||
// the global namespace, then we duplicate STLport's using declarations
|
//
|
||||||
// (by defining BOOST_NO_STDC_NAMESPACE), we do this because STLport doesn't
|
//
|
||||||
// necessarily import all the names we need into namespace std::
|
// Harold Howe says:
|
||||||
//
|
// Borland switched to STLport in BCB6. Defining BOOST_NO_STDC_NAMESPACE with
|
||||||
# if (defined(__STL_IMPORT_VENDOR_CSTD) \
|
// BCB6 does cause problems. If we detect C++ Builder, then don't define
|
||||||
|| defined(__STL_USE_OWN_NAMESPACE) \
|
// BOOST_NO_STDC_NAMESPACE
|
||||||
|| defined(_STLP_IMPORT_VENDOR_CSTD) \
|
//
|
||||||
|| defined(_STLP_USE_OWN_NAMESPACE)) \
|
#if !defined(__BORLANDC__) && !defined(__DMC__)
|
||||||
&& (defined(__STL_VENDOR_GLOBAL_CSTD) || defined (_STLP_VENDOR_GLOBAL_CSTD))
|
//
|
||||||
# define BOOST_NO_STDC_NAMESPACE
|
// If STLport is using it's own namespace, and the real names are in
|
||||||
# define BOOST_NO_EXCEPTION_STD_NAMESPACE
|
// the global namespace, then we duplicate STLport's using declarations
|
||||||
# endif
|
// (by defining BOOST_NO_STDC_NAMESPACE), we do this because STLport doesn't
|
||||||
#elif defined(__BORLANDC__) && __BORLANDC__ < 0x560
|
// necessarily import all the names we need into namespace std::
|
||||||
// STLport doesn't import std::abs correctly:
|
//
|
||||||
#include <stdlib.h>
|
# if (defined(__STL_IMPORT_VENDOR_CSTD) \
|
||||||
namespace std { using ::abs; }
|
|| defined(__STL_USE_OWN_NAMESPACE) \
|
||||||
// and strcmp/strcpy don't get imported either ('cos they are macros)
|
|| defined(_STLP_IMPORT_VENDOR_CSTD) \
|
||||||
#include <string.h>
|
|| defined(_STLP_USE_OWN_NAMESPACE)) \
|
||||||
#ifdef strcpy
|
&& (defined(__STL_VENDOR_GLOBAL_CSTD) || defined (_STLP_VENDOR_GLOBAL_CSTD))
|
||||||
# undef strcpy
|
# define BOOST_NO_STDC_NAMESPACE
|
||||||
#endif
|
# define BOOST_NO_EXCEPTION_STD_NAMESPACE
|
||||||
#ifdef strcmp
|
# endif
|
||||||
# undef strcmp
|
#elif defined(__BORLANDC__) && __BORLANDC__ < 0x560
|
||||||
#endif
|
// STLport doesn't import std::abs correctly:
|
||||||
#ifdef _STLP_VENDOR_CSTD
|
#include <stdlib.h>
|
||||||
namespace std{ using _STLP_VENDOR_CSTD::strcmp; using _STLP_VENDOR_CSTD::strcpy; }
|
namespace std { using ::abs; }
|
||||||
#endif
|
// and strcmp/strcpy don't get imported either ('cos they are macros)
|
||||||
#endif
|
#include <string.h>
|
||||||
|
#ifdef strcpy
|
||||||
//
|
# undef strcpy
|
||||||
// std::use_facet may be non-standard, uses a class instead:
|
#endif
|
||||||
//
|
#ifdef strcmp
|
||||||
#if defined(__STL_NO_EXPLICIT_FUNCTION_TMPL_ARGS) || defined(_STLP_NO_EXPLICIT_FUNCTION_TMPL_ARGS)
|
# undef strcmp
|
||||||
# define BOOST_NO_STD_USE_FACET
|
#endif
|
||||||
# define BOOST_HAS_STLP_USE_FACET
|
#ifdef _STLP_VENDOR_CSTD
|
||||||
#endif
|
namespace std{ using _STLP_VENDOR_CSTD::strcmp; using _STLP_VENDOR_CSTD::strcpy; }
|
||||||
|
#endif
|
||||||
//
|
#endif
|
||||||
// If STLport thinks there are no wide functions, <cwchar> etc. is not working; but
|
|
||||||
// only if BOOST_NO_STDC_NAMESPACE is not defined (if it is then we do the import
|
//
|
||||||
// into std:: ourselves).
|
// std::use_facet may be non-standard, uses a class instead:
|
||||||
//
|
//
|
||||||
#if defined(_STLP_NO_NATIVE_WIDE_FUNCTIONS) && !defined(BOOST_NO_STDC_NAMESPACE)
|
#if defined(__STL_NO_EXPLICIT_FUNCTION_TMPL_ARGS) || defined(_STLP_NO_EXPLICIT_FUNCTION_TMPL_ARGS)
|
||||||
# define BOOST_NO_CWCHAR
|
# define BOOST_NO_STD_USE_FACET
|
||||||
# define BOOST_NO_CWCTYPE
|
# define BOOST_HAS_STLP_USE_FACET
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//
|
//
|
||||||
// If STLport for some reason was configured so that it thinks that wchar_t
|
// If STLport thinks there are no wide functions, <cwchar> etc. is not working; but
|
||||||
// is not an intrinsic type, then we have to disable the support for it as
|
// only if BOOST_NO_STDC_NAMESPACE is not defined (if it is then we do the import
|
||||||
// well (we would be missing required specializations otherwise).
|
// into std:: ourselves).
|
||||||
//
|
//
|
||||||
#if !defined( _STLP_HAS_WCHAR_T) || defined(_STLP_WCHAR_T_IS_USHORT)
|
#if defined(_STLP_NO_NATIVE_WIDE_FUNCTIONS) && !defined(BOOST_NO_STDC_NAMESPACE)
|
||||||
# undef BOOST_NO_INTRINSIC_WCHAR_T
|
# define BOOST_NO_CWCHAR
|
||||||
# define BOOST_NO_INTRINSIC_WCHAR_T
|
# define BOOST_NO_CWCTYPE
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//
|
//
|
||||||
// Borland ships a version of STLport with C++ Builder 6 that lacks
|
// If STLport for some reason was configured so that it thinks that wchar_t
|
||||||
// hashtables and the like:
|
// is not an intrinsic type, then we have to disable the support for it as
|
||||||
//
|
// well (we would be missing required specializations otherwise).
|
||||||
#if defined(__BORLANDC__) && (__BORLANDC__ == 0x560)
|
//
|
||||||
# undef BOOST_HAS_HASH
|
#if !defined( _STLP_HAS_WCHAR_T) || defined(_STLP_WCHAR_T_IS_USHORT)
|
||||||
#endif
|
# undef BOOST_NO_INTRINSIC_WCHAR_T
|
||||||
|
# define BOOST_NO_INTRINSIC_WCHAR_T
|
||||||
//
|
#endif
|
||||||
// gcc-2.95.3/STLPort does not like the using declarations we use to get ADL with std::min/max
|
|
||||||
//
|
//
|
||||||
#if defined(__GNUC__) && (__GNUC__ < 3)
|
// Borland ships a version of STLport with C++ Builder 6 that lacks
|
||||||
# include <algorithm> // for std::min and std::max
|
// hashtables and the like:
|
||||||
# define BOOST_USING_STD_MIN() ((void)0)
|
//
|
||||||
# define BOOST_USING_STD_MAX() ((void)0)
|
#if defined(__BORLANDC__) && (__BORLANDC__ == 0x560)
|
||||||
namespace boost { using std::min; using std::max; }
|
# undef BOOST_HAS_HASH
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// C++0x headers not yet implemented
|
//
|
||||||
//
|
// gcc-2.95.3/STLPort does not like the using declarations we use to get ADL with std::min/max
|
||||||
# define BOOST_NO_0X_HDR_ARRAY
|
//
|
||||||
# define BOOST_NO_0X_HDR_CHRONO
|
#if defined(__GNUC__) && (__GNUC__ < 3)
|
||||||
# define BOOST_NO_0X_HDR_CODECVT
|
# include <algorithm> // for std::min and std::max
|
||||||
# define BOOST_NO_0X_HDR_CONCEPTS
|
# define BOOST_USING_STD_MIN() ((void)0)
|
||||||
# define BOOST_NO_0X_HDR_CONDITION_VARIABLE
|
# define BOOST_USING_STD_MAX() ((void)0)
|
||||||
# define BOOST_NO_0X_HDR_CONTAINER_CONCEPTS
|
namespace boost { using std::min; using std::max; }
|
||||||
# define BOOST_NO_0X_HDR_FORWARD_LIST
|
#endif
|
||||||
# define BOOST_NO_0X_HDR_FUTURE
|
|
||||||
# define BOOST_NO_0X_HDR_INITIALIZER_LIST
|
// C++0x headers not yet implemented
|
||||||
# define BOOST_NO_0X_HDR_ITERATOR_CONCEPTS
|
//
|
||||||
# define BOOST_NO_0X_HDR_MEMORY_CONCEPTS
|
# define BOOST_NO_0X_HDR_ARRAY
|
||||||
# define BOOST_NO_0X_HDR_MUTEX
|
# define BOOST_NO_0X_HDR_CHRONO
|
||||||
# define BOOST_NO_0X_HDR_RANDOM
|
# define BOOST_NO_0X_HDR_CODECVT
|
||||||
# define BOOST_NO_0X_HDR_RATIO
|
# define BOOST_NO_0X_HDR_CONDITION_VARIABLE
|
||||||
# define BOOST_NO_0X_HDR_REGEX
|
# define BOOST_NO_0X_HDR_FORWARD_LIST
|
||||||
# define BOOST_NO_0X_HDR_SYSTEM_ERROR
|
# define BOOST_NO_0X_HDR_FUTURE
|
||||||
# define BOOST_NO_0X_HDR_THREAD
|
# define BOOST_NO_0X_HDR_INITIALIZER_LIST
|
||||||
# define BOOST_NO_0X_HDR_TUPLE
|
# define BOOST_NO_0X_HDR_MUTEX
|
||||||
# define BOOST_NO_0X_HDR_TYPE_TRAITS
|
# define BOOST_NO_0X_HDR_RANDOM
|
||||||
# define BOOST_NO_0X_HDR_TYPEINDEX
|
# define BOOST_NO_0X_HDR_RATIO
|
||||||
# define BOOST_NO_STD_UNORDERED // deprecated; see following
|
# define BOOST_NO_0X_HDR_REGEX
|
||||||
# define BOOST_NO_0X_HDR_UNORDERED_MAP
|
# define BOOST_NO_0X_HDR_SYSTEM_ERROR
|
||||||
# define BOOST_NO_0X_HDR_UNORDERED_SET
|
# define BOOST_NO_0X_HDR_THREAD
|
||||||
# define BOOST_NO_NUMERIC_LIMITS_LOWEST
|
# define BOOST_NO_0X_HDR_TUPLE
|
||||||
|
# define BOOST_NO_0X_HDR_TYPE_TRAITS
|
||||||
#define BOOST_STDLIB "STLPort standard library version " BOOST_STRINGIZE(__SGI_STL_PORT)
|
# define BOOST_NO_0X_HDR_TYPEINDEX
|
||||||
|
# define BOOST_NO_STD_UNORDERED // deprecated; see following
|
||||||
|
# define BOOST_NO_0X_HDR_UNORDERED_MAP
|
||||||
|
# define BOOST_NO_0X_HDR_UNORDERED_SET
|
||||||
|
# define BOOST_NO_NUMERIC_LIMITS_LOWEST
|
||||||
|
|
||||||
|
#define BOOST_STDLIB "STLPort standard library version " BOOST_STRINGIZE(__SGI_STL_PORT)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,45 +1,51 @@
|
||||||
// (C) Copyright John Maddock 2001 - 2002.
|
// (C) Copyright John Maddock 2001 - 2002.
|
||||||
// Use, modification and distribution are subject to the
|
// Use, modification and distribution are subject to the
|
||||||
// Boost Software License, Version 1.0. (See accompanying file
|
// Boost Software License, Version 1.0. (See accompanying file
|
||||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
|
||||||
// See http://www.boost.org for most recent version.
|
// See http://www.boost.org for most recent version.
|
||||||
|
|
||||||
#if __IBMCPP__ <= 501
|
#if __IBMCPP__ <= 501
|
||||||
# define BOOST_NO_STD_ALLOCATOR
|
# define BOOST_NO_STD_ALLOCATOR
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define BOOST_HAS_MACRO_USE_FACET
|
#define BOOST_HAS_MACRO_USE_FACET
|
||||||
#define BOOST_NO_STD_MESSAGES
|
#define BOOST_NO_STD_MESSAGES
|
||||||
|
|
||||||
// C++0x headers not yet implemented
|
// Apple doesn't seem to reliably defined a *unix* macro
|
||||||
//
|
#if !defined(CYGWIN) && ( defined(__unix__) \
|
||||||
# define BOOST_NO_0X_HDR_ARRAY
|
|| defined(__unix) \
|
||||||
# define BOOST_NO_0X_HDR_CHRONO
|
|| defined(unix) \
|
||||||
# define BOOST_NO_0X_HDR_CODECVT
|
|| defined(__APPLE__) \
|
||||||
# define BOOST_NO_0X_HDR_CONCEPTS
|
|| defined(__APPLE) \
|
||||||
# define BOOST_NO_0X_HDR_CONDITION_VARIABLE
|
|| defined(APPLE))
|
||||||
# define BOOST_NO_0X_HDR_CONTAINER_CONCEPTS
|
# include <unistd.h>
|
||||||
# define BOOST_NO_0X_HDR_FORWARD_LIST
|
#endif
|
||||||
# define BOOST_NO_0X_HDR_FUTURE
|
|
||||||
# define BOOST_NO_0X_HDR_INITIALIZER_LIST
|
// C++0x headers not yet implemented
|
||||||
# define BOOST_NO_0X_HDR_ITERATOR_CONCEPTS
|
//
|
||||||
# define BOOST_NO_0X_HDR_MEMORY_CONCEPTS
|
# define BOOST_NO_0X_HDR_ARRAY
|
||||||
# define BOOST_NO_0X_HDR_MUTEX
|
# define BOOST_NO_0X_HDR_CHRONO
|
||||||
# define BOOST_NO_0X_HDR_RANDOM
|
# define BOOST_NO_0X_HDR_CODECVT
|
||||||
# define BOOST_NO_0X_HDR_RATIO
|
# define BOOST_NO_0X_HDR_CONDITION_VARIABLE
|
||||||
# define BOOST_NO_0X_HDR_REGEX
|
# define BOOST_NO_0X_HDR_FORWARD_LIST
|
||||||
# define BOOST_NO_0X_HDR_SYSTEM_ERROR
|
# define BOOST_NO_0X_HDR_FUTURE
|
||||||
# define BOOST_NO_0X_HDR_THREAD
|
# define BOOST_NO_0X_HDR_INITIALIZER_LIST
|
||||||
# define BOOST_NO_0X_HDR_TUPLE
|
# define BOOST_NO_0X_HDR_MUTEX
|
||||||
# define BOOST_NO_0X_HDR_TYPE_TRAITS
|
# define BOOST_NO_0X_HDR_RANDOM
|
||||||
# define BOOST_NO_0X_HDR_TYPEINDEX
|
# define BOOST_NO_0X_HDR_RATIO
|
||||||
# define BOOST_NO_STD_UNORDERED // deprecated; see following
|
# define BOOST_NO_0X_HDR_REGEX
|
||||||
# define BOOST_NO_0X_HDR_UNORDERED_MAP
|
# define BOOST_NO_0X_HDR_SYSTEM_ERROR
|
||||||
# define BOOST_NO_0X_HDR_UNORDERED_SET
|
# define BOOST_NO_0X_HDR_THREAD
|
||||||
# define BOOST_NO_NUMERIC_LIMITS_LOWEST
|
# define BOOST_NO_0X_HDR_TUPLE
|
||||||
|
# define BOOST_NO_0X_HDR_TYPE_TRAITS
|
||||||
#define BOOST_STDLIB "Visual Age default standard library"
|
# define BOOST_NO_0X_HDR_TYPEINDEX
|
||||||
|
# define BOOST_NO_STD_UNORDERED // deprecated; see following
|
||||||
|
# define BOOST_NO_0X_HDR_UNORDERED_MAP
|
||||||
|
# define BOOST_NO_0X_HDR_UNORDERED_SET
|
||||||
|
# define BOOST_NO_NUMERIC_LIMITS_LOWEST
|
||||||
|
|
||||||
|
#define BOOST_STDLIB "Visual Age default standard library"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -1,124 +1,124 @@
|
||||||
// boost/config/user.hpp ---------------------------------------------------//
|
// boost/config/user.hpp ---------------------------------------------------//
|
||||||
|
|
||||||
// (C) Copyright John Maddock 2001.
|
// (C) Copyright John Maddock 2001.
|
||||||
// Use, modification and distribution are subject to the
|
// Use, modification and distribution are subject to the
|
||||||
// Boost Software License, Version 1.0. (See accompanying file
|
// Boost Software License, Version 1.0. (See accompanying file
|
||||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
|
||||||
// Do not check in modified versions of this file,
|
// Do not check in modified versions of this file,
|
||||||
// This file may be customized by the end user, but not by boost.
|
// This file may be customized by the end user, but not by boost.
|
||||||
|
|
||||||
//
|
//
|
||||||
// Use this file to define a site and compiler specific
|
// Use this file to define a site and compiler specific
|
||||||
// configuration policy:
|
// configuration policy:
|
||||||
//
|
//
|
||||||
|
|
||||||
// define this to locate a compiler config file:
|
// define this to locate a compiler config file:
|
||||||
// #define BOOST_COMPILER_CONFIG <myheader>
|
// #define BOOST_COMPILER_CONFIG <myheader>
|
||||||
|
|
||||||
// define this to locate a stdlib config file:
|
// define this to locate a stdlib config file:
|
||||||
// #define BOOST_STDLIB_CONFIG <myheader>
|
// #define BOOST_STDLIB_CONFIG <myheader>
|
||||||
|
|
||||||
// define this to locate a platform config file:
|
// define this to locate a platform config file:
|
||||||
// #define BOOST_PLATFORM_CONFIG <myheader>
|
// #define BOOST_PLATFORM_CONFIG <myheader>
|
||||||
|
|
||||||
// define this to disable compiler config,
|
// define this to disable compiler config,
|
||||||
// use if your compiler config has nothing to set:
|
// use if your compiler config has nothing to set:
|
||||||
// #define BOOST_NO_COMPILER_CONFIG
|
// #define BOOST_NO_COMPILER_CONFIG
|
||||||
|
|
||||||
// define this to disable stdlib config,
|
// define this to disable stdlib config,
|
||||||
// use if your stdlib config has nothing to set:
|
// use if your stdlib config has nothing to set:
|
||||||
// #define BOOST_NO_STDLIB_CONFIG
|
// #define BOOST_NO_STDLIB_CONFIG
|
||||||
|
|
||||||
// define this to disable platform config,
|
// define this to disable platform config,
|
||||||
// use if your platform config has nothing to set:
|
// use if your platform config has nothing to set:
|
||||||
// #define BOOST_NO_PLATFORM_CONFIG
|
// #define BOOST_NO_PLATFORM_CONFIG
|
||||||
|
|
||||||
// define this to disable all config options,
|
// define this to disable all config options,
|
||||||
// excluding the user config. Use if your
|
// excluding the user config. Use if your
|
||||||
// setup is fully ISO compliant, and has no
|
// setup is fully ISO compliant, and has no
|
||||||
// useful extensions, or for autoconf generated
|
// useful extensions, or for autoconf generated
|
||||||
// setups:
|
// setups:
|
||||||
// #define BOOST_NO_CONFIG
|
// #define BOOST_NO_CONFIG
|
||||||
|
|
||||||
// define this to make the config "optimistic"
|
// define this to make the config "optimistic"
|
||||||
// about unknown compiler versions. Normally
|
// about unknown compiler versions. Normally
|
||||||
// unknown compiler versions are assumed to have
|
// unknown compiler versions are assumed to have
|
||||||
// all the defects of the last known version, however
|
// all the defects of the last known version, however
|
||||||
// setting this flag, causes the config to assume
|
// setting this flag, causes the config to assume
|
||||||
// that unknown compiler versions are fully conformant
|
// that unknown compiler versions are fully conformant
|
||||||
// with the standard:
|
// with the standard:
|
||||||
// #define BOOST_STRICT_CONFIG
|
// #define BOOST_STRICT_CONFIG
|
||||||
|
|
||||||
// define this to cause the config to halt compilation
|
// define this to cause the config to halt compilation
|
||||||
// with an #error if it encounters anything unknown --
|
// with an #error if it encounters anything unknown --
|
||||||
// either an unknown compiler version or an unknown
|
// either an unknown compiler version or an unknown
|
||||||
// compiler/platform/library:
|
// compiler/platform/library:
|
||||||
// #define BOOST_ASSERT_CONFIG
|
// #define BOOST_ASSERT_CONFIG
|
||||||
|
|
||||||
|
|
||||||
// define if you want to disable threading support, even
|
// define if you want to disable threading support, even
|
||||||
// when available:
|
// when available:
|
||||||
// #define BOOST_DISABLE_THREADS
|
// #define BOOST_DISABLE_THREADS
|
||||||
|
|
||||||
// define when you want to disable Win32 specific features
|
// define when you want to disable Win32 specific features
|
||||||
// even when available:
|
// even when available:
|
||||||
// #define BOOST_DISABLE_WIN32
|
// #define BOOST_DISABLE_WIN32
|
||||||
|
|
||||||
// BOOST_DISABLE_ABI_HEADERS: Stops boost headers from including any
|
// BOOST_DISABLE_ABI_HEADERS: Stops boost headers from including any
|
||||||
// prefix/suffix headers that normally control things like struct
|
// prefix/suffix headers that normally control things like struct
|
||||||
// packing and alignment.
|
// packing and alignment.
|
||||||
// #define BOOST_DISABLE_ABI_HEADERS
|
// #define BOOST_DISABLE_ABI_HEADERS
|
||||||
|
|
||||||
// BOOST_ABI_PREFIX: A prefix header to include in place of whatever
|
// BOOST_ABI_PREFIX: A prefix header to include in place of whatever
|
||||||
// boost.config would normally select, any replacement should set up
|
// boost.config would normally select, any replacement should set up
|
||||||
// struct packing and alignment options as required.
|
// struct packing and alignment options as required.
|
||||||
// #define BOOST_ABI_PREFIX my-header-name
|
// #define BOOST_ABI_PREFIX my-header-name
|
||||||
|
|
||||||
// BOOST_ABI_SUFFIX: A suffix header to include in place of whatever
|
// BOOST_ABI_SUFFIX: A suffix header to include in place of whatever
|
||||||
// boost.config would normally select, any replacement should undo
|
// boost.config would normally select, any replacement should undo
|
||||||
// the effects of the prefix header.
|
// the effects of the prefix header.
|
||||||
// #define BOOST_ABI_SUFFIX my-header-name
|
// #define BOOST_ABI_SUFFIX my-header-name
|
||||||
|
|
||||||
// BOOST_ALL_DYN_LINK: Forces all libraries that have separate source,
|
// BOOST_ALL_DYN_LINK: Forces all libraries that have separate source,
|
||||||
// to be linked as dll's rather than static libraries on Microsoft Windows
|
// to be linked as dll's rather than static libraries on Microsoft Windows
|
||||||
// (this macro is used to turn on __declspec(dllimport) modifiers, so that
|
// (this macro is used to turn on __declspec(dllimport) modifiers, so that
|
||||||
// the compiler knows which symbols to look for in a dll rather than in a
|
// the compiler knows which symbols to look for in a dll rather than in a
|
||||||
// static library). Note that there may be some libraries that can only
|
// static library). Note that there may be some libraries that can only
|
||||||
// be statically linked (Boost.Test for example) and others which may only
|
// be statically linked (Boost.Test for example) and others which may only
|
||||||
// be dynamically linked (Boost.Threads for example), in these cases this
|
// be dynamically linked (Boost.Threads for example), in these cases this
|
||||||
// macro has no effect.
|
// macro has no effect.
|
||||||
// #define BOOST_ALL_DYN_LINK
|
// #define BOOST_ALL_DYN_LINK
|
||||||
|
|
||||||
// BOOST_WHATEVER_DYN_LINK: Forces library "whatever" to be linked as a dll
|
// BOOST_WHATEVER_DYN_LINK: Forces library "whatever" to be linked as a dll
|
||||||
// rather than a static library on Microsoft Windows: replace the WHATEVER
|
// rather than a static library on Microsoft Windows: replace the WHATEVER
|
||||||
// part of the macro name with the name of the library that you want to
|
// part of the macro name with the name of the library that you want to
|
||||||
// dynamically link to, for example use BOOST_DATE_TIME_DYN_LINK or
|
// dynamically link to, for example use BOOST_DATE_TIME_DYN_LINK or
|
||||||
// BOOST_REGEX_DYN_LINK etc (this macro is used to turn on __declspec(dllimport)
|
// BOOST_REGEX_DYN_LINK etc (this macro is used to turn on __declspec(dllimport)
|
||||||
// modifiers, so that the compiler knows which symbols to look for in a dll
|
// modifiers, so that the compiler knows which symbols to look for in a dll
|
||||||
// rather than in a static library).
|
// rather than in a static library).
|
||||||
// Note that there may be some libraries that can only be statically linked
|
// Note that there may be some libraries that can only be statically linked
|
||||||
// (Boost.Test for example) and others which may only be dynamically linked
|
// (Boost.Test for example) and others which may only be dynamically linked
|
||||||
// (Boost.Threads for example), in these cases this macro is unsupported.
|
// (Boost.Threads for example), in these cases this macro is unsupported.
|
||||||
// #define BOOST_WHATEVER_DYN_LINK
|
// #define BOOST_WHATEVER_DYN_LINK
|
||||||
|
|
||||||
// BOOST_ALL_NO_LIB: Tells the config system not to automatically select
|
// BOOST_ALL_NO_LIB: Tells the config system not to automatically select
|
||||||
// which libraries to link against.
|
// which libraries to link against.
|
||||||
// Normally if a compiler supports #pragma lib, then the correct library
|
// Normally if a compiler supports #pragma lib, then the correct library
|
||||||
// build variant will be automatically selected and linked against,
|
// build variant will be automatically selected and linked against,
|
||||||
// simply by the act of including one of that library's headers.
|
// simply by the act of including one of that library's headers.
|
||||||
// This macro turns that feature off.
|
// This macro turns that feature off.
|
||||||
// #define BOOST_ALL_NO_LIB
|
// #define BOOST_ALL_NO_LIB
|
||||||
|
|
||||||
// BOOST_WHATEVER_NO_LIB: Tells the config system not to automatically
|
// BOOST_WHATEVER_NO_LIB: Tells the config system not to automatically
|
||||||
// select which library to link against for library "whatever",
|
// select which library to link against for library "whatever",
|
||||||
// replace WHATEVER in the macro name with the name of the library;
|
// replace WHATEVER in the macro name with the name of the library;
|
||||||
// for example BOOST_DATE_TIME_NO_LIB or BOOST_REGEX_NO_LIB.
|
// for example BOOST_DATE_TIME_NO_LIB or BOOST_REGEX_NO_LIB.
|
||||||
// Normally if a compiler supports #pragma lib, then the correct library
|
// Normally if a compiler supports #pragma lib, then the correct library
|
||||||
// build variant will be automatically selected and linked against, simply
|
// build variant will be automatically selected and linked against, simply
|
||||||
// by the act of including one of that library's headers. This macro turns
|
// by the act of including one of that library's headers. This macro turns
|
||||||
// that feature off.
|
// that feature off.
|
||||||
// #define BOOST_WHATEVER_NO_LIB
|
// #define BOOST_WHATEVER_NO_LIB
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue