update to boost 1.49.0 subset

This commit is contained in:
Dick Hollenbeck 2012-05-15 20:42:04 -05:00
parent 84c782fba7
commit 4a7b5304a0
2275 changed files with 377787 additions and 297308 deletions

View File

@ -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

253
include/boost/any.hpp Normal file
View File

@ -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

437
include/boost/array.hpp Normal file
View File

@ -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*/

112
include/boost/asio.hpp Normal file
View File

@ -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

View File

@ -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

24
include/boost/assign.hpp Normal file
View File

@ -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

19
include/boost/bimap.hpp Normal file
View File

@ -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;
}

24
include/boost/bind.hpp Normal file
View File

@ -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

106
include/boost/blank.hpp Normal file
View File

@ -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

View File

@ -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

View File

@ -1 +1 @@
boost version: 1_45_0 boost version: 1_49_0

View File

@ -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

107
include/boost/cast.hpp Normal file
View File

@ -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

331
include/boost/cerrno.hpp Normal file
View File

@ -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

View File

@ -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

20
include/boost/chrono.hpp Normal file
View File

@ -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

View File

@ -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)

View File

@ -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)

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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)

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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__)

View File

@ -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

View File

@ -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__)

View File

@ -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

View File

@ -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

View File

@ -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?

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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__

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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?

View File

@ -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?

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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>

View File

@ -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

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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

View File

@ -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

View File

@ -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>

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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>

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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__)

View File

@ -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 ---

View File

@ -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 ---

View File

@ -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"

View File

@ -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__)

View File

@ -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

View File

@ -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"

View File

@ -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)

View File

@ -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

View File

@ -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