mirror of
				https://github.com/yuzu-emu/ext-boost.git
				synced 2025-11-04 12:15:01 +00:00 
			
		
		
		
	Pull in some dependencies of Boost.Range.
This commit is contained in:
		
							parent
							
								
									2d497719ff
								
							
						
					
					
						commit
						95fa7cc1cf
					
				
							
								
								
									
										20
									
								
								boost/align.hpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								boost/align.hpp
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,20 @@
 | 
			
		|||
/*
 | 
			
		||||
 (c) 2014 Glen Joseph Fernandes
 | 
			
		||||
 glenjofe at gmail dot com
 | 
			
		||||
 | 
			
		||||
 Distributed under the Boost Software
 | 
			
		||||
 License, Version 1.0.
 | 
			
		||||
 http://boost.org/LICENSE_1_0.txt
 | 
			
		||||
*/
 | 
			
		||||
#ifndef BOOST_ALIGN_HPP
 | 
			
		||||
#define BOOST_ALIGN_HPP
 | 
			
		||||
 | 
			
		||||
#include <boost/align/align.hpp>
 | 
			
		||||
#include <boost/align/aligned_alloc.hpp>
 | 
			
		||||
#include <boost/align/aligned_allocator.hpp>
 | 
			
		||||
#include <boost/align/aligned_allocator_adaptor.hpp>
 | 
			
		||||
#include <boost/align/aligned_delete.hpp>
 | 
			
		||||
#include <boost/align/alignment_of.hpp>
 | 
			
		||||
#include <boost/align/is_aligned.hpp>
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
							
								
								
									
										143
									
								
								boost/aligned_storage.hpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										143
									
								
								boost/aligned_storage.hpp
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,143 @@
 | 
			
		|||
//-----------------------------------------------------------------------------
 | 
			
		||||
// 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 ::boost::mpl::eval_if_c<
 | 
			
		||||
              alignment_ == std::size_t(-1)
 | 
			
		||||
            , ::boost::mpl::identity< ::boost::detail::max_align >
 | 
			
		||||
            , ::boost::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
 | 
			
		||||
   ::boost::detail::aligned_storage::aligned_storage_imp<size_, alignment_> 
 | 
			
		||||
{
 | 
			
		||||
 
 | 
			
		||||
public: // constants
 | 
			
		||||
 | 
			
		||||
    typedef ::boost::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_
 | 
			
		||||
            )
 | 
			
		||||
        );
 | 
			
		||||
 | 
			
		||||
private: // noncopyable
 | 
			
		||||
 | 
			
		||||
    aligned_storage(const aligned_storage&);
 | 
			
		||||
    aligned_storage& operator=(const aligned_storage&);
 | 
			
		||||
 | 
			
		||||
public: // structors
 | 
			
		||||
 | 
			
		||||
    aligned_storage()
 | 
			
		||||
    {
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    ~aligned_storage()
 | 
			
		||||
    {
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
public: // accessors
 | 
			
		||||
 | 
			
		||||
    void* address()
 | 
			
		||||
    {
 | 
			
		||||
        return static_cast<type*>(this)->address();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    const void* address() const
 | 
			
		||||
    {
 | 
			
		||||
        return static_cast<const type*>(this)->address();
 | 
			
		||||
    }
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
//
 | 
			
		||||
// 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)
 | 
			
		||||
}; 
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
} // namespace boost
 | 
			
		||||
 | 
			
		||||
#include "boost/type_traits/detail/bool_trait_undef.hpp"
 | 
			
		||||
 | 
			
		||||
#endif // BOOST_ALIGNED_STORAGE_HPP
 | 
			
		||||
							
								
								
									
										324
									
								
								boost/any.hpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										324
									
								
								boost/any.hpp
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,324 @@
 | 
			
		|||
// See http://www.boost.org/libs/any for Documentation.
 | 
			
		||||
 | 
			
		||||
#ifndef BOOST_ANY_INCLUDED
 | 
			
		||||
#define BOOST_ANY_INCLUDED
 | 
			
		||||
 | 
			
		||||
#if defined(_MSC_VER)
 | 
			
		||||
# pragma once
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
// what:  variant type boost::any
 | 
			
		||||
// who:   contributed by Kevlin Henney,
 | 
			
		||||
//        with features contributed and bugs found by
 | 
			
		||||
//        Antony Polukhin, Ed Brey, Mark Rodgers, 
 | 
			
		||||
//        Peter Dimov, and James Curran
 | 
			
		||||
// when:  July 2001, April 2013 - May 2013
 | 
			
		||||
 | 
			
		||||
#include <algorithm>
 | 
			
		||||
 | 
			
		||||
#include "boost/config.hpp"
 | 
			
		||||
#include <boost/type_index.hpp>
 | 
			
		||||
#include <boost/type_traits/remove_reference.hpp>
 | 
			
		||||
#include <boost/type_traits/decay.hpp>
 | 
			
		||||
#include <boost/type_traits/remove_cv.hpp>
 | 
			
		||||
#include <boost/type_traits/add_reference.hpp>
 | 
			
		||||
#include <boost/type_traits/is_reference.hpp>
 | 
			
		||||
#include <boost/type_traits/is_const.hpp>
 | 
			
		||||
#include <boost/throw_exception.hpp>
 | 
			
		||||
#include <boost/static_assert.hpp>
 | 
			
		||||
#include <boost/utility/enable_if.hpp>
 | 
			
		||||
#include <boost/type_traits/is_same.hpp>
 | 
			
		||||
#include <boost/type_traits/is_const.hpp>
 | 
			
		||||
 | 
			
		||||
namespace boost
 | 
			
		||||
{
 | 
			
		||||
    class any
 | 
			
		||||
    {
 | 
			
		||||
    public: // structors
 | 
			
		||||
 | 
			
		||||
        any() BOOST_NOEXCEPT
 | 
			
		||||
          : content(0)
 | 
			
		||||
        {
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        template<typename ValueType>
 | 
			
		||||
        any(const ValueType & value)
 | 
			
		||||
          : content(new holder<
 | 
			
		||||
                BOOST_DEDUCED_TYPENAME remove_cv<BOOST_DEDUCED_TYPENAME decay<const ValueType>::type>::type
 | 
			
		||||
            >(value))
 | 
			
		||||
        {
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        any(const any & other)
 | 
			
		||||
          : content(other.content ? other.content->clone() : 0)
 | 
			
		||||
        {
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES
 | 
			
		||||
        // Move constructor
 | 
			
		||||
        any(any&& other) BOOST_NOEXCEPT
 | 
			
		||||
          : content(other.content)
 | 
			
		||||
        {
 | 
			
		||||
            other.content = 0;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        // Perfect forwarding of ValueType
 | 
			
		||||
        template<typename ValueType>
 | 
			
		||||
        any(ValueType&& value
 | 
			
		||||
            , typename boost::disable_if<boost::is_same<any&, ValueType> >::type* = 0 // disable if value has type `any&`
 | 
			
		||||
            , typename boost::disable_if<boost::is_const<ValueType> >::type* = 0) // disable if value has type `const ValueType&&`
 | 
			
		||||
          : content(new holder< typename decay<ValueType>::type >(static_cast<ValueType&&>(value)))
 | 
			
		||||
        {
 | 
			
		||||
        }
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
        ~any() BOOST_NOEXCEPT
 | 
			
		||||
        {
 | 
			
		||||
            delete content;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
    public: // modifiers
 | 
			
		||||
 | 
			
		||||
        any & swap(any & rhs) BOOST_NOEXCEPT
 | 
			
		||||
        {
 | 
			
		||||
            std::swap(content, rhs.content);
 | 
			
		||||
            return *this;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#ifdef BOOST_NO_CXX11_RVALUE_REFERENCES
 | 
			
		||||
        template<typename ValueType>
 | 
			
		||||
        any & operator=(const ValueType & rhs)
 | 
			
		||||
        {
 | 
			
		||||
            any(rhs).swap(*this);
 | 
			
		||||
            return *this;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        any & operator=(any rhs)
 | 
			
		||||
        {
 | 
			
		||||
            any(rhs).swap(*this);
 | 
			
		||||
            return *this;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
#else 
 | 
			
		||||
        any & operator=(const any& rhs)
 | 
			
		||||
        {
 | 
			
		||||
            any(rhs).swap(*this);
 | 
			
		||||
            return *this;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        // move assignement
 | 
			
		||||
        any & operator=(any&& rhs) BOOST_NOEXCEPT
 | 
			
		||||
        {
 | 
			
		||||
            rhs.swap(*this);
 | 
			
		||||
            any().swap(rhs);
 | 
			
		||||
            return *this;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        // Perfect forwarding of ValueType
 | 
			
		||||
        template <class ValueType>
 | 
			
		||||
        any & operator=(ValueType&& rhs)
 | 
			
		||||
        {
 | 
			
		||||
            any(static_cast<ValueType&&>(rhs)).swap(*this);
 | 
			
		||||
            return *this;
 | 
			
		||||
        }
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
    public: // queries
 | 
			
		||||
 | 
			
		||||
        bool empty() const BOOST_NOEXCEPT
 | 
			
		||||
        {
 | 
			
		||||
            return !content;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        void clear() BOOST_NOEXCEPT
 | 
			
		||||
        {
 | 
			
		||||
            any().swap(*this);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        const boost::typeindex::type_info& type() const BOOST_NOEXCEPT
 | 
			
		||||
        {
 | 
			
		||||
            return content ? content->type() : boost::typeindex::type_id<void>().type_info();
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
#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 boost::typeindex::type_info& type() const BOOST_NOEXCEPT = 0;
 | 
			
		||||
 | 
			
		||||
            virtual placeholder * clone() const = 0;
 | 
			
		||||
 | 
			
		||||
        };
 | 
			
		||||
 | 
			
		||||
        template<typename ValueType>
 | 
			
		||||
        class holder : public placeholder
 | 
			
		||||
        {
 | 
			
		||||
        public: // structors
 | 
			
		||||
 | 
			
		||||
            holder(const ValueType & value)
 | 
			
		||||
              : held(value)
 | 
			
		||||
            {
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES
 | 
			
		||||
            holder(ValueType&& value)
 | 
			
		||||
              : held(static_cast< ValueType&& >(value))
 | 
			
		||||
            {
 | 
			
		||||
            }
 | 
			
		||||
#endif
 | 
			
		||||
        public: // queries
 | 
			
		||||
 | 
			
		||||
            virtual const boost::typeindex::type_info& type() const BOOST_NOEXCEPT
 | 
			
		||||
            {
 | 
			
		||||
                return boost::typeindex::type_id<ValueType>().type_info();
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            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 *) BOOST_NOEXCEPT;
 | 
			
		||||
 | 
			
		||||
        template<typename ValueType>
 | 
			
		||||
        friend ValueType * unsafe_any_cast(any *) BOOST_NOEXCEPT;
 | 
			
		||||
 | 
			
		||||
#else
 | 
			
		||||
 | 
			
		||||
    public: // representation (public so any_cast can be non-friend)
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
        placeholder * content;
 | 
			
		||||
 | 
			
		||||
    };
 | 
			
		||||
 
 | 
			
		||||
    inline void swap(any & lhs, any & rhs) BOOST_NOEXCEPT
 | 
			
		||||
    {
 | 
			
		||||
        lhs.swap(rhs);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    class BOOST_SYMBOL_VISIBLE bad_any_cast :
 | 
			
		||||
#ifndef BOOST_NO_RTTI
 | 
			
		||||
        public std::bad_cast
 | 
			
		||||
#else
 | 
			
		||||
        public std::exception
 | 
			
		||||
#endif
 | 
			
		||||
    {
 | 
			
		||||
    public:
 | 
			
		||||
        virtual const char * what() const BOOST_NOEXCEPT_OR_NOTHROW
 | 
			
		||||
        {
 | 
			
		||||
            return "boost::bad_any_cast: "
 | 
			
		||||
                   "failed conversion using boost::any_cast";
 | 
			
		||||
        }
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    template<typename ValueType>
 | 
			
		||||
    ValueType * any_cast(any * operand) BOOST_NOEXCEPT
 | 
			
		||||
    {
 | 
			
		||||
        return operand && operand->type() == boost::typeindex::type_id<ValueType>()
 | 
			
		||||
            ? &static_cast<any::holder<BOOST_DEDUCED_TYPENAME remove_cv<ValueType>::type> *>(operand->content)->held
 | 
			
		||||
            : 0;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    template<typename ValueType>
 | 
			
		||||
    inline const ValueType * any_cast(const any * operand) BOOST_NOEXCEPT
 | 
			
		||||
    {
 | 
			
		||||
        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;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        nonref * result = any_cast<nonref>(&operand);
 | 
			
		||||
        if(!result)
 | 
			
		||||
            boost::throw_exception(bad_any_cast());
 | 
			
		||||
 | 
			
		||||
        // Attempt to avoid construction of a temporary object in cases when 
 | 
			
		||||
        // `ValueType` is not a reference. Example:
 | 
			
		||||
        // `static_cast<std::string>(*result);` 
 | 
			
		||||
        // which is equal to `std::string(*result);`
 | 
			
		||||
        typedef BOOST_DEDUCED_TYPENAME boost::mpl::if_<
 | 
			
		||||
            boost::is_reference<ValueType>,
 | 
			
		||||
            ValueType,
 | 
			
		||||
            BOOST_DEDUCED_TYPENAME boost::add_reference<ValueType>::type
 | 
			
		||||
        >::type ref_type;
 | 
			
		||||
 | 
			
		||||
        return static_cast<ref_type>(*result);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    template<typename ValueType>
 | 
			
		||||
    inline ValueType any_cast(const any & operand)
 | 
			
		||||
    {
 | 
			
		||||
        typedef BOOST_DEDUCED_TYPENAME remove_reference<ValueType>::type nonref;
 | 
			
		||||
        return any_cast<const nonref &>(const_cast<any &>(operand));
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES
 | 
			
		||||
    template<typename ValueType>
 | 
			
		||||
    inline ValueType any_cast(any&& operand)
 | 
			
		||||
    {
 | 
			
		||||
        BOOST_STATIC_ASSERT_MSG(
 | 
			
		||||
            boost::is_rvalue_reference<ValueType&&>::value /*true if ValueType is rvalue or just a value*/
 | 
			
		||||
            || boost::is_const< typename boost::remove_reference<ValueType>::type >::value,
 | 
			
		||||
            "boost::any_cast shall not be used for getting nonconst references to temporary objects" 
 | 
			
		||||
        );
 | 
			
		||||
        return any_cast<ValueType>(operand);
 | 
			
		||||
    }
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    // 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) BOOST_NOEXCEPT
 | 
			
		||||
    {
 | 
			
		||||
        return &static_cast<any::holder<ValueType> *>(operand->content)->held;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    template<typename ValueType>
 | 
			
		||||
    inline const ValueType * unsafe_any_cast(const any * operand) BOOST_NOEXCEPT
 | 
			
		||||
    {
 | 
			
		||||
        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
 | 
			
		||||
							
								
								
									
										446
									
								
								boost/array.hpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										446
									
								
								boost/array.hpp
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,446 @@
 | 
			
		|||
/* 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)
 | 
			
		||||
 *
 | 
			
		||||
 * 14 Apr 2012 - (mtc) Added support for boost::hash
 | 
			
		||||
 * 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 <boost/functional/hash_fwd.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_MSG( i < N, "out of range" );
 | 
			
		||||
            return elems[i];
 | 
			
		||||
        }
 | 
			
		||||
        
 | 
			
		||||
        const_reference operator[](size_type i) const 
 | 
			
		||||
        {     
 | 
			
		||||
            BOOST_ASSERT_MSG( 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
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    template<class T, std::size_t N>
 | 
			
		||||
    std::size_t hash_value(const array<T,N>& arr)
 | 
			
		||||
    {
 | 
			
		||||
        return boost::hash_range(arr.begin(), arr.end());
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
} /* namespace boost */
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#if BOOST_WORKAROUND(BOOST_MSVC, >= 1400)  
 | 
			
		||||
# pragma warning(pop)  
 | 
			
		||||
#endif 
 | 
			
		||||
 | 
			
		||||
#endif /*BOOST_ARRAY_HPP*/
 | 
			
		||||
							
								
								
									
										121
									
								
								boost/asio.hpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										121
									
								
								boost/asio.hpp
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,121 @@
 | 
			
		|||
//
 | 
			
		||||
// asio.hpp
 | 
			
		||||
// ~~~~~~~~
 | 
			
		||||
//
 | 
			
		||||
// Copyright (c) 2003-2014 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/async_result.hpp>
 | 
			
		||||
#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/coroutine.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/generic/basic_endpoint.hpp>
 | 
			
		||||
#include <boost/asio/generic/datagram_protocol.hpp>
 | 
			
		||||
#include <boost/asio/generic/raw_protocol.hpp>
 | 
			
		||||
#include <boost/asio/generic/seq_packet_protocol.hpp>
 | 
			
		||||
#include <boost/asio/generic/stream_protocol.hpp>
 | 
			
		||||
#include <boost/asio/handler_alloc_hook.hpp>
 | 
			
		||||
#include <boost/asio/handler_continuation_hook.hpp>
 | 
			
		||||
#include <boost/asio/handler_invoke_hook.hpp>
 | 
			
		||||
#include <boost/asio/handler_type.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
 | 
			
		||||
							
								
								
									
										78
									
								
								boost/assert.hpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										78
									
								
								boost/assert.hpp
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,78 @@
 | 
			
		|||
//
 | 
			
		||||
//  boost/assert.hpp - BOOST_ASSERT(expr)
 | 
			
		||||
//                     BOOST_ASSERT_MSG(expr, msg)
 | 
			
		||||
//                     BOOST_VERIFY(expr)
 | 
			
		||||
//                     BOOST_VERIFY_MSG(expr, msg)
 | 
			
		||||
//
 | 
			
		||||
//  Copyright (c) 2001, 2002 Peter Dimov and Multi Media Ltd.
 | 
			
		||||
//  Copyright (c) 2007, 2014 Peter Dimov
 | 
			
		||||
//  Copyright (c) Beman Dawes 2011
 | 
			
		||||
//
 | 
			
		||||
//  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
 | 
			
		||||
//
 | 
			
		||||
//  Note: There are no include guards. This is intentional.
 | 
			
		||||
//
 | 
			
		||||
//  See http://www.boost.org/libs/assert/assert.html for documentation.
 | 
			
		||||
//
 | 
			
		||||
 | 
			
		||||
//
 | 
			
		||||
// Stop inspect complaining about use of 'assert':
 | 
			
		||||
//
 | 
			
		||||
// boostinspect:naassert_macro
 | 
			
		||||
//
 | 
			
		||||
 | 
			
		||||
//
 | 
			
		||||
// BOOST_ASSERT, BOOST_ASSERT_MSG
 | 
			
		||||
//
 | 
			
		||||
 | 
			
		||||
#undef BOOST_ASSERT
 | 
			
		||||
#undef BOOST_ASSERT_MSG
 | 
			
		||||
 | 
			
		||||
#if defined(BOOST_DISABLE_ASSERTS) || ( defined(BOOST_ENABLE_ASSERT_DEBUG_HANDLER) && defined(NDEBUG) )
 | 
			
		||||
 | 
			
		||||
# define BOOST_ASSERT(expr) ((void)0)
 | 
			
		||||
# define BOOST_ASSERT_MSG(expr, msg) ((void)0)
 | 
			
		||||
 | 
			
		||||
#elif defined(BOOST_ENABLE_ASSERT_HANDLER) || ( defined(BOOST_ENABLE_ASSERT_DEBUG_HANDLER) && !defined(NDEBUG) )
 | 
			
		||||
 | 
			
		||||
#include <boost/config.hpp> // for BOOST_LIKELY
 | 
			
		||||
#include <boost/current_function.hpp>
 | 
			
		||||
 | 
			
		||||
namespace boost
 | 
			
		||||
{
 | 
			
		||||
    void assertion_failed(char const * expr, char const * function, char const * file, long line); // user defined
 | 
			
		||||
    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(expr) (BOOST_LIKELY(!!(expr))? ((void)0): ::boost::assertion_failed(#expr, BOOST_CURRENT_FUNCTION, __FILE__, __LINE__))
 | 
			
		||||
#define BOOST_ASSERT_MSG(expr, msg) (BOOST_LIKELY(!!(expr))? ((void)0): ::boost::assertion_failed_msg(#expr, msg, BOOST_CURRENT_FUNCTION, __FILE__, __LINE__))
 | 
			
		||||
 | 
			
		||||
#else
 | 
			
		||||
 | 
			
		||||
# include <assert.h> // .h to support old libraries w/o <cassert> - effect is the same
 | 
			
		||||
 | 
			
		||||
# define BOOST_ASSERT(expr) assert(expr)
 | 
			
		||||
# define BOOST_ASSERT_MSG(expr, msg) assert((expr)&&(msg))
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
//
 | 
			
		||||
// BOOST_VERIFY, BOOST_VERIFY_MSG
 | 
			
		||||
//
 | 
			
		||||
 | 
			
		||||
#undef BOOST_VERIFY
 | 
			
		||||
#undef BOOST_VERIFY_MSG
 | 
			
		||||
 | 
			
		||||
#if defined(BOOST_DISABLE_ASSERTS) || ( !defined(BOOST_ENABLE_ASSERT_HANDLER) && defined(NDEBUG) )
 | 
			
		||||
 | 
			
		||||
# define BOOST_VERIFY(expr) ((void)(expr))
 | 
			
		||||
# define BOOST_VERIFY_MSG(expr, msg) ((void)(expr))
 | 
			
		||||
 | 
			
		||||
#else
 | 
			
		||||
 | 
			
		||||
# define BOOST_VERIFY(expr) BOOST_ASSERT(expr)
 | 
			
		||||
# define BOOST_VERIFY_MSG(expr, msg) BOOST_ASSERT_MSG(expr,msg)
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
							
								
								
									
										24
									
								
								boost/assign.hpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										24
									
								
								boost/assign.hpp
									
									
									
									
									
										Normal 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)
 | 
			
		||||
# 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
 | 
			
		||||
							
								
								
									
										18
									
								
								boost/atomic.hpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								boost/atomic.hpp
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,18 @@
 | 
			
		|||
#ifndef BOOST_ATOMIC_HPP
 | 
			
		||||
#define BOOST_ATOMIC_HPP
 | 
			
		||||
 | 
			
		||||
//  Copyright (c) 2011 Helge Bahmann
 | 
			
		||||
//
 | 
			
		||||
//  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)
 | 
			
		||||
 | 
			
		||||
// This header includes all Boost.Atomic public headers
 | 
			
		||||
 | 
			
		||||
#include <boost/atomic/atomic.hpp>
 | 
			
		||||
 | 
			
		||||
#ifdef BOOST_HAS_PRAGMA_ONCE
 | 
			
		||||
#pragma once
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
							
								
								
									
										19
									
								
								boost/bimap.hpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								boost/bimap.hpp
									
									
									
									
									
										Normal 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
									
								
								boost/bind.hpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										24
									
								
								boost/bind.hpp
									
									
									
									
									
										Normal 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
									
								
								boost/blank.hpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										106
									
								
								boost/blank.hpp
									
									
									
									
									
										Normal 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
 | 
			
		||||
							
								
								
									
										22
									
								
								boost/blank_fwd.hpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								boost/blank_fwd.hpp
									
									
									
									
									
										Normal 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
 | 
			
		||||
							
								
								
									
										20
									
								
								boost/call_traits.hpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								boost/call_traits.hpp
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,20 @@
 | 
			
		|||
//  (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000.
 | 
			
		||||
//  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/libs/utility for most recent version including documentation.
 | 
			
		||||
 | 
			
		||||
//  See boost/detail/call_traits.hpp
 | 
			
		||||
//  for full copyright notices.
 | 
			
		||||
 | 
			
		||||
#ifndef BOOST_CALL_TRAITS_HPP
 | 
			
		||||
#define BOOST_CALL_TRAITS_HPP
 | 
			
		||||
 | 
			
		||||
#ifndef BOOST_CONFIG_HPP
 | 
			
		||||
#include <boost/config.hpp>
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#include <boost/detail/call_traits.hpp>
 | 
			
		||||
 | 
			
		||||
#endif // BOOST_CALL_TRAITS_HPP
 | 
			
		||||
							
								
								
									
										20
									
								
								boost/cast.hpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								boost/cast.hpp
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,20 @@
 | 
			
		|||
//  boost cast.hpp header file
 | 
			
		||||
//
 | 
			
		||||
//  (C) Copyright Antony Polukhin 2014.
 | 
			
		||||
//
 | 
			
		||||
//  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.
 | 
			
		||||
 | 
			
		||||
// This is a DEPRECATED header file!
 | 
			
		||||
// Use <boost/polymorphic_cast.hpp> or <boost/numeric/conversion/cast.hpp> instead
 | 
			
		||||
 | 
			
		||||
#ifndef BOOST_CAST_HPP
 | 
			
		||||
#define BOOST_CAST_HPP
 | 
			
		||||
 | 
			
		||||
# include <boost/polymorphic_cast.hpp>
 | 
			
		||||
# include <boost/numeric/conversion/cast.hpp>
 | 
			
		||||
 | 
			
		||||
#endif  // BOOST_CAST_HPP
 | 
			
		||||
							
								
								
									
										331
									
								
								boost/cerrno.hpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										331
									
								
								boost/cerrno.hpp
									
									
									
									
									
										Normal 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
 | 
			
		||||
							
								
								
									
										17
									
								
								boost/checked_delete.hpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								boost/checked_delete.hpp
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,17 @@
 | 
			
		|||
/*
 | 
			
		||||
 * Copyright (c) 2014 Glen Fernandes
 | 
			
		||||
 *
 | 
			
		||||
 * 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_CHECKED_DELETE_HPP
 | 
			
		||||
#define BOOST_CHECKED_DELETE_HPP
 | 
			
		||||
 | 
			
		||||
// The header file at this path is deprecated;
 | 
			
		||||
// use boost/core/checked_delete.hpp instead.
 | 
			
		||||
 | 
			
		||||
#include <boost/core/checked_delete.hpp>
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
							
								
								
									
										20
									
								
								boost/chrono.hpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								boost/chrono.hpp
									
									
									
									
									
										Normal 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
 | 
			
		||||
							
								
								
									
										65
									
								
								boost/circular_buffer.hpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										65
									
								
								boost/circular_buffer.hpp
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,65 @@
 | 
			
		|||
// 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)
 | 
			
		||||
    #pragma once
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#include <boost/circular_buffer_fwd.hpp>
 | 
			
		||||
#include <boost/detail/workaround.hpp>
 | 
			
		||||
#include <boost/static_assert.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_IS_CONVERTIBLE: Check if Iterator::value_type is convertible to Type.
 | 
			
		||||
#if BOOST_WORKAROUND(__BORLANDC__, <= 0x0550) || BOOST_WORKAROUND(__MWERKS__, <= 0x2407)
 | 
			
		||||
    #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_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_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_ASSERT
 | 
			
		||||
#undef BOOST_CB_ENABLE_DEBUG
 | 
			
		||||
 | 
			
		||||
#endif // #if !defined(BOOST_CIRCULAR_BUFFER_HPP)
 | 
			
		||||
							
								
								
									
										43
									
								
								boost/circular_buffer_fwd.hpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										43
									
								
								boost/circular_buffer_fwd.hpp
									
									
									
									
									
										Normal 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)
 | 
			
		||||
    #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)
 | 
			
		||||
							
								
								
									
										20
									
								
								boost/compressed_pair.hpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								boost/compressed_pair.hpp
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,20 @@
 | 
			
		|||
//  (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000.
 | 
			
		||||
//  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/libs/utility for most recent version including documentation.
 | 
			
		||||
 | 
			
		||||
//  See boost/detail/compressed_pair.hpp
 | 
			
		||||
//  for full copyright notices.
 | 
			
		||||
 | 
			
		||||
#ifndef BOOST_COMPRESSED_PAIR_HPP
 | 
			
		||||
#define BOOST_COMPRESSED_PAIR_HPP
 | 
			
		||||
 | 
			
		||||
#ifndef BOOST_CONFIG_HPP
 | 
			
		||||
#include <boost/config.hpp>
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#include <boost/detail/compressed_pair.hpp>
 | 
			
		||||
 | 
			
		||||
#endif // BOOST_COMPRESSED_PAIR_HPP
 | 
			
		||||
							
								
								
									
										45
									
								
								boost/concept/assert.hpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										45
									
								
								boost/concept/assert.hpp
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,45 @@
 | 
			
		|||
// Copyright David Abrahams 2006. 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_CONCEPT_ASSERT_DWA2006430_HPP
 | 
			
		||||
# define BOOST_CONCEPT_ASSERT_DWA2006430_HPP
 | 
			
		||||
 | 
			
		||||
# include <boost/config.hpp>
 | 
			
		||||
# include <boost/detail/workaround.hpp>
 | 
			
		||||
 | 
			
		||||
// The old protocol used a constraints() member function in concept
 | 
			
		||||
// checking classes.  If the compiler supports SFINAE, we can detect
 | 
			
		||||
// that function and seamlessly support the old concept checking
 | 
			
		||||
// classes.  In this release, backward compatibility with the old
 | 
			
		||||
// concept checking classes is enabled by default, where available.
 | 
			
		||||
// The old protocol is deprecated, though, and backward compatibility
 | 
			
		||||
// will no longer be the default in the next release.
 | 
			
		||||
 | 
			
		||||
# if !defined(BOOST_NO_OLD_CONCEPT_SUPPORT)                                         \
 | 
			
		||||
    && !defined(BOOST_NO_SFINAE)                                                    \
 | 
			
		||||
                                                                                    \
 | 
			
		||||
    && !(BOOST_WORKAROUND(__GNUC__, == 3) && BOOST_WORKAROUND(__GNUC_MINOR__, < 4))
 | 
			
		||||
 | 
			
		||||
// Note: gcc-2.96 through 3.3.x have some SFINAE, but no ability to
 | 
			
		||||
// check for the presence of particularmember functions.
 | 
			
		||||
 | 
			
		||||
#  define BOOST_OLD_CONCEPT_SUPPORT
 | 
			
		||||
 | 
			
		||||
# endif
 | 
			
		||||
 | 
			
		||||
# ifdef BOOST_MSVC
 | 
			
		||||
#  include <boost/concept/detail/msvc.hpp>
 | 
			
		||||
# elif BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564))
 | 
			
		||||
#  include <boost/concept/detail/borland.hpp>
 | 
			
		||||
# else 
 | 
			
		||||
#  include <boost/concept/detail/general.hpp>
 | 
			
		||||
# endif
 | 
			
		||||
 | 
			
		||||
  // Usage, in class or function context:
 | 
			
		||||
  //
 | 
			
		||||
  //     BOOST_CONCEPT_ASSERT((UnaryFunctionConcept<F,bool,int>));
 | 
			
		||||
  //
 | 
			
		||||
# define BOOST_CONCEPT_ASSERT(ModelInParens) \
 | 
			
		||||
    BOOST_CONCEPT_ASSERT_FN(void(*)ModelInParens)
 | 
			
		||||
 | 
			
		||||
#endif // BOOST_CONCEPT_ASSERT_DWA2006430_HPP
 | 
			
		||||
							
								
								
									
										16
									
								
								boost/concept/detail/backward_compatibility.hpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								boost/concept/detail/backward_compatibility.hpp
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,16 @@
 | 
			
		|||
// Copyright David Abrahams 2009. 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_CONCEPT_BACKWARD_COMPATIBILITY_DWA200968_HPP
 | 
			
		||||
# define BOOST_CONCEPT_BACKWARD_COMPATIBILITY_DWA200968_HPP
 | 
			
		||||
 | 
			
		||||
namespace boost
 | 
			
		||||
{
 | 
			
		||||
  namespace concepts {}
 | 
			
		||||
 | 
			
		||||
# if defined(BOOST_HAS_CONCEPTS) && !defined(BOOST_CONCEPT_NO_BACKWARD_KEYWORD)
 | 
			
		||||
  namespace concept = concepts;
 | 
			
		||||
# endif 
 | 
			
		||||
} // namespace boost::concept
 | 
			
		||||
 | 
			
		||||
#endif // BOOST_CONCEPT_BACKWARD_COMPATIBILITY_DWA200968_HPP
 | 
			
		||||
							
								
								
									
										30
									
								
								boost/concept/detail/borland.hpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										30
									
								
								boost/concept/detail/borland.hpp
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,30 @@
 | 
			
		|||
// Copyright David Abrahams 2006. 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_CONCEPT_DETAIL_BORLAND_DWA2006429_HPP
 | 
			
		||||
# define BOOST_CONCEPT_DETAIL_BORLAND_DWA2006429_HPP
 | 
			
		||||
 | 
			
		||||
# include <boost/preprocessor/cat.hpp>
 | 
			
		||||
# include <boost/concept/detail/backward_compatibility.hpp>
 | 
			
		||||
 | 
			
		||||
namespace boost { namespace concepts {
 | 
			
		||||
 | 
			
		||||
template <class ModelFnPtr>
 | 
			
		||||
struct require;
 | 
			
		||||
 | 
			
		||||
template <class Model>
 | 
			
		||||
struct require<void(*)(Model)>
 | 
			
		||||
{
 | 
			
		||||
    enum { instantiate = sizeof((((Model*)0)->~Model()), 3) };
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
#  define BOOST_CONCEPT_ASSERT_FN( ModelFnPtr )         \
 | 
			
		||||
  enum                                                  \
 | 
			
		||||
  {                                                     \
 | 
			
		||||
      BOOST_PP_CAT(boost_concept_check,__LINE__) =      \
 | 
			
		||||
      boost::concepts::require<ModelFnPtr>::instantiate  \
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
}} // namespace boost::concept
 | 
			
		||||
 | 
			
		||||
#endif // BOOST_CONCEPT_DETAIL_BORLAND_DWA2006429_HPP
 | 
			
		||||
							
								
								
									
										34
									
								
								boost/concept/detail/concept_def.hpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										34
									
								
								boost/concept/detail/concept_def.hpp
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,34 @@
 | 
			
		|||
// Copyright David Abrahams 2006. 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_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/enum.hpp>
 | 
			
		||||
# include <boost/preprocessor/comma_if.hpp>
 | 
			
		||||
# include <boost/preprocessor/cat.hpp>
 | 
			
		||||
#endif // BOOST_CONCEPT_DETAIL_CONCEPT_DEF_DWA200651_HPP
 | 
			
		||||
 | 
			
		||||
// BOOST_concept(SomeName, (p1)(p2)...(pN))
 | 
			
		||||
//
 | 
			
		||||
// Expands to "template <class p1, class p2, ...class pN> struct SomeName"
 | 
			
		||||
//
 | 
			
		||||
// Also defines an equivalent SomeNameConcept for backward compatibility.
 | 
			
		||||
// Maybe in the next release we can kill off the "Concept" suffix for good.
 | 
			
		||||
# define BOOST_concept(name, params)                                            \
 | 
			
		||||
    template < BOOST_PP_SEQ_FOR_EACH_I(BOOST_CONCEPT_typename,~,params) >       \
 | 
			
		||||
    struct name; /* forward declaration */                                      \
 | 
			
		||||
                                                                                \
 | 
			
		||||
    template < BOOST_PP_SEQ_FOR_EACH_I(BOOST_CONCEPT_typename,~,params) >       \
 | 
			
		||||
    struct BOOST_PP_CAT(name,Concept)                                           \
 | 
			
		||||
      : name< BOOST_PP_SEQ_ENUM(params) >                                       \
 | 
			
		||||
    {                                                                           \
 | 
			
		||||
    };                                                                          \
 | 
			
		||||
                                                                                \
 | 
			
		||||
    template < BOOST_PP_SEQ_FOR_EACH_I(BOOST_CONCEPT_typename,~,params) >       \
 | 
			
		||||
    struct name                                                                
 | 
			
		||||
    
 | 
			
		||||
// Helper for BOOST_concept, above.
 | 
			
		||||
# define BOOST_CONCEPT_typename(r, ignored, index, t) \
 | 
			
		||||
    BOOST_PP_COMMA_IF(index) typename t
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										5
									
								
								boost/concept/detail/concept_undef.hpp
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										5
									
								
								boost/concept/detail/concept_undef.hpp
									
									
									
									
									
										Executable file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,5 @@
 | 
			
		|||
// Copyright David Abrahams 2006. 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)
 | 
			
		||||
# undef BOOST_concept_typename
 | 
			
		||||
# undef BOOST_concept
 | 
			
		||||
							
								
								
									
										84
									
								
								boost/concept/detail/general.hpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										84
									
								
								boost/concept/detail/general.hpp
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,84 @@
 | 
			
		|||
// Copyright David Abrahams 2006. 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_CONCEPT_DETAIL_GENERAL_DWA2006429_HPP
 | 
			
		||||
# define BOOST_CONCEPT_DETAIL_GENERAL_DWA2006429_HPP
 | 
			
		||||
 | 
			
		||||
# include <boost/preprocessor/cat.hpp>
 | 
			
		||||
# include <boost/concept/detail/backward_compatibility.hpp>
 | 
			
		||||
 | 
			
		||||
# ifdef BOOST_OLD_CONCEPT_SUPPORT
 | 
			
		||||
#  include <boost/concept/detail/has_constraints.hpp>
 | 
			
		||||
#  include <boost/mpl/if.hpp>
 | 
			
		||||
# endif
 | 
			
		||||
 | 
			
		||||
// This implementation works on Comeau and GCC, all the way back to
 | 
			
		||||
// 2.95
 | 
			
		||||
namespace boost { namespace concepts {
 | 
			
		||||
 | 
			
		||||
template <class ModelFn>
 | 
			
		||||
struct requirement_;
 | 
			
		||||
 | 
			
		||||
namespace detail
 | 
			
		||||
{
 | 
			
		||||
  template <void(*)()> struct instantiate {};
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
template <class Model>
 | 
			
		||||
struct requirement
 | 
			
		||||
{
 | 
			
		||||
    static void failed() { ((Model*)0)->~Model(); }
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
struct failed {};
 | 
			
		||||
 | 
			
		||||
template <class Model>
 | 
			
		||||
struct requirement<failed ************ Model::************>
 | 
			
		||||
{
 | 
			
		||||
    static void failed() { ((Model*)0)->~Model(); }
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
# ifdef BOOST_OLD_CONCEPT_SUPPORT
 | 
			
		||||
 | 
			
		||||
template <class Model>
 | 
			
		||||
struct constraint
 | 
			
		||||
{
 | 
			
		||||
    static void failed() { ((Model*)0)->constraints(); }
 | 
			
		||||
};
 | 
			
		||||
  
 | 
			
		||||
template <class Model>
 | 
			
		||||
struct requirement_<void(*)(Model)>
 | 
			
		||||
  : mpl::if_<
 | 
			
		||||
        concepts::not_satisfied<Model>
 | 
			
		||||
      , constraint<Model>
 | 
			
		||||
      , requirement<failed ************ Model::************>
 | 
			
		||||
    >::type
 | 
			
		||||
{};
 | 
			
		||||
  
 | 
			
		||||
# else
 | 
			
		||||
 | 
			
		||||
// For GCC-2.x, these can't have exactly the same name
 | 
			
		||||
template <class Model>
 | 
			
		||||
struct requirement_<void(*)(Model)>
 | 
			
		||||
    : requirement<failed ************ Model::************>
 | 
			
		||||
{};
 | 
			
		||||
  
 | 
			
		||||
# endif
 | 
			
		||||
 | 
			
		||||
// Version check from https://svn.boost.org/trac/boost/changeset/82886
 | 
			
		||||
// (boost/static_assert.hpp)
 | 
			
		||||
#if defined(__GNUC__) && ((__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 7))) 
 | 
			
		||||
#define BOOST_CONCEPT_UNUSED_TYPEDEF __attribute__((unused))
 | 
			
		||||
#else
 | 
			
		||||
#define BOOST_CONCEPT_UNUSED_TYPEDEF /**/
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#  define BOOST_CONCEPT_ASSERT_FN( ModelFnPtr )             \
 | 
			
		||||
    typedef ::boost::concepts::detail::instantiate<          \
 | 
			
		||||
    &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
 | 
			
		||||
      BOOST_PP_CAT(boost_concept_check,__LINE__)             \
 | 
			
		||||
      BOOST_CONCEPT_UNUSED_TYPEDEF
 | 
			
		||||
 | 
			
		||||
}}
 | 
			
		||||
 | 
			
		||||
#endif // BOOST_CONCEPT_DETAIL_GENERAL_DWA2006429_HPP
 | 
			
		||||
							
								
								
									
										50
									
								
								boost/concept/detail/has_constraints.hpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										50
									
								
								boost/concept/detail/has_constraints.hpp
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,50 @@
 | 
			
		|||
// Copyright David Abrahams 2006. 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_CONCEPT_DETAIL_HAS_CONSTRAINTS_DWA2006429_HPP
 | 
			
		||||
# define BOOST_CONCEPT_DETAIL_HAS_CONSTRAINTS_DWA2006429_HPP
 | 
			
		||||
 | 
			
		||||
# include <boost/mpl/bool.hpp>
 | 
			
		||||
# include <boost/detail/workaround.hpp>
 | 
			
		||||
# include <boost/concept/detail/backward_compatibility.hpp>
 | 
			
		||||
 | 
			
		||||
namespace boost { namespace concepts {
 | 
			
		||||
 | 
			
		||||
namespace detail
 | 
			
		||||
{ 
 | 
			
		||||
 | 
			
		||||
// Here we implement the metafunction that detects whether a
 | 
			
		||||
// constraints metafunction exists
 | 
			
		||||
  typedef char yes;
 | 
			
		||||
  typedef char (&no)[2];
 | 
			
		||||
 | 
			
		||||
  template <class Model, void (Model::*)()>
 | 
			
		||||
  struct wrap_constraints {};
 | 
			
		||||
    
 | 
			
		||||
#if BOOST_WORKAROUND(__SUNPRO_CC, <= 0x580) || defined(__CUDACC__)
 | 
			
		||||
  // Work around the following bogus error in Sun Studio 11, by
 | 
			
		||||
  // turning off the has_constraints function entirely:
 | 
			
		||||
  //    Error: complex expression not allowed in dependent template
 | 
			
		||||
  //    argument expression
 | 
			
		||||
  inline no has_constraints_(...);
 | 
			
		||||
#else
 | 
			
		||||
  template <class Model>
 | 
			
		||||
  inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
 | 
			
		||||
  inline no has_constraints_(...);
 | 
			
		||||
#endif
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// This would be called "detail::has_constraints," but it has a strong
 | 
			
		||||
// tendency to show up in error messages.
 | 
			
		||||
template <class Model>
 | 
			
		||||
struct not_satisfied
 | 
			
		||||
{
 | 
			
		||||
    BOOST_STATIC_CONSTANT(
 | 
			
		||||
        bool
 | 
			
		||||
      , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
 | 
			
		||||
    typedef mpl::bool_<value> type;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
}} // namespace boost::concepts::detail
 | 
			
		||||
 | 
			
		||||
#endif // BOOST_CONCEPT_DETAIL_HAS_CONSTRAINTS_DWA2006429_HPP
 | 
			
		||||
							
								
								
									
										123
									
								
								boost/concept/detail/msvc.hpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										123
									
								
								boost/concept/detail/msvc.hpp
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,123 @@
 | 
			
		|||
// Copyright David Abrahams 2006. 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_CONCEPT_CHECK_MSVC_DWA2006429_HPP
 | 
			
		||||
# define BOOST_CONCEPT_CHECK_MSVC_DWA2006429_HPP
 | 
			
		||||
 | 
			
		||||
# include <boost/preprocessor/cat.hpp>
 | 
			
		||||
# include <boost/concept/detail/backward_compatibility.hpp>
 | 
			
		||||
# include <boost/config.hpp>
 | 
			
		||||
 | 
			
		||||
# ifdef BOOST_OLD_CONCEPT_SUPPORT
 | 
			
		||||
#  include <boost/concept/detail/has_constraints.hpp>
 | 
			
		||||
#  include <boost/mpl/if.hpp>
 | 
			
		||||
# endif
 | 
			
		||||
 | 
			
		||||
# ifdef BOOST_MSVC
 | 
			
		||||
#  pragma warning(push)
 | 
			
		||||
#  pragma warning(disable:4100)
 | 
			
		||||
# endif
 | 
			
		||||
 | 
			
		||||
namespace boost { namespace concepts {
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
template <class Model>
 | 
			
		||||
struct check
 | 
			
		||||
{
 | 
			
		||||
    virtual void failed(Model* x)
 | 
			
		||||
    {
 | 
			
		||||
        x->~Model();
 | 
			
		||||
    }
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
# ifndef BOOST_NO_PARTIAL_SPECIALIZATION
 | 
			
		||||
struct failed {};
 | 
			
		||||
template <class Model>
 | 
			
		||||
struct check<failed ************ Model::************>
 | 
			
		||||
{
 | 
			
		||||
    virtual void failed(Model* x)
 | 
			
		||||
    {
 | 
			
		||||
        x->~Model();
 | 
			
		||||
    }
 | 
			
		||||
};
 | 
			
		||||
# endif
 | 
			
		||||
 | 
			
		||||
# ifdef BOOST_OLD_CONCEPT_SUPPORT
 | 
			
		||||
  
 | 
			
		||||
namespace detail
 | 
			
		||||
{
 | 
			
		||||
  // No need for a virtual function here, since evaluating
 | 
			
		||||
  // not_satisfied below will have already instantiated the
 | 
			
		||||
  // constraints() member.
 | 
			
		||||
  struct constraint {};
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
template <class Model>
 | 
			
		||||
struct require
 | 
			
		||||
  : mpl::if_c<
 | 
			
		||||
        not_satisfied<Model>::value
 | 
			
		||||
      , detail::constraint
 | 
			
		||||
# ifndef BOOST_NO_PARTIAL_SPECIALIZATION
 | 
			
		||||
      , check<Model>
 | 
			
		||||
# else
 | 
			
		||||
      , check<failed ************ Model::************>
 | 
			
		||||
# endif 
 | 
			
		||||
        >::type
 | 
			
		||||
{};
 | 
			
		||||
      
 | 
			
		||||
# else
 | 
			
		||||
  
 | 
			
		||||
template <class Model>
 | 
			
		||||
struct require
 | 
			
		||||
# ifndef BOOST_NO_PARTIAL_SPECIALIZATION
 | 
			
		||||
    : check<Model>
 | 
			
		||||
# else
 | 
			
		||||
    : check<failed ************ Model::************>
 | 
			
		||||
# endif 
 | 
			
		||||
{};
 | 
			
		||||
  
 | 
			
		||||
# endif
 | 
			
		||||
    
 | 
			
		||||
# if BOOST_WORKAROUND(BOOST_MSVC, == 1310)
 | 
			
		||||
 | 
			
		||||
//
 | 
			
		||||
// The iterator library sees some really strange errors unless we
 | 
			
		||||
// do things this way.
 | 
			
		||||
//
 | 
			
		||||
template <class Model>
 | 
			
		||||
struct require<void(*)(Model)>
 | 
			
		||||
{
 | 
			
		||||
    virtual void failed(Model*)
 | 
			
		||||
    {
 | 
			
		||||
        require<Model>();
 | 
			
		||||
    }
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
# define BOOST_CONCEPT_ASSERT_FN( ModelFnPtr )      \
 | 
			
		||||
enum                                                \
 | 
			
		||||
{                                                   \
 | 
			
		||||
    BOOST_PP_CAT(boost_concept_check,__LINE__) =    \
 | 
			
		||||
    sizeof(::boost::concepts::require<ModelFnPtr>)    \
 | 
			
		||||
}
 | 
			
		||||
  
 | 
			
		||||
# else // Not vc-7.1
 | 
			
		||||
  
 | 
			
		||||
template <class Model>
 | 
			
		||||
require<Model>
 | 
			
		||||
require_(void(*)(Model));
 | 
			
		||||
  
 | 
			
		||||
# define BOOST_CONCEPT_ASSERT_FN( ModelFnPtr )          \
 | 
			
		||||
enum                                                    \
 | 
			
		||||
{                                                       \
 | 
			
		||||
    BOOST_PP_CAT(boost_concept_check,__LINE__) =        \
 | 
			
		||||
      sizeof(::boost::concepts::require_((ModelFnPtr)0)) \
 | 
			
		||||
}
 | 
			
		||||
  
 | 
			
		||||
# endif
 | 
			
		||||
}}
 | 
			
		||||
 | 
			
		||||
# ifdef BOOST_MSVC
 | 
			
		||||
#  pragma warning(pop)
 | 
			
		||||
# endif
 | 
			
		||||
 | 
			
		||||
#endif // BOOST_CONCEPT_CHECK_MSVC_DWA2006429_HPP
 | 
			
		||||
							
								
								
									
										93
									
								
								boost/concept/requires.hpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										93
									
								
								boost/concept/requires.hpp
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,93 @@
 | 
			
		|||
// Copyright David Abrahams 2006. 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_CONCEPT_REQUIRES_DWA2006430_HPP
 | 
			
		||||
# define BOOST_CONCEPT_REQUIRES_DWA2006430_HPP
 | 
			
		||||
 | 
			
		||||
# include <boost/config.hpp>
 | 
			
		||||
# include <boost/concept/assert.hpp>
 | 
			
		||||
# include <boost/preprocessor/seq/for_each.hpp>
 | 
			
		||||
 | 
			
		||||
namespace boost { 
 | 
			
		||||
 | 
			
		||||
// unaryfunptr_arg_type from parameter/aux_/parenthesized_type.hpp
 | 
			
		||||
 | 
			
		||||
namespace ccheck_aux {
 | 
			
		||||
 | 
			
		||||
// A metafunction that transforms void(*)(T) -> T
 | 
			
		||||
template <class UnaryFunctionPointer>
 | 
			
		||||
struct unaryfunptr_arg_type;
 | 
			
		||||
 | 
			
		||||
template <class Arg>
 | 
			
		||||
struct unaryfunptr_arg_type<void(*)(Arg)>
 | 
			
		||||
{
 | 
			
		||||
    typedef Arg type;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
template <>
 | 
			
		||||
struct unaryfunptr_arg_type<void(*)(void)>
 | 
			
		||||
{
 | 
			
		||||
    typedef void type;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
} // namespace ccheck_aux
 | 
			
		||||
 | 
			
		||||
// Template for use in handwritten assertions
 | 
			
		||||
template <class Model, class More>
 | 
			
		||||
struct requires_ : More
 | 
			
		||||
{
 | 
			
		||||
    BOOST_CONCEPT_ASSERT((Model));
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
// 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
 | 
			
		||||
// error messages.
 | 
			
		||||
template <class ModelFn>
 | 
			
		||||
struct _requires_
 | 
			
		||||
{
 | 
			
		||||
    enum { value = 0 };
 | 
			
		||||
    BOOST_CONCEPT_ASSERT_FN(ModelFn);
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
template <int check, class Result>
 | 
			
		||||
struct Requires_ : ::boost::ccheck_aux::unaryfunptr_arg_type<Result>
 | 
			
		||||
{
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
# if BOOST_WORKAROUND(BOOST_INTEL_WIN, BOOST_TESTED_AT(1010))
 | 
			
		||||
#  define BOOST_CONCEPT_REQUIRES_(r,data,t) | (::boost::_requires_<void(*)t>::value)
 | 
			
		||||
# else 
 | 
			
		||||
#  define BOOST_CONCEPT_REQUIRES_(r,data,t) + (::boost::_requires_<void(*)t>::value)
 | 
			
		||||
# endif
 | 
			
		||||
 | 
			
		||||
#if defined(NDEBUG)
 | 
			
		||||
 | 
			
		||||
# define BOOST_CONCEPT_REQUIRES(models, result)                                    \
 | 
			
		||||
    typename ::boost::ccheck_aux::unaryfunptr_arg_type<void(*)result>::type
 | 
			
		||||
 | 
			
		||||
#elif BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564))
 | 
			
		||||
 | 
			
		||||
// Same thing as below without the initial typename
 | 
			
		||||
# define BOOST_CONCEPT_REQUIRES(models, result)                                \
 | 
			
		||||
    ::boost::Requires_<                                                        \
 | 
			
		||||
      (0 BOOST_PP_SEQ_FOR_EACH(BOOST_CONCEPT_REQUIRES_, ~, models)),           \
 | 
			
		||||
      ::boost::ccheck_aux::unaryfunptr_arg_type<void(*)result>          \
 | 
			
		||||
                     >::type
 | 
			
		||||
 | 
			
		||||
#else
 | 
			
		||||
 | 
			
		||||
// This just ICEs on MSVC6 :(
 | 
			
		||||
# define BOOST_CONCEPT_REQUIRES(models, result)                                        \
 | 
			
		||||
    typename ::boost::Requires_<                                                       \
 | 
			
		||||
      (0 BOOST_PP_SEQ_FOR_EACH(BOOST_CONCEPT_REQUIRES_, ~, models)),                   \
 | 
			
		||||
      void(*)result                                                                 \
 | 
			
		||||
    >::type
 | 
			
		||||
 | 
			
		||||
#endif 
 | 
			
		||||
 | 
			
		||||
// C++0x proposed syntax changed.  This supports an older usage
 | 
			
		||||
#define BOOST_CONCEPT_WHERE(models,result) BOOST_CONCEPT_REQUIRES(models,result)
 | 
			
		||||
 | 
			
		||||
} // namespace boost::concept_check
 | 
			
		||||
 | 
			
		||||
#endif // BOOST_CONCEPT_REQUIRES_DWA2006430_HPP
 | 
			
		||||
							
								
								
									
										36
									
								
								boost/concept/usage.hpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										36
									
								
								boost/concept/usage.hpp
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,36 @@
 | 
			
		|||
// Copyright David Abrahams 2006. 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_CONCEPT_USAGE_DWA2006919_HPP
 | 
			
		||||
# define BOOST_CONCEPT_USAGE_DWA2006919_HPP
 | 
			
		||||
 | 
			
		||||
# include <boost/concept/assert.hpp>
 | 
			
		||||
# include <boost/detail/workaround.hpp>
 | 
			
		||||
# include <boost/concept/detail/backward_compatibility.hpp>
 | 
			
		||||
 | 
			
		||||
namespace boost { namespace concepts { 
 | 
			
		||||
 | 
			
		||||
template <class Model>
 | 
			
		||||
struct usage_requirements
 | 
			
		||||
{
 | 
			
		||||
    ~usage_requirements() { ((Model*)0)->~Model(); }
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
#  if BOOST_WORKAROUND(__GNUC__, <= 3)
 | 
			
		||||
 | 
			
		||||
#   define BOOST_CONCEPT_USAGE(model)                                    \
 | 
			
		||||
      model(); /* at least 2.96 and 3.4.3 both need this :( */           \
 | 
			
		||||
      BOOST_CONCEPT_ASSERT((boost::concepts::usage_requirements<model>)); \
 | 
			
		||||
      ~model()
 | 
			
		||||
 | 
			
		||||
#  else
 | 
			
		||||
 | 
			
		||||
#   define BOOST_CONCEPT_USAGE(model)                                    \
 | 
			
		||||
      BOOST_CONCEPT_ASSERT((boost::concepts::usage_requirements<model>)); \
 | 
			
		||||
      ~model()
 | 
			
		||||
 | 
			
		||||
#  endif
 | 
			
		||||
 | 
			
		||||
}} // namespace boost::concepts
 | 
			
		||||
 | 
			
		||||
#endif // BOOST_CONCEPT_USAGE_DWA2006919_HPP
 | 
			
		||||
							
								
								
									
										669
									
								
								boost/concept_archetype.hpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										669
									
								
								boost/concept_archetype.hpp
									
									
									
									
									
										Normal 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
 | 
			
		||||
							
								
								
									
										1085
									
								
								boost/concept_check.hpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1085
									
								
								boost/concept_check.hpp
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load diff
											
										
									
								
							
							
								
								
									
										67
									
								
								boost/config.hpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										67
									
								
								boost/config.hpp
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,67 @@
 | 
			
		|||
//  Boost config.hpp configuration header file  ------------------------------//
 | 
			
		||||
 | 
			
		||||
//  (C) Copyright John Maddock 2002.
 | 
			
		||||
//  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/libs/config for most recent version.
 | 
			
		||||
 | 
			
		||||
//  Boost config.hpp policy and rationale documentation has been moved to
 | 
			
		||||
//  http://www.boost.org/libs/config
 | 
			
		||||
//
 | 
			
		||||
//  CAUTION: This file is intended to be completely stable -
 | 
			
		||||
//           DO NOT MODIFY THIS FILE!
 | 
			
		||||
//
 | 
			
		||||
 | 
			
		||||
#ifndef BOOST_CONFIG_HPP
 | 
			
		||||
#define BOOST_CONFIG_HPP
 | 
			
		||||
 | 
			
		||||
// if we don't have a user config, then use the default location:
 | 
			
		||||
#if !defined(BOOST_USER_CONFIG) && !defined(BOOST_NO_USER_CONFIG)
 | 
			
		||||
#  define BOOST_USER_CONFIG <boost/config/user.hpp>
 | 
			
		||||
#if 0
 | 
			
		||||
// For dependency trackers:
 | 
			
		||||
#  include <boost/config/user.hpp>
 | 
			
		||||
#endif
 | 
			
		||||
#endif
 | 
			
		||||
// include it first:
 | 
			
		||||
#ifdef BOOST_USER_CONFIG
 | 
			
		||||
#  include BOOST_USER_CONFIG
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
// 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)
 | 
			
		||||
#  include <boost/config/select_compiler_config.hpp>
 | 
			
		||||
#endif
 | 
			
		||||
// if we have a compiler config, include it now:
 | 
			
		||||
#ifdef BOOST_COMPILER_CONFIG
 | 
			
		||||
#  include BOOST_COMPILER_CONFIG
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
// 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) && defined(__cplusplus)
 | 
			
		||||
#  include <boost/config/select_stdlib_config.hpp>
 | 
			
		||||
#endif
 | 
			
		||||
// if we have a std library config, include it now:
 | 
			
		||||
#ifdef BOOST_STDLIB_CONFIG
 | 
			
		||||
#  include BOOST_STDLIB_CONFIG
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
// 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)
 | 
			
		||||
#  include <boost/config/select_platform_config.hpp>
 | 
			
		||||
#endif
 | 
			
		||||
// if we have a platform config, include it now:
 | 
			
		||||
#ifdef BOOST_PLATFORM_CONFIG
 | 
			
		||||
#  include BOOST_PLATFORM_CONFIG
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
// get config suffix code:
 | 
			
		||||
#include <boost/config/suffix.hpp>
 | 
			
		||||
 | 
			
		||||
#ifdef BOOST_HAS_PRAGMA_ONCE
 | 
			
		||||
#pragma once
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#endif  // BOOST_CONFIG_HPP
 | 
			
		||||
							
								
								
									
										27
									
								
								boost/config/abi/borland_prefix.hpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										27
									
								
								boost/config/abi/borland_prefix.hpp
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,27 @@
 | 
			
		|||
//  (C) Copyright John Maddock 2003. 
 | 
			
		||||
//  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)
 | 
			
		||||
 | 
			
		||||
//  for C++ Builder the following options effect the ABI:
 | 
			
		||||
//
 | 
			
		||||
//  -b (on or off - effect emum sizes)
 | 
			
		||||
//  -Vx  (on or off - empty members)
 | 
			
		||||
//  -Ve (on or off - empty base classes)
 | 
			
		||||
//  -aX (alignment - 5 options).
 | 
			
		||||
//  -pX (Calling convention - 4 options)
 | 
			
		||||
//  -VmX (member pointer size and layout - 5 options)
 | 
			
		||||
//  -VC (on or off, changes name mangling)
 | 
			
		||||
//  -Vl (on or off, changes struct layout).
 | 
			
		||||
 | 
			
		||||
//  In addition the following warnings are sufficiently annoying (and
 | 
			
		||||
//  unfixable) to have them turned off by default:
 | 
			
		||||
//
 | 
			
		||||
//  8027 - functions containing [for|while] loops are not expanded inline
 | 
			
		||||
//  8026 - functions taking class by value arguments are not expanded inline
 | 
			
		||||
 | 
			
		||||
#pragma nopushoptwarn
 | 
			
		||||
#  pragma option push -a8 -Vx- -Ve- -b- -pc -Vmv -VC- -Vl- -w-8027 -w-8026
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										12
									
								
								boost/config/abi/borland_suffix.hpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								boost/config/abi/borland_suffix.hpp
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,12 @@
 | 
			
		|||
//  (C) Copyright John Maddock 2003. 
 | 
			
		||||
//  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)
 | 
			
		||||
 | 
			
		||||
#  pragma option pop
 | 
			
		||||
#pragma nopushoptwarn
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										22
									
								
								boost/config/abi/msvc_prefix.hpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								boost/config/abi/msvc_prefix.hpp
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,22 @@
 | 
			
		|||
//  (C) Copyright John Maddock 2003. 
 | 
			
		||||
//  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)
 | 
			
		||||
 | 
			
		||||
//
 | 
			
		||||
// Boost binaries are built with the compiler's default ABI settings,
 | 
			
		||||
// 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
 | 
			
		||||
// 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 
 | 
			
		||||
// separate source, header only libraries DO NOT need this as long as all
 | 
			
		||||
// translation units are built with the same options.
 | 
			
		||||
//
 | 
			
		||||
#if defined(_M_X64)
 | 
			
		||||
#  pragma pack(push,16)
 | 
			
		||||
#else
 | 
			
		||||
#  pragma pack(push,8)
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										8
									
								
								boost/config/abi/msvc_suffix.hpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								boost/config/abi/msvc_suffix.hpp
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,8 @@
 | 
			
		|||
//  (C) Copyright John Maddock 2003. 
 | 
			
		||||
//  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)
 | 
			
		||||
 | 
			
		||||
#pragma pack(pop)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										25
									
								
								boost/config/abi_prefix.hpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										25
									
								
								boost/config/abi_prefix.hpp
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,25 @@
 | 
			
		|||
//  abi_prefix header  -------------------------------------------------------//
 | 
			
		||||
 | 
			
		||||
// (c) Copyright John Maddock 2003
 | 
			
		||||
   
 | 
			
		||||
// 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).
 | 
			
		||||
 | 
			
		||||
#ifndef BOOST_CONFIG_ABI_PREFIX_HPP
 | 
			
		||||
# define BOOST_CONFIG_ABI_PREFIX_HPP
 | 
			
		||||
#else
 | 
			
		||||
# error double inclusion of header boost/config/abi_prefix.hpp is an error
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#include <boost/config.hpp>
 | 
			
		||||
 | 
			
		||||
// this must occur after all other includes and before any code appears:
 | 
			
		||||
#ifdef BOOST_HAS_ABI_HEADERS
 | 
			
		||||
#  include BOOST_ABI_PREFIX
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if defined( __BORLANDC__ )
 | 
			
		||||
#pragma nopushoptwarn
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										27
									
								
								boost/config/abi_suffix.hpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										27
									
								
								boost/config/abi_suffix.hpp
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,27 @@
 | 
			
		|||
//  abi_sufffix header  -------------------------------------------------------//
 | 
			
		||||
 | 
			
		||||
// (c) Copyright John Maddock 2003
 | 
			
		||||
   
 | 
			
		||||
// 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).
 | 
			
		||||
 | 
			
		||||
// This header should be #included AFTER code that was preceded by a #include
 | 
			
		||||
// <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
 | 
			
		||||
#else
 | 
			
		||||
# undef BOOST_CONFIG_ABI_PREFIX_HPP
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
// the suffix header occurs after all of our code:
 | 
			
		||||
#ifdef BOOST_HAS_ABI_HEADERS
 | 
			
		||||
#  include BOOST_ABI_SUFFIX
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if defined( __BORLANDC__ )
 | 
			
		||||
#pragma nopushoptwarn
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										439
									
								
								boost/config/auto_link.hpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										439
									
								
								boost/config/auto_link.hpp
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,439 @@
 | 
			
		|||
//  (C) Copyright John Maddock 2003.
 | 
			
		||||
//  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)
 | 
			
		||||
 | 
			
		||||
 /*
 | 
			
		||||
  *   LOCATION:    see http://www.boost.org for most recent version.
 | 
			
		||||
  *   FILE         auto_link.hpp
 | 
			
		||||
  *   VERSION      see <boost/version.hpp>
 | 
			
		||||
  *   DESCRIPTION: Automatic library inclusion for Borland/Microsoft compilers.
 | 
			
		||||
  */
 | 
			
		||||
 | 
			
		||||
/*************************************************************************
 | 
			
		||||
 | 
			
		||||
USAGE:
 | 
			
		||||
~~~~~~
 | 
			
		||||
 | 
			
		||||
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,
 | 
			
		||||
                          for example boost_regex.
 | 
			
		||||
BOOST_LIB_TOOLSET:        Optional: the base name of the toolset.
 | 
			
		||||
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
 | 
			
		||||
                          of the library selected (useful for debugging).
 | 
			
		||||
BOOST_AUTO_LINK_NOMANGLE: Specifies that we should link to BOOST_LIB_NAME.lib,
 | 
			
		||||
                          rather than a mangled-name version.
 | 
			
		||||
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
 | 
			
		||||
                          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
 | 
			
		||||
has no include guards - so be sure to include it only once from your library!
 | 
			
		||||
 | 
			
		||||
Algorithm:
 | 
			
		||||
~~~~~~~~~~
 | 
			
		||||
 | 
			
		||||
Libraries for Borland and Microsoft compilers are automatically
 | 
			
		||||
selected here, the name of the lib is selected according to the following
 | 
			
		||||
formula:
 | 
			
		||||
 | 
			
		||||
BOOST_LIB_PREFIX
 | 
			
		||||
   + BOOST_LIB_NAME
 | 
			
		||||
   + "_"
 | 
			
		||||
   + BOOST_LIB_TOOLSET
 | 
			
		||||
   + BOOST_LIB_THREAD_OPT
 | 
			
		||||
   + BOOST_LIB_RT_OPT
 | 
			
		||||
   "-"
 | 
			
		||||
   + BOOST_LIB_VERSION
 | 
			
		||||
 | 
			
		||||
These are defined as:
 | 
			
		||||
 | 
			
		||||
BOOST_LIB_PREFIX:     "lib" for static libraries otherwise "".
 | 
			
		||||
 | 
			
		||||
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_THREAD_OPT: "-mt" for multithread builds, otherwise nothing.
 | 
			
		||||
 | 
			
		||||
BOOST_LIB_RT_OPT:     A suffix that indicates the runtime library used,
 | 
			
		||||
                      contains one or more of the following letters after
 | 
			
		||||
                      a hyphen:
 | 
			
		||||
 | 
			
		||||
                      s      static runtime (dynamic if not present).
 | 
			
		||||
                      g      debug/diagnostic runtime (release if not present).
 | 
			
		||||
                      y      Python debug/diagnostic runtime (release if not present).
 | 
			
		||||
                      d      debug build (release if not present).
 | 
			
		||||
                      p      STLport build.
 | 
			
		||||
                      n      STLport build without its IOStreams.
 | 
			
		||||
 | 
			
		||||
BOOST_LIB_VERSION:    The Boost version, in the form x_y, for Boost version x.y.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
***************************************************************************/
 | 
			
		||||
 | 
			
		||||
#ifdef __cplusplus
 | 
			
		||||
#  ifndef BOOST_CONFIG_HPP
 | 
			
		||||
#     include <boost/config.hpp>
 | 
			
		||||
#  endif
 | 
			
		||||
#elif defined(_MSC_VER) && !defined(__MWERKS__) && !defined(__EDG_VERSION__)
 | 
			
		||||
//
 | 
			
		||||
// C language compatability (no, honestly)
 | 
			
		||||
//
 | 
			
		||||
#  define BOOST_MSVC _MSC_VER
 | 
			
		||||
#  define BOOST_STRINGIZE(X) BOOST_DO_STRINGIZE(X)
 | 
			
		||||
#  define BOOST_DO_STRINGIZE(X) #X
 | 
			
		||||
#endif
 | 
			
		||||
//
 | 
			
		||||
// Only include what follows for known and supported compilers:
 | 
			
		||||
//
 | 
			
		||||
#if defined(BOOST_MSVC) \
 | 
			
		||||
    || defined(__BORLANDC__) \
 | 
			
		||||
    || (defined(__MWERKS__) && defined(_WIN32) && (__MWERKS__ >= 0x3000)) \
 | 
			
		||||
    || (defined(__ICL) && defined(_MSC_EXTENSIONS) && (_MSC_VER >= 1200))
 | 
			
		||||
 | 
			
		||||
#ifndef BOOST_VERSION_HPP
 | 
			
		||||
#  include <boost/version.hpp>
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#ifndef BOOST_LIB_NAME
 | 
			
		||||
#  error "Macro BOOST_LIB_NAME not set (internal error)"
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
//
 | 
			
		||||
// error check:
 | 
			
		||||
//
 | 
			
		||||
#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("Hint: go to the code generation options and switch to one of the debugging runtimes")
 | 
			
		||||
#  error "Incompatible build options"
 | 
			
		||||
#endif
 | 
			
		||||
//
 | 
			
		||||
// select toolset if not defined already:
 | 
			
		||||
//
 | 
			
		||||
#ifndef BOOST_LIB_TOOLSET
 | 
			
		||||
#  if defined(BOOST_MSVC) && (BOOST_MSVC < 1200)
 | 
			
		||||
    // Note: no compilers before 1200 are supported
 | 
			
		||||
#  elif defined(BOOST_MSVC) && (BOOST_MSVC < 1300)
 | 
			
		||||
 | 
			
		||||
#    ifdef UNDER_CE
 | 
			
		||||
       // eVC4:
 | 
			
		||||
#      define BOOST_LIB_TOOLSET "evc4"
 | 
			
		||||
#    else
 | 
			
		||||
       // vc6:
 | 
			
		||||
#      define BOOST_LIB_TOOLSET "vc6"
 | 
			
		||||
#    endif
 | 
			
		||||
 | 
			
		||||
#  elif defined(BOOST_MSVC) && (BOOST_MSVC < 1310)
 | 
			
		||||
 | 
			
		||||
     // vc7:
 | 
			
		||||
#    define BOOST_LIB_TOOLSET "vc7"
 | 
			
		||||
 | 
			
		||||
#  elif defined(BOOST_MSVC) && (BOOST_MSVC < 1400)
 | 
			
		||||
 | 
			
		||||
     // vc71:
 | 
			
		||||
#    define BOOST_LIB_TOOLSET "vc71"
 | 
			
		||||
 | 
			
		||||
#  elif defined(BOOST_MSVC) && (BOOST_MSVC < 1500)
 | 
			
		||||
 | 
			
		||||
     // vc80:
 | 
			
		||||
#    define BOOST_LIB_TOOLSET "vc80"
 | 
			
		||||
 | 
			
		||||
#  elif defined(BOOST_MSVC) && (BOOST_MSVC < 1600)
 | 
			
		||||
 | 
			
		||||
     // vc90:
 | 
			
		||||
#    define BOOST_LIB_TOOLSET "vc90"
 | 
			
		||||
 | 
			
		||||
#  elif defined(BOOST_MSVC) && (BOOST_MSVC < 1700)
 | 
			
		||||
 | 
			
		||||
     // vc10:
 | 
			
		||||
#    define BOOST_LIB_TOOLSET "vc100"
 | 
			
		||||
 | 
			
		||||
#  elif defined(BOOST_MSVC) && (BOOST_MSVC < 1800)
 | 
			
		||||
 | 
			
		||||
     // vc11:
 | 
			
		||||
#    define BOOST_LIB_TOOLSET "vc110"
 | 
			
		||||
 | 
			
		||||
#  elif defined(BOOST_MSVC) && (BOOST_MSVC < 1900)
 | 
			
		||||
 | 
			
		||||
     // vc12:
 | 
			
		||||
#    define BOOST_LIB_TOOLSET "vc120"
 | 
			
		||||
 | 
			
		||||
# elif defined(BOOST_MSVC)
 | 
			
		||||
 | 
			
		||||
   // vc14:
 | 
			
		||||
#  define BOOST_LIB_TOOLSET "vc140"
 | 
			
		||||
 | 
			
		||||
#  elif defined(__BORLANDC__)
 | 
			
		||||
 | 
			
		||||
     // CBuilder 6:
 | 
			
		||||
#    define BOOST_LIB_TOOLSET "bcb"
 | 
			
		||||
 | 
			
		||||
#  elif defined(__ICL)
 | 
			
		||||
 | 
			
		||||
     // Intel C++, no version number:
 | 
			
		||||
#    define BOOST_LIB_TOOLSET "iw"
 | 
			
		||||
 | 
			
		||||
#  elif defined(__MWERKS__) && (__MWERKS__ <= 0x31FF )
 | 
			
		||||
 | 
			
		||||
     // Metrowerks CodeWarrior 8.x
 | 
			
		||||
#    define BOOST_LIB_TOOLSET "cw8"
 | 
			
		||||
 | 
			
		||||
#  elif defined(__MWERKS__) && (__MWERKS__ <= 0x32FF )
 | 
			
		||||
 | 
			
		||||
     // Metrowerks CodeWarrior 9.x
 | 
			
		||||
#    define BOOST_LIB_TOOLSET "cw9"
 | 
			
		||||
 | 
			
		||||
#  endif
 | 
			
		||||
#endif // BOOST_LIB_TOOLSET
 | 
			
		||||
 | 
			
		||||
//
 | 
			
		||||
// select thread opt:
 | 
			
		||||
//
 | 
			
		||||
#if defined(_MT) || defined(__MT__)
 | 
			
		||||
#  define BOOST_LIB_THREAD_OPT "-mt"
 | 
			
		||||
#else
 | 
			
		||||
#  define BOOST_LIB_THREAD_OPT
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if defined(_MSC_VER) || defined(__MWERKS__)
 | 
			
		||||
 | 
			
		||||
#  ifdef _DLL
 | 
			
		||||
 | 
			
		||||
#     if (defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION)) && (defined(_STLP_OWN_IOSTREAMS) || defined(__STL_OWN_IOSTREAMS))
 | 
			
		||||
 | 
			
		||||
#        if defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG))\
 | 
			
		||||
               && defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
 | 
			
		||||
#            define BOOST_LIB_RT_OPT "-gydp"
 | 
			
		||||
#        elif defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG))
 | 
			
		||||
#            define BOOST_LIB_RT_OPT "-gdp"
 | 
			
		||||
#        elif defined(_DEBUG)\
 | 
			
		||||
               && defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
 | 
			
		||||
#            define BOOST_LIB_RT_OPT "-gydp"
 | 
			
		||||
#            pragma message("warning: STLport debug versions are built with /D_STLP_DEBUG=1")
 | 
			
		||||
#            error "Build options aren't compatible with pre-built libraries"
 | 
			
		||||
#        elif defined(_DEBUG)
 | 
			
		||||
#            define BOOST_LIB_RT_OPT "-gdp"
 | 
			
		||||
#            pragma message("warning: STLport debug versions are built with /D_STLP_DEBUG=1")
 | 
			
		||||
#            error "Build options aren't compatible with pre-built libraries"
 | 
			
		||||
#        else
 | 
			
		||||
#            define BOOST_LIB_RT_OPT "-p"
 | 
			
		||||
#        endif
 | 
			
		||||
 | 
			
		||||
#     elif defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION)
 | 
			
		||||
 | 
			
		||||
#        if defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG))\
 | 
			
		||||
               && defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
 | 
			
		||||
#            define BOOST_LIB_RT_OPT "-gydpn"
 | 
			
		||||
#        elif defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG))
 | 
			
		||||
#            define BOOST_LIB_RT_OPT "-gdpn"
 | 
			
		||||
#        elif defined(_DEBUG)\
 | 
			
		||||
               && defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
 | 
			
		||||
#            define BOOST_LIB_RT_OPT "-gydpn"
 | 
			
		||||
#            pragma message("warning: STLport debug versions are built with /D_STLP_DEBUG=1")
 | 
			
		||||
#            error "Build options aren't compatible with pre-built libraries"
 | 
			
		||||
#        elif defined(_DEBUG)
 | 
			
		||||
#            define BOOST_LIB_RT_OPT "-gdpn"
 | 
			
		||||
#            pragma message("warning: STLport debug versions are built with /D_STLP_DEBUG=1")
 | 
			
		||||
#            error "Build options aren't compatible with pre-built libraries"
 | 
			
		||||
#        else
 | 
			
		||||
#            define BOOST_LIB_RT_OPT "-pn"
 | 
			
		||||
#        endif
 | 
			
		||||
 | 
			
		||||
#     else
 | 
			
		||||
 | 
			
		||||
#        if defined(_DEBUG) && defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
 | 
			
		||||
#            define BOOST_LIB_RT_OPT "-gyd"
 | 
			
		||||
#        elif defined(_DEBUG)
 | 
			
		||||
#            define BOOST_LIB_RT_OPT "-gd"
 | 
			
		||||
#        else
 | 
			
		||||
#            define BOOST_LIB_RT_OPT
 | 
			
		||||
#        endif
 | 
			
		||||
 | 
			
		||||
#     endif
 | 
			
		||||
 | 
			
		||||
#  else
 | 
			
		||||
 | 
			
		||||
#     if (defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION)) && (defined(_STLP_OWN_IOSTREAMS) || defined(__STL_OWN_IOSTREAMS))
 | 
			
		||||
 | 
			
		||||
#        if defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG))\
 | 
			
		||||
               && defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
 | 
			
		||||
#            define BOOST_LIB_RT_OPT "-sgydp"
 | 
			
		||||
#        elif defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG))
 | 
			
		||||
#            define BOOST_LIB_RT_OPT "-sgdp"
 | 
			
		||||
#        elif defined(_DEBUG)\
 | 
			
		||||
               && defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
 | 
			
		||||
#             define BOOST_LIB_RT_OPT "-sgydp"
 | 
			
		||||
#            pragma message("warning: STLport debug versions are built with /D_STLP_DEBUG=1")
 | 
			
		||||
#            error "Build options aren't compatible with pre-built libraries"
 | 
			
		||||
#        elif defined(_DEBUG)
 | 
			
		||||
#             define BOOST_LIB_RT_OPT "-sgdp"
 | 
			
		||||
#            pragma message("warning: STLport debug versions are built with /D_STLP_DEBUG=1")
 | 
			
		||||
#            error "Build options aren't compatible with pre-built libraries"
 | 
			
		||||
#        else
 | 
			
		||||
#            define BOOST_LIB_RT_OPT "-sp"
 | 
			
		||||
#        endif
 | 
			
		||||
 | 
			
		||||
#     elif defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION)
 | 
			
		||||
 | 
			
		||||
#        if defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG))\
 | 
			
		||||
               && defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
 | 
			
		||||
#            define BOOST_LIB_RT_OPT "-sgydpn"
 | 
			
		||||
#        elif defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG))
 | 
			
		||||
#            define BOOST_LIB_RT_OPT "-sgdpn"
 | 
			
		||||
#        elif defined(_DEBUG)\
 | 
			
		||||
               && defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
 | 
			
		||||
#             define BOOST_LIB_RT_OPT "-sgydpn"
 | 
			
		||||
#            pragma message("warning: STLport debug versions are built with /D_STLP_DEBUG=1")
 | 
			
		||||
#            error "Build options aren't compatible with pre-built libraries"
 | 
			
		||||
#        elif defined(_DEBUG)
 | 
			
		||||
#             define BOOST_LIB_RT_OPT "-sgdpn"
 | 
			
		||||
#            pragma message("warning: STLport debug versions are built with /D_STLP_DEBUG=1")
 | 
			
		||||
#            error "Build options aren't compatible with pre-built libraries"
 | 
			
		||||
#        else
 | 
			
		||||
#            define BOOST_LIB_RT_OPT "-spn"
 | 
			
		||||
#        endif
 | 
			
		||||
 | 
			
		||||
#     else
 | 
			
		||||
 | 
			
		||||
#        if defined(_DEBUG)\
 | 
			
		||||
               && defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
 | 
			
		||||
#             define BOOST_LIB_RT_OPT "-sgyd"
 | 
			
		||||
#        elif defined(_DEBUG)
 | 
			
		||||
#             define BOOST_LIB_RT_OPT "-sgd"
 | 
			
		||||
#        else
 | 
			
		||||
#            define BOOST_LIB_RT_OPT "-s"
 | 
			
		||||
#        endif
 | 
			
		||||
 | 
			
		||||
#     endif
 | 
			
		||||
 | 
			
		||||
#  endif
 | 
			
		||||
 | 
			
		||||
#elif defined(__BORLANDC__)
 | 
			
		||||
 | 
			
		||||
//
 | 
			
		||||
// figure out whether we want the debug builds or not:
 | 
			
		||||
//
 | 
			
		||||
#if __BORLANDC__ > 0x561
 | 
			
		||||
#pragma defineonoption BOOST_BORLAND_DEBUG -v
 | 
			
		||||
#endif
 | 
			
		||||
//
 | 
			
		||||
// sanity check:
 | 
			
		||||
//
 | 
			
		||||
#if defined(__STL_DEBUG) || defined(_STLP_DEBUG)
 | 
			
		||||
#error "Pre-built versions of the Boost libraries are not provided in STLport-debug form"
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#  ifdef _RTLDLL
 | 
			
		||||
 | 
			
		||||
#     if defined(BOOST_BORLAND_DEBUG)\
 | 
			
		||||
               && defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
 | 
			
		||||
#         define BOOST_LIB_RT_OPT "-yd"
 | 
			
		||||
#     elif defined(BOOST_BORLAND_DEBUG)
 | 
			
		||||
#         define BOOST_LIB_RT_OPT "-d"
 | 
			
		||||
#     elif defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
 | 
			
		||||
#         define BOOST_LIB_RT_OPT -y
 | 
			
		||||
#     else
 | 
			
		||||
#         define BOOST_LIB_RT_OPT
 | 
			
		||||
#     endif
 | 
			
		||||
 | 
			
		||||
#  else
 | 
			
		||||
 | 
			
		||||
#     if defined(BOOST_BORLAND_DEBUG)\
 | 
			
		||||
               && defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
 | 
			
		||||
#         define BOOST_LIB_RT_OPT "-syd"
 | 
			
		||||
#     elif defined(BOOST_BORLAND_DEBUG)
 | 
			
		||||
#         define BOOST_LIB_RT_OPT "-sd"
 | 
			
		||||
#     elif defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
 | 
			
		||||
#         define BOOST_LIB_RT_OPT "-sy"
 | 
			
		||||
#     else
 | 
			
		||||
#         define BOOST_LIB_RT_OPT "-s"
 | 
			
		||||
#     endif
 | 
			
		||||
 | 
			
		||||
#  endif
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
//
 | 
			
		||||
// select linkage opt:
 | 
			
		||||
//
 | 
			
		||||
#if (defined(_DLL) || defined(_RTLDLL)) && defined(BOOST_DYN_LINK)
 | 
			
		||||
#  define BOOST_LIB_PREFIX
 | 
			
		||||
#elif defined(BOOST_DYN_LINK)
 | 
			
		||||
#  error "Mixing a dll boost library with a static runtime is a really bad idea..."
 | 
			
		||||
#else
 | 
			
		||||
#  define BOOST_LIB_PREFIX "lib"
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
//
 | 
			
		||||
// now include the lib:
 | 
			
		||||
//
 | 
			
		||||
#if defined(BOOST_LIB_NAME) \
 | 
			
		||||
      && defined(BOOST_LIB_PREFIX) \
 | 
			
		||||
      && defined(BOOST_LIB_TOOLSET) \
 | 
			
		||||
      && defined(BOOST_LIB_THREAD_OPT) \
 | 
			
		||||
      && defined(BOOST_LIB_RT_OPT) \
 | 
			
		||||
      && defined(BOOST_LIB_VERSION)
 | 
			
		||||
 | 
			
		||||
#ifdef BOOST_AUTO_LINK_TAGGED
 | 
			
		||||
#  pragma comment(lib, BOOST_LIB_PREFIX BOOST_STRINGIZE(BOOST_LIB_NAME) BOOST_LIB_THREAD_OPT BOOST_LIB_RT_OPT ".lib")
 | 
			
		||||
#  ifdef BOOST_LIB_DIAGNOSTIC
 | 
			
		||||
#     pragma message ("Linking to lib file: " BOOST_LIB_PREFIX BOOST_STRINGIZE(BOOST_LIB_NAME) BOOST_LIB_THREAD_OPT BOOST_LIB_RT_OPT ".lib")
 | 
			
		||||
#  endif
 | 
			
		||||
#elif defined(BOOST_AUTO_LINK_NOMANGLE)
 | 
			
		||||
#  pragma comment(lib, BOOST_STRINGIZE(BOOST_LIB_NAME) ".lib")
 | 
			
		||||
#  ifdef BOOST_LIB_DIAGNOSTIC
 | 
			
		||||
#     pragma message ("Linking to lib file: " BOOST_STRINGIZE(BOOST_LIB_NAME) ".lib")
 | 
			
		||||
#  endif
 | 
			
		||||
#elif defined(BOOST_LIB_BUILDID)
 | 
			
		||||
#  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 "-" BOOST_STRINGIZE(BOOST_LIB_BUILDID) ".lib")
 | 
			
		||||
#  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 "-" BOOST_STRINGIZE(BOOST_LIB_BUILDID) ".lib")
 | 
			
		||||
#  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")
 | 
			
		||||
#  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")
 | 
			
		||||
#  endif
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#else
 | 
			
		||||
#  error "some required macros where not defined (internal logic error)."
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#endif // _MSC_VER || __BORLANDC__
 | 
			
		||||
 | 
			
		||||
//
 | 
			
		||||
// finally undef any macros we may have set:
 | 
			
		||||
//
 | 
			
		||||
#ifdef BOOST_LIB_PREFIX
 | 
			
		||||
#  undef BOOST_LIB_PREFIX
 | 
			
		||||
#endif
 | 
			
		||||
#if defined(BOOST_LIB_NAME)
 | 
			
		||||
#  undef BOOST_LIB_NAME
 | 
			
		||||
#endif
 | 
			
		||||
// Don't undef this one: it can be set by the user and should be the 
 | 
			
		||||
// same for all libraries:
 | 
			
		||||
//#if defined(BOOST_LIB_TOOLSET)
 | 
			
		||||
//#  undef BOOST_LIB_TOOLSET
 | 
			
		||||
//#endif
 | 
			
		||||
#if defined(BOOST_LIB_THREAD_OPT)
 | 
			
		||||
#  undef BOOST_LIB_THREAD_OPT
 | 
			
		||||
#endif
 | 
			
		||||
#if defined(BOOST_LIB_RT_OPT)
 | 
			
		||||
#  undef BOOST_LIB_RT_OPT
 | 
			
		||||
#endif
 | 
			
		||||
#if defined(BOOST_LIB_LINK_OPT)
 | 
			
		||||
#  undef BOOST_LIB_LINK_OPT
 | 
			
		||||
#endif
 | 
			
		||||
#if defined(BOOST_LIB_DEBUG_OPT)
 | 
			
		||||
#  undef BOOST_LIB_DEBUG_OPT
 | 
			
		||||
#endif
 | 
			
		||||
#if defined(BOOST_DYN_LINK)
 | 
			
		||||
#  undef BOOST_DYN_LINK
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										318
									
								
								boost/config/compiler/borland.hpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										318
									
								
								boost/config/compiler/borland.hpp
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,318 @@
 | 
			
		|||
//  (C) Copyright John Maddock 2001 - 2003.
 | 
			
		||||
//  (C) Copyright David Abrahams 2002 - 2003.
 | 
			
		||||
//  (C) Copyright Aleksey Gurtovoy 2002.
 | 
			
		||||
//  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.
 | 
			
		||||
 | 
			
		||||
//  Borland C++ compiler setup:
 | 
			
		||||
 | 
			
		||||
//
 | 
			
		||||
// versions check:
 | 
			
		||||
// we don't support Borland prior to version 5.4:
 | 
			
		||||
#if __BORLANDC__ < 0x540
 | 
			
		||||
#  error "Compiler not supported or configured - please reconfigure"
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
// last known compiler version:
 | 
			
		||||
#if (__BORLANDC__ > 0x613)
 | 
			
		||||
//#  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
 | 
			
		||||
#elif (__BORLANDC__ == 0x600)
 | 
			
		||||
#  error "CBuilderX preview compiler is no longer supported"
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
//
 | 
			
		||||
// Support macros to help with standard library detection
 | 
			
		||||
#if (__BORLANDC__ < 0x560) || defined(_USE_OLD_RW_STL)
 | 
			
		||||
#  define BOOST_BCB_WITH_ROGUE_WAVE
 | 
			
		||||
#elif __BORLANDC__ < 0x570
 | 
			
		||||
#  define BOOST_BCB_WITH_STLPORT
 | 
			
		||||
#else
 | 
			
		||||
#  define BOOST_BCB_WITH_DINKUMWARE
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
//
 | 
			
		||||
// Version 5.0 and below:
 | 
			
		||||
#   if __BORLANDC__ <= 0x0550
 | 
			
		||||
// Borland C++Builder 4 and 5:
 | 
			
		||||
#     define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
 | 
			
		||||
#     if __BORLANDC__ == 0x0550
 | 
			
		||||
// Borland C++Builder 5, command-line compiler 5.5:
 | 
			
		||||
#       define BOOST_NO_OPERATORS_IN_NAMESPACE
 | 
			
		||||
#     endif
 | 
			
		||||
// Variadic macros do not exist for C++ Builder versions 5 and below
 | 
			
		||||
#define BOOST_NO_CXX11_VARIADIC_MACROS
 | 
			
		||||
#   endif
 | 
			
		||||
 | 
			
		||||
// Version 5.51 and below:
 | 
			
		||||
#if (__BORLANDC__ <= 0x551)
 | 
			
		||||
#  define BOOST_NO_CV_SPECIALIZATIONS
 | 
			
		||||
#  define BOOST_NO_CV_VOID_SPECIALIZATIONS
 | 
			
		||||
#  define BOOST_NO_DEDUCED_TYPENAME
 | 
			
		||||
// workaround for missing WCHAR_MAX/WCHAR_MIN:
 | 
			
		||||
#ifdef __cplusplus
 | 
			
		||||
#include <climits>
 | 
			
		||||
#include <cwchar>
 | 
			
		||||
#else
 | 
			
		||||
#include <limits.h>
 | 
			
		||||
#include <wchar.h>
 | 
			
		||||
#endif // __cplusplus
 | 
			
		||||
#ifndef WCHAR_MAX
 | 
			
		||||
#  define WCHAR_MAX 0xffff
 | 
			
		||||
#endif
 | 
			
		||||
#ifndef WCHAR_MIN
 | 
			
		||||
#  define WCHAR_MIN 0
 | 
			
		||||
#endif
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
// Borland C++ Builder 6 and below:
 | 
			
		||||
#if (__BORLANDC__ <= 0x564)
 | 
			
		||||
 | 
			
		||||
#  if defined(NDEBUG) && defined(__cplusplus)
 | 
			
		||||
      // fix broken <cstring> so that Boost.test works:
 | 
			
		||||
#     include <cstring>
 | 
			
		||||
#     undef strcmp
 | 
			
		||||
#  endif
 | 
			
		||||
   // fix broken errno declaration:
 | 
			
		||||
#  include <errno.h>
 | 
			
		||||
#  ifndef errno
 | 
			
		||||
#     define errno errno
 | 
			
		||||
#  endif
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
//
 | 
			
		||||
// new bug in 5.61:
 | 
			
		||||
#if (__BORLANDC__ >= 0x561) && (__BORLANDC__ <= 0x580)
 | 
			
		||||
   // this seems to be needed by the command line compiler, but not the IDE:
 | 
			
		||||
#  define BOOST_NO_MEMBER_FUNCTION_SPECIALIZATIONS
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
// Borland C++ Builder 2006 Update 2 and below:
 | 
			
		||||
#if (__BORLANDC__ <= 0x582)
 | 
			
		||||
#  define BOOST_NO_SFINAE
 | 
			
		||||
#  define BOOST_BCB_PARTIAL_SPECIALIZATION_BUG
 | 
			
		||||
#  define BOOST_NO_TEMPLATE_TEMPLATES
 | 
			
		||||
 | 
			
		||||
#  define BOOST_NO_PRIVATE_IN_AGGREGATE
 | 
			
		||||
 | 
			
		||||
#  ifdef _WIN32
 | 
			
		||||
#     define BOOST_NO_SWPRINTF
 | 
			
		||||
#  elif defined(linux) || defined(__linux__) || defined(__linux)
 | 
			
		||||
      // we should really be able to do without this
 | 
			
		||||
      // but the wcs* functions aren't imported into std::
 | 
			
		||||
#     define BOOST_NO_STDC_NAMESPACE
 | 
			
		||||
      // _CPPUNWIND doesn't get automatically set for some reason:
 | 
			
		||||
#     pragma defineonoption BOOST_CPPUNWIND -x
 | 
			
		||||
#  endif
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if (__BORLANDC__ <= 0x613)  // Beman has asked Alisdair for more info
 | 
			
		||||
   // we shouldn't really need this - but too many things choke
 | 
			
		||||
   // without it, this needs more investigation:
 | 
			
		||||
#  define BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
 | 
			
		||||
#  define BOOST_NO_IS_ABSTRACT
 | 
			
		||||
#  define BOOST_NO_FUNCTION_TYPE_SPECIALIZATIONS
 | 
			
		||||
#  define BOOST_NO_USING_TEMPLATE
 | 
			
		||||
#  define BOOST_SP_NO_SP_CONVERTIBLE
 | 
			
		||||
 | 
			
		||||
// Temporary workaround
 | 
			
		||||
#define BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
// Borland C++ Builder 2008 and below:
 | 
			
		||||
#  define BOOST_NO_INTEGRAL_INT64_T
 | 
			
		||||
#  define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
 | 
			
		||||
#  define BOOST_NO_DEPENDENT_NESTED_DERIVATIONS
 | 
			
		||||
#  define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
 | 
			
		||||
#  define BOOST_NO_TWO_PHASE_NAME_LOOKUP
 | 
			
		||||
#  define BOOST_NO_USING_DECLARATION_OVERLOADS_FROM_TYPENAME_BASE
 | 
			
		||||
#  define BOOST_NO_NESTED_FRIENDSHIP
 | 
			
		||||
#  define BOOST_NO_TYPENAME_WITH_CTOR
 | 
			
		||||
#if (__BORLANDC__ < 0x600)
 | 
			
		||||
#  define BOOST_ILLEGAL_CV_REFERENCES
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
//
 | 
			
		||||
//  Positive Feature detection
 | 
			
		||||
//
 | 
			
		||||
// Borland C++ Builder 2008 and below:
 | 
			
		||||
#if (__BORLANDC__ >= 0x599)
 | 
			
		||||
#  pragma defineonoption BOOST_CODEGEAR_0X_SUPPORT -Ax
 | 
			
		||||
#endif
 | 
			
		||||
//
 | 
			
		||||
// C++0x Macros:
 | 
			
		||||
//
 | 
			
		||||
#if !defined( BOOST_CODEGEAR_0X_SUPPORT ) || (__BORLANDC__ < 0x610)
 | 
			
		||||
#  define BOOST_NO_CXX11_CHAR16_T
 | 
			
		||||
#  define BOOST_NO_CXX11_CHAR32_T
 | 
			
		||||
#  define BOOST_NO_CXX11_DECLTYPE
 | 
			
		||||
#  define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
 | 
			
		||||
#  define BOOST_NO_CXX11_EXTERN_TEMPLATE
 | 
			
		||||
#  define BOOST_NO_CXX11_RVALUE_REFERENCES
 | 
			
		||||
#  define BOOST_NO_CXX11_SCOPED_ENUMS
 | 
			
		||||
#  define BOOST_NO_CXX11_STATIC_ASSERT
 | 
			
		||||
#else
 | 
			
		||||
#  define BOOST_HAS_ALIGNOF
 | 
			
		||||
#  define BOOST_HAS_CHAR16_T
 | 
			
		||||
#  define BOOST_HAS_CHAR32_T
 | 
			
		||||
#  define BOOST_HAS_DECLTYPE
 | 
			
		||||
#  define BOOST_HAS_EXPLICIT_CONVERSION_OPS
 | 
			
		||||
#  define BOOST_HAS_REF_QUALIFIER
 | 
			
		||||
#  define BOOST_HAS_RVALUE_REFS
 | 
			
		||||
#  define BOOST_HAS_STATIC_ASSERT
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#define BOOST_NO_CXX11_AUTO_DECLARATIONS
 | 
			
		||||
#define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
 | 
			
		||||
#define BOOST_NO_CXX11_CONSTEXPR
 | 
			
		||||
#define BOOST_NO_CXX11_DECLTYPE_N3276
 | 
			
		||||
#define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
 | 
			
		||||
#define BOOST_NO_CXX11_DELETED_FUNCTIONS
 | 
			
		||||
#define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
 | 
			
		||||
#define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
 | 
			
		||||
#define BOOST_NO_CXX11_LAMBDAS
 | 
			
		||||
#define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
 | 
			
		||||
#define BOOST_NO_CXX11_NULLPTR
 | 
			
		||||
#define BOOST_NO_CXX11_RANGE_BASED_FOR
 | 
			
		||||
#define BOOST_NO_CXX11_RAW_LITERALS
 | 
			
		||||
#define BOOST_NO_CXX11_RVALUE_REFERENCES
 | 
			
		||||
#define BOOST_NO_CXX11_SCOPED_ENUMS
 | 
			
		||||
#define BOOST_NO_SFINAE_EXPR
 | 
			
		||||
#define BOOST_NO_CXX11_TEMPLATE_ALIASES
 | 
			
		||||
#define BOOST_NO_CXX11_UNICODE_LITERALS    // UTF-8 still not supported
 | 
			
		||||
#define BOOST_NO_CXX11_VARIADIC_TEMPLATES
 | 
			
		||||
#define BOOST_NO_CXX11_NOEXCEPT
 | 
			
		||||
#define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
 | 
			
		||||
#define BOOST_NO_CXX11_USER_DEFINED_LITERALS
 | 
			
		||||
#define BOOST_NO_CXX11_ALIGNAS
 | 
			
		||||
#define BOOST_NO_CXX11_TRAILING_RESULT_TYPES
 | 
			
		||||
#define BOOST_NO_CXX11_INLINE_NAMESPACES
 | 
			
		||||
#define BOOST_NO_CXX11_REF_QUALIFIERS
 | 
			
		||||
#define BOOST_NO_CXX11_FINAL
 | 
			
		||||
 | 
			
		||||
// C++ 14:
 | 
			
		||||
#if !defined(__cpp_aggregate_nsdmi) || (__cpp_aggregate_nsdmi < 201304)
 | 
			
		||||
#  define BOOST_NO_CXX14_AGGREGATE_NSDMI
 | 
			
		||||
#endif
 | 
			
		||||
#if !defined(__cpp_binary_literals) || (__cpp_binary_literals < 201304)
 | 
			
		||||
#  define BOOST_NO_CXX14_BINARY_LITERALS
 | 
			
		||||
#endif
 | 
			
		||||
#if !defined(__cpp_constexpr) || (__cpp_constexpr < 201304)
 | 
			
		||||
#  define BOOST_NO_CXX14_CONSTEXPR
 | 
			
		||||
#endif
 | 
			
		||||
#if !defined(__cpp_decltype_auto) || (__cpp_decltype_auto < 201304)
 | 
			
		||||
#  define BOOST_NO_CXX14_DECLTYPE_AUTO
 | 
			
		||||
#endif
 | 
			
		||||
#if (__cplusplus < 201304) // There's no SD6 check for this....
 | 
			
		||||
#  define BOOST_NO_CXX14_DIGIT_SEPARATORS
 | 
			
		||||
#endif
 | 
			
		||||
#if !defined(__cpp_generic_lambdas) || (__cpp_generic_lambdas < 201304)
 | 
			
		||||
#  define BOOST_NO_CXX14_GENERIC_LAMBDAS
 | 
			
		||||
#endif
 | 
			
		||||
#if !defined(__cpp_init_captures) || (__cpp_init_captures < 201304)
 | 
			
		||||
#  define BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES
 | 
			
		||||
#endif
 | 
			
		||||
#if !defined(__cpp_return_type_deduction) || (__cpp_return_type_deduction < 201304)
 | 
			
		||||
#  define BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION
 | 
			
		||||
#endif
 | 
			
		||||
#if !defined(__cpp_variable_templates) || (__cpp_variable_templates < 201304)
 | 
			
		||||
#  define BOOST_NO_CXX14_VARIABLE_TEMPLATES
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if __BORLANDC__ >= 0x590
 | 
			
		||||
#  define BOOST_HAS_TR1_HASH
 | 
			
		||||
 | 
			
		||||
#  define BOOST_HAS_MACRO_USE_FACET
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
//
 | 
			
		||||
// Post 0x561 we have long long and stdint.h:
 | 
			
		||||
#if __BORLANDC__ >= 0x561
 | 
			
		||||
#  ifndef __NO_LONG_LONG
 | 
			
		||||
#     define BOOST_HAS_LONG_LONG
 | 
			
		||||
#  else
 | 
			
		||||
#     define BOOST_NO_LONG_LONG
 | 
			
		||||
#  endif
 | 
			
		||||
   // On non-Win32 platforms let the platform config figure this out:
 | 
			
		||||
#  ifdef _WIN32
 | 
			
		||||
#      define BOOST_HAS_STDINT_H
 | 
			
		||||
#  endif
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
// Borland C++Builder 6 defaults to using STLPort.  If _USE_OLD_RW_STL is
 | 
			
		||||
// defined, then we have 0x560 or greater with the Rogue Wave implementation
 | 
			
		||||
// which presumably has the std::DBL_MAX bug.
 | 
			
		||||
#if defined( BOOST_BCB_WITH_ROGUE_WAVE )
 | 
			
		||||
// <climits> is partly broken, some macros define symbols that are really in
 | 
			
		||||
// namespace std, so you end up having to use illegal constructs like
 | 
			
		||||
// std::DBL_MAX, as a fix we'll just include float.h and have done with:
 | 
			
		||||
#include <float.h>
 | 
			
		||||
#endif
 | 
			
		||||
//
 | 
			
		||||
// __int64:
 | 
			
		||||
//
 | 
			
		||||
#if (__BORLANDC__ >= 0x530) && !defined(__STRICT_ANSI__)
 | 
			
		||||
#  define BOOST_HAS_MS_INT64
 | 
			
		||||
#endif
 | 
			
		||||
//
 | 
			
		||||
// check for exception handling support:
 | 
			
		||||
//
 | 
			
		||||
#if !defined(_CPPUNWIND) && !defined(BOOST_CPPUNWIND) && !defined(__EXCEPTIONS) && !defined(BOOST_NO_EXCEPTIONS)
 | 
			
		||||
#  define BOOST_NO_EXCEPTIONS
 | 
			
		||||
#endif
 | 
			
		||||
//
 | 
			
		||||
// all versions have a <dirent.h>:
 | 
			
		||||
//
 | 
			
		||||
#ifndef __STRICT_ANSI__
 | 
			
		||||
#  define BOOST_HAS_DIRENT_H
 | 
			
		||||
#endif
 | 
			
		||||
//
 | 
			
		||||
// all versions support __declspec:
 | 
			
		||||
//
 | 
			
		||||
#if defined(__STRICT_ANSI__)
 | 
			
		||||
// config/platform/win32.hpp will define BOOST_SYMBOL_EXPORT, etc., unless already defined
 | 
			
		||||
#  define BOOST_SYMBOL_EXPORT
 | 
			
		||||
#endif
 | 
			
		||||
//
 | 
			
		||||
// ABI fixing headers:
 | 
			
		||||
//
 | 
			
		||||
#if __BORLANDC__ != 0x600 // not implemented for version 6 compiler yet
 | 
			
		||||
#ifndef BOOST_ABI_PREFIX
 | 
			
		||||
#  define BOOST_ABI_PREFIX "boost/config/abi/borland_prefix.hpp"
 | 
			
		||||
#endif
 | 
			
		||||
#ifndef BOOST_ABI_SUFFIX
 | 
			
		||||
#  define BOOST_ABI_SUFFIX "boost/config/abi/borland_suffix.hpp"
 | 
			
		||||
#endif
 | 
			
		||||
#endif
 | 
			
		||||
//
 | 
			
		||||
// Disable Win32 support in ANSI mode:
 | 
			
		||||
//
 | 
			
		||||
#if __BORLANDC__ < 0x600
 | 
			
		||||
#  pragma defineonoption BOOST_DISABLE_WIN32 -A
 | 
			
		||||
#elif defined(__STRICT_ANSI__)
 | 
			
		||||
#  define BOOST_DISABLE_WIN32
 | 
			
		||||
#endif
 | 
			
		||||
//
 | 
			
		||||
// 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
 | 
			
		||||
#  define BOOST_NO_VOID_RETURNS
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
// 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__)
 | 
			
		||||
							
								
								
									
										272
									
								
								boost/config/compiler/clang.hpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										272
									
								
								boost/config/compiler/clang.hpp
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,272 @@
 | 
			
		|||
// (C) Copyright Douglas Gregor 2010
 | 
			
		||||
//
 | 
			
		||||
//  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.
 | 
			
		||||
 | 
			
		||||
// Clang compiler setup.
 | 
			
		||||
 | 
			
		||||
#define BOOST_HAS_PRAGMA_ONCE
 | 
			
		||||
 | 
			
		||||
// Detecting `-fms-extension` compiler flag assuming that _MSC_VER defined when that flag is used.
 | 
			
		||||
#if defined (_MSC_VER) && (__clang_major__ > 3 || (__clang_major__ == 3 && __clang_minor__ >= 4))
 | 
			
		||||
#   define BOOST_HAS_PRAGMA_DETECT_MISMATCH
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
// When compiling with clang before __has_extension was defined,
 | 
			
		||||
// even if one writes 'defined(__has_extension) && __has_extension(xxx)',
 | 
			
		||||
// clang reports a compiler error. So the only workaround found is:
 | 
			
		||||
 | 
			
		||||
#ifndef __has_extension
 | 
			
		||||
#define __has_extension __has_feature
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if !__has_feature(cxx_exceptions) && !defined(BOOST_NO_EXCEPTIONS)
 | 
			
		||||
#  define BOOST_NO_EXCEPTIONS
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if !__has_feature(cxx_rtti) && !defined(BOOST_NO_RTTI)
 | 
			
		||||
#  define BOOST_NO_RTTI
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if !__has_feature(cxx_rtti) && !defined(BOOST_NO_TYPEID)
 | 
			
		||||
#  define BOOST_NO_TYPEID
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if defined(__int64) && !defined(__GNUC__)
 | 
			
		||||
#  define BOOST_HAS_MS_INT64
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#define BOOST_HAS_NRVO
 | 
			
		||||
 | 
			
		||||
// Branch prediction hints
 | 
			
		||||
#if defined(__has_builtin)
 | 
			
		||||
#if __has_builtin(__builtin_expect)
 | 
			
		||||
#define BOOST_LIKELY(x) __builtin_expect(x, 1)
 | 
			
		||||
#define BOOST_UNLIKELY(x) __builtin_expect(x, 0)
 | 
			
		||||
#endif
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
// Clang supports "long long" in all compilation modes.
 | 
			
		||||
#define BOOST_HAS_LONG_LONG
 | 
			
		||||
 | 
			
		||||
//
 | 
			
		||||
// We disable this if the compiler is really nvcc as it
 | 
			
		||||
// doesn't actually support __int128 as of CUDA_VERSION=5000
 | 
			
		||||
// even though it defines __SIZEOF_INT128__.
 | 
			
		||||
// See https://svn.boost.org/trac/boost/ticket/10418
 | 
			
		||||
// Only re-enable this for nvcc if you're absolutely sure
 | 
			
		||||
// of the circumstances under which it's supported:
 | 
			
		||||
//
 | 
			
		||||
#if defined(__SIZEOF_INT128__) && !defined(__CUDACC__)
 | 
			
		||||
#  define BOOST_HAS_INT128
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
//
 | 
			
		||||
// Dynamic shared object (DSO) and dynamic-link library (DLL) support
 | 
			
		||||
//
 | 
			
		||||
#if !defined(_WIN32) && !defined(__WIN32__) && !defined(WIN32)
 | 
			
		||||
#  define BOOST_SYMBOL_EXPORT __attribute__((__visibility__("default")))
 | 
			
		||||
#  define BOOST_SYMBOL_IMPORT
 | 
			
		||||
#  define BOOST_SYMBOL_VISIBLE __attribute__((__visibility__("default")))
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
//
 | 
			
		||||
// The BOOST_FALLTHROUGH macro can be used to annotate implicit fall-through
 | 
			
		||||
// between switch labels.
 | 
			
		||||
//
 | 
			
		||||
#if __cplusplus >= 201103L && defined(__has_warning)
 | 
			
		||||
#  if __has_feature(cxx_attributes) && __has_warning("-Wimplicit-fallthrough")
 | 
			
		||||
#    define BOOST_FALLTHROUGH [[clang::fallthrough]]
 | 
			
		||||
#  endif
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if !__has_feature(cxx_auto_type)
 | 
			
		||||
#  define BOOST_NO_CXX11_AUTO_DECLARATIONS
 | 
			
		||||
#  define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
//
 | 
			
		||||
// Currently clang on Windows using VC++ RTL does not support C++11's char16_t or char32_t
 | 
			
		||||
//
 | 
			
		||||
#if defined(_MSC_VER) || !(defined(__GXX_EXPERIMENTAL_CXX0X__) || __cplusplus >= 201103L)
 | 
			
		||||
#  define BOOST_NO_CXX11_CHAR16_T
 | 
			
		||||
#  define BOOST_NO_CXX11_CHAR32_T
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if !__has_feature(cxx_constexpr)
 | 
			
		||||
#  define BOOST_NO_CXX11_CONSTEXPR
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if !__has_feature(cxx_decltype)
 | 
			
		||||
#  define BOOST_NO_CXX11_DECLTYPE
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if !__has_feature(cxx_decltype_incomplete_return_types)
 | 
			
		||||
#  define BOOST_NO_CXX11_DECLTYPE_N3276
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if !__has_feature(cxx_defaulted_functions)
 | 
			
		||||
#  define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if !__has_feature(cxx_deleted_functions)
 | 
			
		||||
#  define BOOST_NO_CXX11_DELETED_FUNCTIONS
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if !__has_feature(cxx_explicit_conversions)
 | 
			
		||||
#  define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if !__has_feature(cxx_default_function_template_args)
 | 
			
		||||
#  define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if !__has_feature(cxx_generalized_initializers)
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if !__has_feature(cxx_lambdas)
 | 
			
		||||
#  define BOOST_NO_CXX11_LAMBDAS
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if !__has_feature(cxx_local_type_template_args)
 | 
			
		||||
#  define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if !__has_feature(cxx_noexcept)
 | 
			
		||||
#  define BOOST_NO_CXX11_NOEXCEPT
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if !__has_feature(cxx_nullptr)
 | 
			
		||||
#  define BOOST_NO_CXX11_NULLPTR
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if !__has_feature(cxx_range_for)
 | 
			
		||||
#  define BOOST_NO_CXX11_RANGE_BASED_FOR
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if !__has_feature(cxx_raw_string_literals)
 | 
			
		||||
#  define BOOST_NO_CXX11_RAW_LITERALS
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if !__has_feature(cxx_reference_qualified_functions)
 | 
			
		||||
#  define BOOST_NO_CXX11_REF_QUALIFIERS
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if !__has_feature(cxx_generalized_initializers)
 | 
			
		||||
#  define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if !__has_feature(cxx_rvalue_references)
 | 
			
		||||
#  define BOOST_NO_CXX11_RVALUE_REFERENCES
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if !__has_feature(cxx_strong_enums)
 | 
			
		||||
#  define BOOST_NO_CXX11_SCOPED_ENUMS
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if !__has_feature(cxx_static_assert)
 | 
			
		||||
#  define BOOST_NO_CXX11_STATIC_ASSERT
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if !__has_feature(cxx_alias_templates)
 | 
			
		||||
#  define BOOST_NO_CXX11_TEMPLATE_ALIASES
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if !__has_feature(cxx_unicode_literals)
 | 
			
		||||
#  define BOOST_NO_CXX11_UNICODE_LITERALS
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if !__has_feature(cxx_variadic_templates)
 | 
			
		||||
#  define BOOST_NO_CXX11_VARIADIC_TEMPLATES
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if !__has_feature(cxx_user_literals)
 | 
			
		||||
#  define BOOST_NO_CXX11_USER_DEFINED_LITERALS
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if !(__has_feature(cxx_alignas) || __has_extension(cxx_alignas))
 | 
			
		||||
#  define BOOST_NO_CXX11_ALIGNAS
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if !__has_feature(cxx_trailing_return)
 | 
			
		||||
#  define BOOST_NO_CXX11_TRAILING_RESULT_TYPES
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if !__has_feature(cxx_inline_namespaces)
 | 
			
		||||
#  define BOOST_NO_CXX11_INLINE_NAMESPACES
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if !__has_feature(cxx_override_control)
 | 
			
		||||
#  define BOOST_NO_CXX11_FINAL
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if !(__has_feature(cxx_binary_literals) || __has_extension(cxx_binary_literals))
 | 
			
		||||
#  define BOOST_NO_CXX14_BINARY_LITERALS
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if !(__has_feature(cxx_decltype_auto) || __has_extension(cxx_decltype_auto))
 | 
			
		||||
#  define BOOST_NO_CXX14_DECLTYPE_AUTO
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if !(__has_feature(cxx_aggregate_nsdmi) || __has_extension(cxx_aggregate_nsdmi))
 | 
			
		||||
#  define BOOST_NO_CXX14_AGGREGATE_NSDMI
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if !(__has_feature(cxx_init_captures) || __has_extension(cxx_init_captures))
 | 
			
		||||
#  define BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if !(__has_feature(cxx_generic_lambdas) || __has_extension(cxx_generic_lambdas))
 | 
			
		||||
#  define BOOST_NO_CXX14_GENERIC_LAMBDAS
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
// clang < 3.5 has a defect with dependent type, like following.
 | 
			
		||||
//
 | 
			
		||||
//  template <class T>
 | 
			
		||||
//  constexpr typename enable_if<pred<T> >::type foo(T &)
 | 
			
		||||
//  { } // error: no return statement in constexpr function
 | 
			
		||||
//
 | 
			
		||||
// This issue also affects C++11 mode, but C++11 constexpr requires return stmt.
 | 
			
		||||
// Therefore we don't care such case.
 | 
			
		||||
//
 | 
			
		||||
// Note that we can't check Clang version directly as the numbering system changes depending who's
 | 
			
		||||
// creating the Clang release (see https://github.com/boostorg/config/pull/39#issuecomment-59927873)
 | 
			
		||||
// so instead verify that we have a feature that was introduced at the same time as working C++14
 | 
			
		||||
// constexpr (generic lambda's in this case):
 | 
			
		||||
//
 | 
			
		||||
#if !__has_feature(cxx_generic_lambdas) \
 | 
			
		||||
  || !(__has_feature(cxx_relaxed_constexpr) || __has_extension(cxx_relaxed_constexpr))
 | 
			
		||||
#  define BOOST_NO_CXX14_CONSTEXPR
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if !(__has_feature(cxx_return_type_deduction) || __has_extension(cxx_return_type_deduction))
 | 
			
		||||
#  define BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if !(__has_feature(cxx_variable_templates) || __has_extension(cxx_variable_templates))
 | 
			
		||||
#  define BOOST_NO_CXX14_VARIABLE_TEMPLATES
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if __cplusplus < 201400
 | 
			
		||||
// All versions with __cplusplus above this value seem to support this:
 | 
			
		||||
#  define BOOST_NO_CXX14_DIGIT_SEPARATORS
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
// Unused attribute:
 | 
			
		||||
#if defined(__GNUC__) && (__GNUC__ >= 4)
 | 
			
		||||
#  define BOOST_ATTRIBUTE_UNUSED __attribute__((unused))
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#ifndef BOOST_COMPILER
 | 
			
		||||
#  define BOOST_COMPILER "Clang version " __clang_version__
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
// Macro used to identify the Clang compiler.
 | 
			
		||||
#define BOOST_CLANG 1
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										220
									
								
								boost/config/compiler/codegear.hpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										220
									
								
								boost/config/compiler/codegear.hpp
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,220 @@
 | 
			
		|||
//  (C) Copyright John Maddock 2001 - 2003.
 | 
			
		||||
//  (C) Copyright David Abrahams 2002 - 2003.
 | 
			
		||||
//  (C) Copyright Aleksey Gurtovoy 2002.
 | 
			
		||||
//  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.
 | 
			
		||||
 | 
			
		||||
//  CodeGear C++ compiler setup:
 | 
			
		||||
 | 
			
		||||
#if !defined( BOOST_WITH_CODEGEAR_WARNINGS )
 | 
			
		||||
// these warnings occur frequently in optimized template code
 | 
			
		||||
# pragma warn -8004 // var assigned value, but never used
 | 
			
		||||
# pragma warn -8008 // condition always true/false
 | 
			
		||||
# pragma warn -8066 // dead code can never execute
 | 
			
		||||
# pragma warn -8104 // static members with ctors not threadsafe
 | 
			
		||||
# pragma warn -8105 // reference member in class without ctors
 | 
			
		||||
#endif
 | 
			
		||||
//
 | 
			
		||||
// versions check:
 | 
			
		||||
// last known and checked version is 0x621
 | 
			
		||||
#if (__CODEGEARC__ > 0x621)
 | 
			
		||||
#  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
 | 
			
		||||
 | 
			
		||||
// CodeGear C++ Builder 2009
 | 
			
		||||
#if (__CODEGEARC__ <= 0x613)
 | 
			
		||||
#  define BOOST_NO_INTEGRAL_INT64_T
 | 
			
		||||
#  define BOOST_NO_DEPENDENT_NESTED_DERIVATIONS
 | 
			
		||||
#  define BOOST_NO_PRIVATE_IN_AGGREGATE
 | 
			
		||||
#  define BOOST_NO_USING_DECLARATION_OVERLOADS_FROM_TYPENAME_BASE
 | 
			
		||||
   // we shouldn't really need this - but too many things choke
 | 
			
		||||
   // without it, this needs more investigation:
 | 
			
		||||
#  define BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
 | 
			
		||||
#  define BOOST_SP_NO_SP_CONVERTIBLE
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
// CodeGear C++ Builder 2010
 | 
			
		||||
#if (__CODEGEARC__ <= 0x621)
 | 
			
		||||
#  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_NO_MEMBER_TEMPLATE_FRIENDS
 | 
			
		||||
#  define BOOST_NO_NESTED_FRIENDSHIP     // TC1 gives nested classes access rights as any other member
 | 
			
		||||
#  define BOOST_NO_USING_TEMPLATE
 | 
			
		||||
#  define BOOST_NO_TWO_PHASE_NAME_LOOKUP
 | 
			
		||||
// Temporary hack, until specific MPL preprocessed headers are generated
 | 
			
		||||
#  define BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
 | 
			
		||||
 | 
			
		||||
// CodeGear has not yet completely implemented value-initialization, for
 | 
			
		||||
// example for array types, as I reported in 2010: Embarcadero Report 83751,
 | 
			
		||||
// "Value-initialization: arrays should have each element value-initialized",
 | 
			
		||||
// http://qc.embarcadero.com/wc/qcmain.aspx?d=83751
 | 
			
		||||
// Last checked version: Embarcadero C++ 6.21
 | 
			
		||||
// See also: http://www.boost.org/libs/utility/value_init.htm#compiler_issues
 | 
			
		||||
// (Niels Dekker, LKEB, April 2010)
 | 
			
		||||
#  define BOOST_NO_COMPLETE_VALUE_INITIALIZATION
 | 
			
		||||
 | 
			
		||||
#  if defined(NDEBUG) && defined(__cplusplus)
 | 
			
		||||
      // fix broken <cstring> so that Boost.test works:
 | 
			
		||||
#     include <cstring>
 | 
			
		||||
#     undef strcmp
 | 
			
		||||
#  endif
 | 
			
		||||
   // fix broken errno declaration:
 | 
			
		||||
#  include <errno.h>
 | 
			
		||||
#  ifndef errno
 | 
			
		||||
#     define errno errno
 | 
			
		||||
#  endif
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
// Reportedly, #pragma once is supported since C++ Builder 2010
 | 
			
		||||
#if (__CODEGEARC__ >= 0x620)
 | 
			
		||||
#  define BOOST_HAS_PRAGMA_ONCE
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
//
 | 
			
		||||
// C++0x macros:
 | 
			
		||||
//
 | 
			
		||||
#if (__CODEGEARC__ <= 0x620)
 | 
			
		||||
#define BOOST_NO_CXX11_STATIC_ASSERT
 | 
			
		||||
#else
 | 
			
		||||
#define BOOST_HAS_STATIC_ASSERT
 | 
			
		||||
#endif
 | 
			
		||||
#define BOOST_HAS_CHAR16_T
 | 
			
		||||
#define BOOST_HAS_CHAR32_T
 | 
			
		||||
#define BOOST_HAS_LONG_LONG
 | 
			
		||||
// #define BOOST_HAS_ALIGNOF
 | 
			
		||||
#define BOOST_HAS_DECLTYPE
 | 
			
		||||
#define BOOST_HAS_EXPLICIT_CONVERSION_OPS
 | 
			
		||||
// #define BOOST_HAS_RVALUE_REFS
 | 
			
		||||
#define BOOST_HAS_SCOPED_ENUM
 | 
			
		||||
// #define BOOST_HAS_STATIC_ASSERT
 | 
			
		||||
#define BOOST_HAS_STD_TYPE_TRAITS
 | 
			
		||||
 | 
			
		||||
#define BOOST_NO_CXX11_AUTO_DECLARATIONS
 | 
			
		||||
#define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
 | 
			
		||||
#define BOOST_NO_CXX11_CONSTEXPR
 | 
			
		||||
#define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
 | 
			
		||||
#define BOOST_NO_CXX11_DELETED_FUNCTIONS
 | 
			
		||||
#define BOOST_NO_CXX11_EXTERN_TEMPLATE
 | 
			
		||||
#define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
 | 
			
		||||
#define BOOST_NO_CXX11_LAMBDAS
 | 
			
		||||
#define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
 | 
			
		||||
#define BOOST_NO_CXX11_NOEXCEPT
 | 
			
		||||
#define BOOST_NO_CXX11_NULLPTR
 | 
			
		||||
#define BOOST_NO_CXX11_RANGE_BASED_FOR
 | 
			
		||||
#define BOOST_NO_CXX11_RAW_LITERALS
 | 
			
		||||
#define BOOST_NO_CXX11_RVALUE_REFERENCES
 | 
			
		||||
#define BOOST_NO_SFINAE_EXPR
 | 
			
		||||
#define BOOST_NO_CXX11_TEMPLATE_ALIASES
 | 
			
		||||
#define BOOST_NO_CXX11_UNICODE_LITERALS
 | 
			
		||||
#define BOOST_NO_CXX11_VARIADIC_TEMPLATES
 | 
			
		||||
#define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
 | 
			
		||||
#define BOOST_NO_CXX11_USER_DEFINED_LITERALS
 | 
			
		||||
#define BOOST_NO_CXX11_ALIGNAS
 | 
			
		||||
#define BOOST_NO_CXX11_TRAILING_RESULT_TYPES
 | 
			
		||||
#define BOOST_NO_CXX11_INLINE_NAMESPACES
 | 
			
		||||
#define BOOST_NO_CXX11_REF_QUALIFIERS
 | 
			
		||||
#define BOOST_NO_CXX11_FINAL
 | 
			
		||||
 | 
			
		||||
// C++ 14:
 | 
			
		||||
#if !defined(__cpp_aggregate_nsdmi) || (__cpp_aggregate_nsdmi < 201304)
 | 
			
		||||
#  define BOOST_NO_CXX14_AGGREGATE_NSDMI
 | 
			
		||||
#endif
 | 
			
		||||
#if !defined(__cpp_binary_literals) || (__cpp_binary_literals < 201304)
 | 
			
		||||
#  define BOOST_NO_CXX14_BINARY_LITERALS
 | 
			
		||||
#endif
 | 
			
		||||
#if !defined(__cpp_constexpr) || (__cpp_constexpr < 201304)
 | 
			
		||||
#  define BOOST_NO_CXX14_CONSTEXPR
 | 
			
		||||
#endif
 | 
			
		||||
#if !defined(__cpp_decltype_auto) || (__cpp_decltype_auto < 201304)
 | 
			
		||||
#  define BOOST_NO_CXX14_DECLTYPE_AUTO
 | 
			
		||||
#endif
 | 
			
		||||
#if (__cplusplus < 201304) // There's no SD6 check for this....
 | 
			
		||||
#  define BOOST_NO_CXX14_DIGIT_SEPARATORS
 | 
			
		||||
#endif
 | 
			
		||||
#if !defined(__cpp_generic_lambdas) || (__cpp_generic_lambdas < 201304)
 | 
			
		||||
#  define BOOST_NO_CXX14_GENERIC_LAMBDAS
 | 
			
		||||
#endif
 | 
			
		||||
#if !defined(__cpp_init_captures) || (__cpp_init_captures < 201304)
 | 
			
		||||
#  define BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES
 | 
			
		||||
#endif
 | 
			
		||||
#if !defined(__cpp_return_type_deduction) || (__cpp_return_type_deduction < 201304)
 | 
			
		||||
#  define BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION
 | 
			
		||||
#endif
 | 
			
		||||
#if !defined(__cpp_variable_templates) || (__cpp_variable_templates < 201304)
 | 
			
		||||
#  define BOOST_NO_CXX14_VARIABLE_TEMPLATES
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
//
 | 
			
		||||
// TR1 macros:
 | 
			
		||||
//
 | 
			
		||||
#define BOOST_HAS_TR1_HASH
 | 
			
		||||
#define BOOST_HAS_TR1_TYPE_TRAITS
 | 
			
		||||
#define BOOST_HAS_TR1_UNORDERED_MAP
 | 
			
		||||
#define BOOST_HAS_TR1_UNORDERED_SET
 | 
			
		||||
 | 
			
		||||
#define BOOST_HAS_MACRO_USE_FACET
 | 
			
		||||
 | 
			
		||||
#define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
 | 
			
		||||
 | 
			
		||||
// On non-Win32 platforms let the platform config figure this out:
 | 
			
		||||
#ifdef _WIN32
 | 
			
		||||
#  define BOOST_HAS_STDINT_H
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
//
 | 
			
		||||
// __int64:
 | 
			
		||||
//
 | 
			
		||||
#if !defined(__STRICT_ANSI__)
 | 
			
		||||
#  define BOOST_HAS_MS_INT64
 | 
			
		||||
#endif
 | 
			
		||||
//
 | 
			
		||||
// check for exception handling support:
 | 
			
		||||
//
 | 
			
		||||
#if !defined(_CPPUNWIND) && !defined(BOOST_CPPUNWIND) && !defined(__EXCEPTIONS) && !defined(BOOST_NO_EXCEPTIONS)
 | 
			
		||||
#  define BOOST_NO_EXCEPTIONS
 | 
			
		||||
#endif
 | 
			
		||||
//
 | 
			
		||||
// all versions have a <dirent.h>:
 | 
			
		||||
//
 | 
			
		||||
#if !defined(__STRICT_ANSI__)
 | 
			
		||||
#  define BOOST_HAS_DIRENT_H
 | 
			
		||||
#endif
 | 
			
		||||
//
 | 
			
		||||
// all versions support __declspec:
 | 
			
		||||
//
 | 
			
		||||
#if defined(__STRICT_ANSI__)
 | 
			
		||||
// config/platform/win32.hpp will define BOOST_SYMBOL_EXPORT, etc., unless already defined
 | 
			
		||||
#  define BOOST_SYMBOL_EXPORT
 | 
			
		||||
#endif
 | 
			
		||||
//
 | 
			
		||||
// ABI fixing headers:
 | 
			
		||||
//
 | 
			
		||||
#ifndef BOOST_ABI_PREFIX
 | 
			
		||||
#  define BOOST_ABI_PREFIX "boost/config/abi/borland_prefix.hpp"
 | 
			
		||||
#endif
 | 
			
		||||
#ifndef BOOST_ABI_SUFFIX
 | 
			
		||||
#  define BOOST_ABI_SUFFIX "boost/config/abi/borland_suffix.hpp"
 | 
			
		||||
#endif
 | 
			
		||||
//
 | 
			
		||||
// Disable Win32 support in ANSI mode:
 | 
			
		||||
//
 | 
			
		||||
#  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
 | 
			
		||||
//
 | 
			
		||||
#if defined(_MSC_VER) && (_MSC_VER <= 1200)
 | 
			
		||||
#  define BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP
 | 
			
		||||
#  define BOOST_NO_VOID_RETURNS
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#define BOOST_COMPILER "CodeGear C++ version " BOOST_STRINGIZE(__CODEGEARC__)
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										59
									
								
								boost/config/compiler/comeau.hpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										59
									
								
								boost/config/compiler/comeau.hpp
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,59 @@
 | 
			
		|||
//  (C) Copyright John Maddock 2001. 
 | 
			
		||||
//  (C) Copyright Douglas Gregor 2001. 
 | 
			
		||||
//  (C) Copyright Peter Dimov 2001. 
 | 
			
		||||
//  (C) Copyright Aleksey Gurtovoy 2003. 
 | 
			
		||||
//  (C) Copyright Beman Dawes 2003. 
 | 
			
		||||
//  (C) Copyright Jens Maurer 2003. 
 | 
			
		||||
//  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.
 | 
			
		||||
 | 
			
		||||
//  Comeau C++ compiler setup:
 | 
			
		||||
 | 
			
		||||
#include "boost/config/compiler/common_edg.hpp"
 | 
			
		||||
 | 
			
		||||
#if (__COMO_VERSION__ <= 4245)
 | 
			
		||||
 | 
			
		||||
#  if defined(_MSC_VER) && _MSC_VER <= 1300
 | 
			
		||||
#     if _MSC_VER > 100
 | 
			
		||||
         // only set this in non-strict mode:
 | 
			
		||||
#        define BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP
 | 
			
		||||
#     endif
 | 
			
		||||
#  endif
 | 
			
		||||
 | 
			
		||||
// Void returns don't work when emulating VC 6 (Peter Dimov)
 | 
			
		||||
// TODO: look up if this doesn't apply to the whole 12xx range
 | 
			
		||||
#  if defined(_MSC_VER) && (_MSC_VER < 1300)
 | 
			
		||||
#     define BOOST_NO_VOID_RETURNS
 | 
			
		||||
#  endif
 | 
			
		||||
 | 
			
		||||
#endif  // version 4245
 | 
			
		||||
 | 
			
		||||
//
 | 
			
		||||
// enable __int64 support in VC emulation mode
 | 
			
		||||
//
 | 
			
		||||
#  if defined(_MSC_VER) && (_MSC_VER >= 1200)
 | 
			
		||||
#     define BOOST_HAS_MS_INT64
 | 
			
		||||
#  endif
 | 
			
		||||
 | 
			
		||||
#define BOOST_COMPILER "Comeau compiler version " BOOST_STRINGIZE(__COMO_VERSION__)
 | 
			
		||||
 | 
			
		||||
//
 | 
			
		||||
// versions check:
 | 
			
		||||
// we don't know Comeau prior to version 4245:
 | 
			
		||||
#if __COMO_VERSION__ < 4245
 | 
			
		||||
#  error "Compiler not configured - please reconfigure"
 | 
			
		||||
#endif
 | 
			
		||||
//
 | 
			
		||||
// last known and checked version is 4245:
 | 
			
		||||
#if (__COMO_VERSION__ > 4245)
 | 
			
		||||
#  if defined(BOOST_ASSERT_CONFIG)
 | 
			
		||||
#     error "Unknown compiler version - please run the configure tests and report the results"
 | 
			
		||||
#  endif
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										143
									
								
								boost/config/compiler/common_edg.hpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										143
									
								
								boost/config/compiler/common_edg.hpp
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,143 @@
 | 
			
		|||
//  (C) Copyright John Maddock 2001 - 2002.
 | 
			
		||||
//  (C) Copyright Jens Maurer 2001.
 | 
			
		||||
//  (C) Copyright David Abrahams 2002.
 | 
			
		||||
//  (C) Copyright Aleksey Gurtovoy 2002.
 | 
			
		||||
//  (C) Copyright Markus Schoepflin 2005.
 | 
			
		||||
//  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.
 | 
			
		||||
 | 
			
		||||
//
 | 
			
		||||
// Options common to all edg based compilers.
 | 
			
		||||
//
 | 
			
		||||
// This is included from within the individual compiler mini-configs.
 | 
			
		||||
 | 
			
		||||
#ifndef  __EDG_VERSION__
 | 
			
		||||
#  error This file requires that __EDG_VERSION__ be defined.
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if (__EDG_VERSION__ <= 238)
 | 
			
		||||
#   define BOOST_NO_INTEGRAL_INT64_T
 | 
			
		||||
#   define BOOST_NO_SFINAE
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if (__EDG_VERSION__ <= 240)
 | 
			
		||||
#   define BOOST_NO_VOID_RETURNS
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if (__EDG_VERSION__ <= 241) && !defined(BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP)
 | 
			
		||||
#   define BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if (__EDG_VERSION__ <= 244) && !defined(BOOST_NO_TEMPLATE_TEMPLATES)
 | 
			
		||||
#   define BOOST_NO_TEMPLATE_TEMPLATES
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if (__EDG_VERSION__ < 300) && !defined(BOOST_NO_IS_ABSTRACT)
 | 
			
		||||
#   define BOOST_NO_IS_ABSTRACT
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if (__EDG_VERSION__ <= 303) && !defined(BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL)
 | 
			
		||||
#   define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
// See also kai.hpp which checks a Kai-specific symbol for EH
 | 
			
		||||
# if !defined(__KCC) && !defined(__EXCEPTIONS) && !defined(BOOST_NO_EXCEPTIONS)
 | 
			
		||||
#     define BOOST_NO_EXCEPTIONS
 | 
			
		||||
# endif
 | 
			
		||||
 | 
			
		||||
# if !defined(__NO_LONG_LONG)
 | 
			
		||||
#     define BOOST_HAS_LONG_LONG
 | 
			
		||||
# else
 | 
			
		||||
#     define BOOST_NO_LONG_LONG
 | 
			
		||||
# endif
 | 
			
		||||
 | 
			
		||||
// Not sure what version was the first to support #pragma once, but
 | 
			
		||||
// different EDG-based compilers (e.g. Intel) supported it for ages.
 | 
			
		||||
// Add a proper version check if it causes problems.
 | 
			
		||||
#define BOOST_HAS_PRAGMA_ONCE
 | 
			
		||||
 | 
			
		||||
//
 | 
			
		||||
// C++0x features
 | 
			
		||||
//
 | 
			
		||||
//   See above for BOOST_NO_LONG_LONG
 | 
			
		||||
//
 | 
			
		||||
#if (__EDG_VERSION__ < 310)
 | 
			
		||||
#  define BOOST_NO_CXX11_EXTERN_TEMPLATE
 | 
			
		||||
#endif
 | 
			
		||||
#if (__EDG_VERSION__ <= 310)
 | 
			
		||||
// No support for initializer lists
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
 | 
			
		||||
#endif
 | 
			
		||||
#if (__EDG_VERSION__ < 400)
 | 
			
		||||
#  define BOOST_NO_CXX11_VARIADIC_MACROS
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#define BOOST_NO_CXX11_AUTO_DECLARATIONS
 | 
			
		||||
#define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
 | 
			
		||||
#define BOOST_NO_CXX11_CHAR16_T
 | 
			
		||||
#define BOOST_NO_CXX11_CHAR32_T
 | 
			
		||||
#define BOOST_NO_CXX11_CONSTEXPR
 | 
			
		||||
#define BOOST_NO_CXX11_DECLTYPE
 | 
			
		||||
#define BOOST_NO_CXX11_DECLTYPE_N3276
 | 
			
		||||
#define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
 | 
			
		||||
#define BOOST_NO_CXX11_DELETED_FUNCTIONS
 | 
			
		||||
#define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
 | 
			
		||||
#define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
 | 
			
		||||
#define BOOST_NO_CXX11_LAMBDAS
 | 
			
		||||
#define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
 | 
			
		||||
#define BOOST_NO_CXX11_NOEXCEPT
 | 
			
		||||
#define BOOST_NO_CXX11_NULLPTR
 | 
			
		||||
#define BOOST_NO_CXX11_RANGE_BASED_FOR
 | 
			
		||||
#define BOOST_NO_CXX11_RAW_LITERALS
 | 
			
		||||
#define BOOST_NO_CXX11_RVALUE_REFERENCES
 | 
			
		||||
#define BOOST_NO_CXX11_SCOPED_ENUMS
 | 
			
		||||
#define BOOST_NO_SFINAE_EXPR
 | 
			
		||||
#define BOOST_NO_CXX11_STATIC_ASSERT
 | 
			
		||||
#define BOOST_NO_CXX11_TEMPLATE_ALIASES
 | 
			
		||||
#define BOOST_NO_CXX11_UNICODE_LITERALS
 | 
			
		||||
#define BOOST_NO_CXX11_VARIADIC_TEMPLATES
 | 
			
		||||
#define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
 | 
			
		||||
#define BOOST_NO_CXX11_USER_DEFINED_LITERALS
 | 
			
		||||
#define BOOST_NO_CXX11_ALIGNAS
 | 
			
		||||
#define BOOST_NO_CXX11_TRAILING_RESULT_TYPES
 | 
			
		||||
#define BOOST_NO_CXX11_INLINE_NAMESPACES
 | 
			
		||||
#define BOOST_NO_CXX11_REF_QUALIFIERS
 | 
			
		||||
#define BOOST_NO_CXX11_FINAL
 | 
			
		||||
 | 
			
		||||
// C++ 14:
 | 
			
		||||
#if !defined(__cpp_aggregate_nsdmi) || (__cpp_aggregate_nsdmi < 201304)
 | 
			
		||||
#  define BOOST_NO_CXX14_AGGREGATE_NSDMI
 | 
			
		||||
#endif
 | 
			
		||||
#if !defined(__cpp_binary_literals) || (__cpp_binary_literals < 201304)
 | 
			
		||||
#  define BOOST_NO_CXX14_BINARY_LITERALS
 | 
			
		||||
#endif
 | 
			
		||||
#if !defined(__cpp_constexpr) || (__cpp_constexpr < 201304)
 | 
			
		||||
#  define BOOST_NO_CXX14_CONSTEXPR
 | 
			
		||||
#endif
 | 
			
		||||
#if !defined(__cpp_decltype_auto) || (__cpp_decltype_auto < 201304)
 | 
			
		||||
#  define BOOST_NO_CXX14_DECLTYPE_AUTO
 | 
			
		||||
#endif
 | 
			
		||||
#if (__cplusplus < 201304) // There's no SD6 check for this....
 | 
			
		||||
#  define BOOST_NO_CXX14_DIGIT_SEPARATORS
 | 
			
		||||
#endif
 | 
			
		||||
#if !defined(__cpp_generic_lambdas) || (__cpp_generic_lambdas < 201304)
 | 
			
		||||
#  define BOOST_NO_CXX14_GENERIC_LAMBDAS
 | 
			
		||||
#endif
 | 
			
		||||
#if !defined(__cpp_init_captures) || (__cpp_init_captures < 201304)
 | 
			
		||||
#  define BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES
 | 
			
		||||
#endif
 | 
			
		||||
#if !defined(__cpp_return_type_deduction) || (__cpp_return_type_deduction < 201304)
 | 
			
		||||
#  define BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION
 | 
			
		||||
#endif
 | 
			
		||||
#if !defined(__cpp_variable_templates) || (__cpp_variable_templates < 201304)
 | 
			
		||||
#  define BOOST_NO_CXX14_VARIABLE_TEMPLATES
 | 
			
		||||
#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
 | 
			
		||||
							
								
								
									
										19
									
								
								boost/config/compiler/compaq_cxx.hpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								boost/config/compiler/compaq_cxx.hpp
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,19 @@
 | 
			
		|||
//  (C) Copyright John Maddock 2001 - 2003. 
 | 
			
		||||
//  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.
 | 
			
		||||
 | 
			
		||||
//  Tru64 C++ compiler setup (now HP):
 | 
			
		||||
 | 
			
		||||
#define BOOST_COMPILER "HP Tru64 C++ " BOOST_STRINGIZE(__DECCXX_VER)
 | 
			
		||||
 | 
			
		||||
#include "boost/config/compiler/common_edg.hpp"
 | 
			
		||||
 | 
			
		||||
//
 | 
			
		||||
// versions check:
 | 
			
		||||
// Nothing to do here?
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										92
									
								
								boost/config/compiler/cray.hpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										92
									
								
								boost/config/compiler/cray.hpp
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,92 @@
 | 
			
		|||
//  (C) Copyright John Maddock 2011.
 | 
			
		||||
//  (C) Copyright Cray, Inc. 2013
 | 
			
		||||
//  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 < 8
 | 
			
		||||
#  error "Boost is not configured for Cray compilers prior to version 8, 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"
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
//
 | 
			
		||||
//
 | 
			
		||||
#define BOOST_NO_CXX11_STATIC_ASSERT
 | 
			
		||||
#define BOOST_NO_CXX11_AUTO_DECLARATIONS
 | 
			
		||||
#define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
 | 
			
		||||
#define BOOST_HAS_NRVO
 | 
			
		||||
#define BOOST_NO_CXX11_VARIADIC_MACROS
 | 
			
		||||
#define BOOST_NO_CXX11_VARIADIC_TEMPLATES
 | 
			
		||||
#define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
 | 
			
		||||
#define BOOST_NO_CXX11_UNICODE_LITERALS
 | 
			
		||||
#define BOOST_NO_TWO_PHASE_NAME_LOOKUP
 | 
			
		||||
#define BOOST_HAS_NRVO
 | 
			
		||||
#define BOOST_NO_CXX11_TEMPLATE_ALIASES
 | 
			
		||||
#define BOOST_NO_CXX11_STATIC_ASSERT
 | 
			
		||||
#define BOOST_NO_SFINAE_EXPR
 | 
			
		||||
#define BOOST_NO_CXX11_SCOPED_ENUMS
 | 
			
		||||
#define BOOST_NO_CXX11_RVALUE_REFERENCES
 | 
			
		||||
#define BOOST_NO_CXX11_RANGE_BASED_FOR
 | 
			
		||||
#define BOOST_NO_CXX11_RAW_LITERALS
 | 
			
		||||
#define BOOST_NO_CXX11_NULLPTR
 | 
			
		||||
#define BOOST_NO_CXX11_NOEXCEPT
 | 
			
		||||
#define BOOST_NO_CXX11_LAMBDAS
 | 
			
		||||
#define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
 | 
			
		||||
#define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
 | 
			
		||||
#define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
 | 
			
		||||
#define BOOST_NO_CXX11_DELETED_FUNCTIONS
 | 
			
		||||
#define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
 | 
			
		||||
#define BOOST_NO_CXX11_DECLTYPE_N3276
 | 
			
		||||
#define BOOST_NO_CXX11_DECLTYPE
 | 
			
		||||
#define BOOST_NO_CXX11_CONSTEXPR
 | 
			
		||||
#define BOOST_NO_CXX11_USER_DEFINED_LITERALS
 | 
			
		||||
#define BOOST_NO_COMPLETE_VALUE_INITIALIZATION
 | 
			
		||||
#define BOOST_NO_CXX11_CHAR32_T
 | 
			
		||||
#define BOOST_NO_CXX11_CHAR16_T
 | 
			
		||||
#define BOOST_NO_CXX11_REF_QUALIFIERS
 | 
			
		||||
#define BOOST_NO_CXX11_FINAL
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
//#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 
 | 
			
		||||
 | 
			
		||||
/* everything that follows is working around what are thought to be
 | 
			
		||||
 * compiler shortcomings.  Revist all of these regularly.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
//#define BOOST_USE_ENUM_STATIC_ASSERT
 | 
			
		||||
//#define BOOST_BUGGY_INTEGRAL_CONSTANT_EXPRESSIONS //(this may be implied by the previous #define
 | 
			
		||||
 | 
			
		||||
// These constants should be provided by the 
 | 
			
		||||
// compiler, at least when -hgnu is asserted on the command line.
 | 
			
		||||
 | 
			
		||||
#ifndef __ATOMIC_RELAXED
 | 
			
		||||
#define __ATOMIC_RELAXED 0
 | 
			
		||||
#define __ATOMIC_CONSUME 1
 | 
			
		||||
#define __ATOMIC_ACQUIRE 2
 | 
			
		||||
#define __ATOMIC_RELEASE 3
 | 
			
		||||
#define __ATOMIC_ACQ_REL 4
 | 
			
		||||
#define __ATOMIC_SEQ_CST 5
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										124
									
								
								boost/config/compiler/digitalmars.hpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										124
									
								
								boost/config/compiler/digitalmars.hpp
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,124 @@
 | 
			
		|||
//  Copyright (C) Christof Meerwald 2003
 | 
			
		||||
//  Copyright (C) Dan Watkins 2003
 | 
			
		||||
//
 | 
			
		||||
//  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)
 | 
			
		||||
 | 
			
		||||
//  Digital Mars C++ compiler setup:
 | 
			
		||||
#define BOOST_COMPILER __DMC_VERSION_STRING__
 | 
			
		||||
 | 
			
		||||
#define BOOST_HAS_LONG_LONG
 | 
			
		||||
#define BOOST_HAS_PRAGMA_ONCE
 | 
			
		||||
 | 
			
		||||
#if !defined(BOOST_STRICT_CONFIG)
 | 
			
		||||
#define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
 | 
			
		||||
#define BOOST_NO_OPERATORS_IN_NAMESPACE
 | 
			
		||||
#define BOOST_NO_UNREACHABLE_RETURN_DETECTION
 | 
			
		||||
#define BOOST_NO_SFINAE
 | 
			
		||||
#define BOOST_NO_USING_TEMPLATE
 | 
			
		||||
#define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
//
 | 
			
		||||
// has macros:
 | 
			
		||||
#define BOOST_HAS_DIRENT_H
 | 
			
		||||
#define BOOST_HAS_STDINT_H
 | 
			
		||||
#define BOOST_HAS_WINTHREADS
 | 
			
		||||
 | 
			
		||||
#if (__DMC__ >= 0x847)
 | 
			
		||||
#define BOOST_HAS_EXPM1
 | 
			
		||||
#define BOOST_HAS_LOG1P
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
//
 | 
			
		||||
// Is this really the best way to detect whether the std lib is in namespace std?
 | 
			
		||||
//
 | 
			
		||||
#ifdef __cplusplus
 | 
			
		||||
#include <cstddef>
 | 
			
		||||
#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
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
//
 | 
			
		||||
// C++0x features
 | 
			
		||||
//
 | 
			
		||||
#define BOOST_NO_CXX11_AUTO_DECLARATIONS
 | 
			
		||||
#define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
 | 
			
		||||
#define BOOST_NO_CXX11_CHAR16_T
 | 
			
		||||
#define BOOST_NO_CXX11_CHAR32_T
 | 
			
		||||
#define BOOST_NO_CXX11_CONSTEXPR
 | 
			
		||||
#define BOOST_NO_CXX11_DECLTYPE
 | 
			
		||||
#define BOOST_NO_CXX11_DECLTYPE_N3276
 | 
			
		||||
#define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
 | 
			
		||||
#define BOOST_NO_CXX11_DELETED_FUNCTIONS
 | 
			
		||||
#define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
 | 
			
		||||
#define BOOST_NO_CXX11_EXTERN_TEMPLATE
 | 
			
		||||
#define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
 | 
			
		||||
#define BOOST_NO_CXX11_LAMBDAS
 | 
			
		||||
#define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
 | 
			
		||||
#define BOOST_NO_CXX11_NOEXCEPT
 | 
			
		||||
#define BOOST_NO_CXX11_NULLPTR
 | 
			
		||||
#define BOOST_NO_CXX11_RANGE_BASED_FOR
 | 
			
		||||
#define BOOST_NO_CXX11_RAW_LITERALS
 | 
			
		||||
#define BOOST_NO_CXX11_RVALUE_REFERENCES
 | 
			
		||||
#define BOOST_NO_CXX11_SCOPED_ENUMS
 | 
			
		||||
#define BOOST_NO_SFINAE_EXPR
 | 
			
		||||
#define BOOST_NO_CXX11_STATIC_ASSERT
 | 
			
		||||
#define BOOST_NO_CXX11_TEMPLATE_ALIASES
 | 
			
		||||
#define BOOST_NO_CXX11_UNICODE_LITERALS
 | 
			
		||||
#define BOOST_NO_CXX11_VARIADIC_TEMPLATES
 | 
			
		||||
#define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
 | 
			
		||||
#define BOOST_NO_CXX11_USER_DEFINED_LITERALS
 | 
			
		||||
#define BOOST_NO_CXX11_ALIGNAS
 | 
			
		||||
#define BOOST_NO_CXX11_TRAILING_RESULT_TYPES
 | 
			
		||||
#define BOOST_NO_CXX11_INLINE_NAMESPACES
 | 
			
		||||
#define BOOST_NO_CXX11_REF_QUALIFIERS
 | 
			
		||||
#define BOOST_NO_CXX11_FINAL
 | 
			
		||||
 | 
			
		||||
// C++ 14:
 | 
			
		||||
#if !defined(__cpp_aggregate_nsdmi) || (__cpp_aggregate_nsdmi < 201304)
 | 
			
		||||
#  define BOOST_NO_CXX14_AGGREGATE_NSDMI
 | 
			
		||||
#endif
 | 
			
		||||
#if !defined(__cpp_binary_literals) || (__cpp_binary_literals < 201304)
 | 
			
		||||
#  define BOOST_NO_CXX14_BINARY_LITERALS
 | 
			
		||||
#endif
 | 
			
		||||
#if !defined(__cpp_constexpr) || (__cpp_constexpr < 201304)
 | 
			
		||||
#  define BOOST_NO_CXX14_CONSTEXPR
 | 
			
		||||
#endif
 | 
			
		||||
#if !defined(__cpp_decltype_auto) || (__cpp_decltype_auto < 201304)
 | 
			
		||||
#  define BOOST_NO_CXX14_DECLTYPE_AUTO
 | 
			
		||||
#endif
 | 
			
		||||
#if (__cplusplus < 201304) // There's no SD6 check for this....
 | 
			
		||||
#  define BOOST_NO_CXX14_DIGIT_SEPARATORS
 | 
			
		||||
#endif
 | 
			
		||||
#if !defined(__cpp_generic_lambdas) || (__cpp_generic_lambdas < 201304)
 | 
			
		||||
#  define BOOST_NO_CXX14_GENERIC_LAMBDAS
 | 
			
		||||
#endif
 | 
			
		||||
#if !defined(__cpp_init_captures) || (__cpp_init_captures < 201304)
 | 
			
		||||
#  define BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES
 | 
			
		||||
#endif
 | 
			
		||||
#if !defined(__cpp_return_type_deduction) || (__cpp_return_type_deduction < 201304)
 | 
			
		||||
#  define BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION
 | 
			
		||||
#endif
 | 
			
		||||
#if !defined(__cpp_variable_templates) || (__cpp_variable_templates < 201304)
 | 
			
		||||
#  define BOOST_NO_CXX14_VARIABLE_TEMPLATES
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if (__DMC__ <= 0x840)
 | 
			
		||||
#error "Compiler not supported or configured - please reconfigure"
 | 
			
		||||
#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
 | 
			
		||||
							
								
								
									
										296
									
								
								boost/config/compiler/gcc.hpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										296
									
								
								boost/config/compiler/gcc.hpp
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,296 @@
 | 
			
		|||
//  (C) Copyright John Maddock 2001 - 2003.
 | 
			
		||||
//  (C) Copyright Darin Adler 2001 - 2002.
 | 
			
		||||
//  (C) Copyright Jens Maurer 2001 - 2002.
 | 
			
		||||
//  (C) Copyright Beman Dawes 2001 - 2003.
 | 
			
		||||
//  (C) Copyright Douglas Gregor 2002.
 | 
			
		||||
//  (C) Copyright David Abrahams 2002 - 2003.
 | 
			
		||||
//  (C) Copyright Synge Todo 2003.
 | 
			
		||||
//  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.
 | 
			
		||||
 | 
			
		||||
//  GNU C++ compiler setup.
 | 
			
		||||
 | 
			
		||||
//
 | 
			
		||||
// Define BOOST_GCC so we know this is "real" GCC and not some pretender:
 | 
			
		||||
//
 | 
			
		||||
#define BOOST_GCC_VERSION (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__)
 | 
			
		||||
#if !defined(__CUDACC__)
 | 
			
		||||
#define BOOST_GCC BOOST_GCC_VERSION
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if defined(__GXX_EXPERIMENTAL_CXX0X__) || (__cplusplus >= 201103L)
 | 
			
		||||
#  define BOOST_GCC_CXX11
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if __GNUC__ == 3
 | 
			
		||||
#  if defined (__PATHSCALE__)
 | 
			
		||||
#     define BOOST_NO_TWO_PHASE_NAME_LOOKUP
 | 
			
		||||
#     define BOOST_NO_IS_ABSTRACT
 | 
			
		||||
#  endif
 | 
			
		||||
 | 
			
		||||
#  if __GNUC_MINOR__ < 4
 | 
			
		||||
#     define BOOST_NO_IS_ABSTRACT
 | 
			
		||||
#  endif
 | 
			
		||||
#  define BOOST_NO_CXX11_EXTERN_TEMPLATE
 | 
			
		||||
#endif
 | 
			
		||||
#if __GNUC__ < 4
 | 
			
		||||
//
 | 
			
		||||
// All problems to gcc-3.x and earlier here:
 | 
			
		||||
//
 | 
			
		||||
#define BOOST_NO_TWO_PHASE_NAME_LOOKUP
 | 
			
		||||
#  ifdef __OPEN64__
 | 
			
		||||
#     define BOOST_NO_IS_ABSTRACT
 | 
			
		||||
#  endif
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
// GCC prior to 3.4 had #pragma once too but it didn't work well with filesystem links
 | 
			
		||||
#if BOOST_GCC_VERSION >= 30400
 | 
			
		||||
#define BOOST_HAS_PRAGMA_ONCE
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if BOOST_GCC_VERSION < 40400
 | 
			
		||||
// Previous versions of GCC did not completely implement value-initialization:
 | 
			
		||||
// GCC Bug 30111, "Value-initialization of POD base class doesn't initialize
 | 
			
		||||
// members", reported by Jonathan Wakely in 2006,
 | 
			
		||||
// 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",
 | 
			
		||||
// reported by Michael Elizabeth Chastain in 2007,
 | 
			
		||||
// 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
 | 
			
		||||
#define BOOST_NO_COMPLETE_VALUE_INITIALIZATION
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if !defined(__EXCEPTIONS) && !defined(BOOST_NO_EXCEPTIONS)
 | 
			
		||||
# define BOOST_NO_EXCEPTIONS
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
//
 | 
			
		||||
// Threading support: Turn this on unconditionally here (except for
 | 
			
		||||
// those platforms where we can know for sure). It will get turned off again
 | 
			
		||||
// later if no threading API is detected.
 | 
			
		||||
//
 | 
			
		||||
#if !defined(__MINGW32__) && !defined(linux) && !defined(__linux) && !defined(__linux__)
 | 
			
		||||
# define BOOST_HAS_THREADS
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
//
 | 
			
		||||
// gcc has "long long"
 | 
			
		||||
// Except on Darwin with standard compliance enabled (-pedantic)
 | 
			
		||||
// Apple gcc helpfully defines this macro we can query
 | 
			
		||||
//
 | 
			
		||||
#if !defined(__DARWIN_NO_LONG_LONG)
 | 
			
		||||
# define BOOST_HAS_LONG_LONG
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
//
 | 
			
		||||
// gcc implements the named return value optimization since version 3.1
 | 
			
		||||
//
 | 
			
		||||
#define BOOST_HAS_NRVO
 | 
			
		||||
 | 
			
		||||
// Branch prediction hints
 | 
			
		||||
#define BOOST_LIKELY(x) __builtin_expect(x, 1)
 | 
			
		||||
#define BOOST_UNLIKELY(x) __builtin_expect(x, 0)
 | 
			
		||||
 | 
			
		||||
//
 | 
			
		||||
// Dynamic shared object (DSO) and dynamic-link library (DLL) support
 | 
			
		||||
//
 | 
			
		||||
#if __GNUC__ >= 4
 | 
			
		||||
#  if (defined(_WIN32) || defined(__WIN32__) || defined(WIN32)) && !defined(__CYGWIN__)
 | 
			
		||||
     // 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,
 | 
			
		||||
     // so does not define _WIN32 or its variants.
 | 
			
		||||
#    define BOOST_HAS_DECLSPEC
 | 
			
		||||
#    define BOOST_SYMBOL_EXPORT __attribute__((__dllexport__))
 | 
			
		||||
#    define BOOST_SYMBOL_IMPORT __attribute__((__dllimport__))
 | 
			
		||||
#  else
 | 
			
		||||
#    define BOOST_SYMBOL_EXPORT __attribute__((__visibility__("default")))
 | 
			
		||||
#    define BOOST_SYMBOL_IMPORT
 | 
			
		||||
#  endif
 | 
			
		||||
#  define BOOST_SYMBOL_VISIBLE __attribute__((__visibility__("default")))
 | 
			
		||||
#else
 | 
			
		||||
// config/platform/win32.hpp will define BOOST_SYMBOL_EXPORT, etc., unless already defined
 | 
			
		||||
#  define BOOST_SYMBOL_EXPORT
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
//
 | 
			
		||||
// RTTI and typeinfo detection is possible post gcc-4.3:
 | 
			
		||||
//
 | 
			
		||||
#if BOOST_GCC_VERSION > 40300
 | 
			
		||||
#  ifndef __GXX_RTTI
 | 
			
		||||
#     ifndef BOOST_NO_TYPEID
 | 
			
		||||
#        define BOOST_NO_TYPEID
 | 
			
		||||
#     endif
 | 
			
		||||
#     ifndef BOOST_NO_RTTI
 | 
			
		||||
#        define BOOST_NO_RTTI
 | 
			
		||||
#     endif
 | 
			
		||||
#  endif
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
//
 | 
			
		||||
// Recent GCC versions have __int128 when in 64-bit mode.
 | 
			
		||||
//
 | 
			
		||||
// We disable this if the compiler is really nvcc as it
 | 
			
		||||
// doesn't actually support __int128 as of CUDA_VERSION=5000
 | 
			
		||||
// even though it defines __SIZEOF_INT128__.
 | 
			
		||||
// See https://svn.boost.org/trac/boost/ticket/8048
 | 
			
		||||
// Only re-enable this for nvcc if you're absolutely sure
 | 
			
		||||
// of the circumstances under which it's supported:
 | 
			
		||||
//
 | 
			
		||||
#if defined(__SIZEOF_INT128__) && !defined(__CUDACC__)
 | 
			
		||||
#  define BOOST_HAS_INT128
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
// C++0x features in 4.3.n and later
 | 
			
		||||
//
 | 
			
		||||
#if (BOOST_GCC_VERSION >= 40300) && defined(BOOST_GCC_CXX11)
 | 
			
		||||
// C++0x features are only enabled when -std=c++0x or -std=gnu++0x are
 | 
			
		||||
// passed on the command line, which in turn defines
 | 
			
		||||
// __GXX_EXPERIMENTAL_CXX0X__.
 | 
			
		||||
#  define BOOST_HAS_DECLTYPE
 | 
			
		||||
#  define BOOST_HAS_RVALUE_REFS
 | 
			
		||||
#  define BOOST_HAS_STATIC_ASSERT
 | 
			
		||||
#  define BOOST_HAS_VARIADIC_TMPL
 | 
			
		||||
#else
 | 
			
		||||
#  define BOOST_NO_CXX11_DECLTYPE
 | 
			
		||||
#  define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
 | 
			
		||||
#  define BOOST_NO_CXX11_RVALUE_REFERENCES
 | 
			
		||||
#  define BOOST_NO_CXX11_STATIC_ASSERT
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
// C++0x features in 4.4.n and later
 | 
			
		||||
//
 | 
			
		||||
#if (BOOST_GCC_VERSION < 40400) || !defined(BOOST_GCC_CXX11)
 | 
			
		||||
#  define BOOST_NO_CXX11_AUTO_DECLARATIONS
 | 
			
		||||
#  define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
 | 
			
		||||
#  define BOOST_NO_CXX11_CHAR16_T
 | 
			
		||||
#  define BOOST_NO_CXX11_CHAR32_T
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
 | 
			
		||||
#  define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
 | 
			
		||||
#  define BOOST_NO_CXX11_DELETED_FUNCTIONS
 | 
			
		||||
#  define BOOST_NO_CXX11_TRAILING_RESULT_TYPES
 | 
			
		||||
#  define BOOST_NO_CXX11_INLINE_NAMESPACES
 | 
			
		||||
#  define BOOST_NO_CXX11_VARIADIC_TEMPLATES
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if BOOST_GCC_VERSION < 40500
 | 
			
		||||
#  define BOOST_NO_SFINAE_EXPR
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
// GCC 4.5 forbids declaration of defaulted functions in private or protected sections
 | 
			
		||||
#if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ == 5) || !defined(BOOST_GCC_CXX11)
 | 
			
		||||
#  define BOOST_NO_CXX11_NON_PUBLIC_DEFAULTED_FUNCTIONS
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
// C++0x features in 4.5.0 and later
 | 
			
		||||
//
 | 
			
		||||
#if (BOOST_GCC_VERSION < 40500) || !defined(BOOST_GCC_CXX11)
 | 
			
		||||
#  define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
 | 
			
		||||
#  define BOOST_NO_CXX11_LAMBDAS
 | 
			
		||||
#  define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
 | 
			
		||||
#  define BOOST_NO_CXX11_RAW_LITERALS
 | 
			
		||||
#  define BOOST_NO_CXX11_UNICODE_LITERALS
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
// C++0x features in 4.5.1 and later
 | 
			
		||||
//
 | 
			
		||||
#if (BOOST_GCC_VERSION < 40501) || !defined(BOOST_GCC_CXX11)
 | 
			
		||||
// scoped enums have a serious bug in 4.4.0, so define BOOST_NO_CXX11_SCOPED_ENUMS before 4.5.1
 | 
			
		||||
// See http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38064
 | 
			
		||||
#  define BOOST_NO_CXX11_SCOPED_ENUMS
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
// C++0x features in 4.6.n and later
 | 
			
		||||
//
 | 
			
		||||
#if (BOOST_GCC_VERSION < 40600) || !defined(BOOST_GCC_CXX11)
 | 
			
		||||
#define BOOST_NO_CXX11_CONSTEXPR
 | 
			
		||||
#define BOOST_NO_CXX11_NOEXCEPT
 | 
			
		||||
#define BOOST_NO_CXX11_NULLPTR
 | 
			
		||||
#define BOOST_NO_CXX11_RANGE_BASED_FOR
 | 
			
		||||
#define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
// C++0x features in 4.7.n and later
 | 
			
		||||
//
 | 
			
		||||
#if (BOOST_GCC_VERSION < 40700) || !defined(BOOST_GCC_CXX11)
 | 
			
		||||
#  define BOOST_NO_CXX11_FINAL
 | 
			
		||||
#  define BOOST_NO_CXX11_TEMPLATE_ALIASES
 | 
			
		||||
#  define BOOST_NO_CXX11_USER_DEFINED_LITERALS
 | 
			
		||||
#  define BOOST_NO_CXX11_FIXED_LENGTH_VARIADIC_TEMPLATE_EXPANSION_PACKS
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
// C++0x features in 4.8.n and later
 | 
			
		||||
//
 | 
			
		||||
#if (BOOST_GCC_VERSION < 40800) || !defined(BOOST_GCC_CXX11)
 | 
			
		||||
#  define BOOST_NO_CXX11_ALIGNAS
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
// C++0x features in 4.8.1 and later
 | 
			
		||||
//
 | 
			
		||||
#if (BOOST_GCC_VERSION < 40801) || !defined(BOOST_GCC_CXX11)
 | 
			
		||||
#  define BOOST_NO_CXX11_DECLTYPE_N3276
 | 
			
		||||
#  define BOOST_NO_CXX11_REF_QUALIFIERS
 | 
			
		||||
#  define BOOST_NO_CXX14_BINARY_LITERALS
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
// C++14 features in 4.9.0 and later
 | 
			
		||||
//
 | 
			
		||||
#if (BOOST_GCC_VERSION < 40900) || (__cplusplus < 201300)
 | 
			
		||||
#  define BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION
 | 
			
		||||
#  define BOOST_NO_CXX14_GENERIC_LAMBDAS
 | 
			
		||||
#  define BOOST_NO_CXX14_DIGIT_SEPARATORS
 | 
			
		||||
#  define BOOST_NO_CXX14_DECLTYPE_AUTO
 | 
			
		||||
#  if !((BOOST_GCC_VERSION >= 40801) && (BOOST_GCC_VERSION < 40900) && defined(BOOST_GCC_CXX11))
 | 
			
		||||
#     define BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES
 | 
			
		||||
#  endif
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
// C++ 14:
 | 
			
		||||
#if !defined(__cpp_aggregate_nsdmi) || (__cpp_aggregate_nsdmi < 201304)
 | 
			
		||||
#  define BOOST_NO_CXX14_AGGREGATE_NSDMI
 | 
			
		||||
#endif
 | 
			
		||||
#if !defined(__cpp_constexpr) || (__cpp_constexpr < 201304)
 | 
			
		||||
#  define BOOST_NO_CXX14_CONSTEXPR
 | 
			
		||||
#endif
 | 
			
		||||
#if !defined(__cpp_variable_templates) || (__cpp_variable_templates < 201304)
 | 
			
		||||
#  define BOOST_NO_CXX14_VARIABLE_TEMPLATES
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
//
 | 
			
		||||
// Unused attribute:
 | 
			
		||||
#if __GNUC__ >= 4
 | 
			
		||||
#  define BOOST_ATTRIBUTE_UNUSED __attribute__((unused))
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#ifndef BOOST_COMPILER
 | 
			
		||||
#  define BOOST_COMPILER "GNU C++ version " __VERSION__
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
// ConceptGCC compiler:
 | 
			
		||||
//   http://www.generic-programming.org/software/ConceptGCC/
 | 
			
		||||
#ifdef __GXX_CONCEPTS__
 | 
			
		||||
#  define BOOST_HAS_CONCEPTS
 | 
			
		||||
#  define BOOST_COMPILER "ConceptGCC version " __VERSION__
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
// versions check:
 | 
			
		||||
// we don't know gcc prior to version 3.30:
 | 
			
		||||
#if (BOOST_GCC_VERSION< 30300)
 | 
			
		||||
#  error "Compiler not configured - please reconfigure"
 | 
			
		||||
#endif
 | 
			
		||||
//
 | 
			
		||||
// last known and checked version is 4.9:
 | 
			
		||||
#if (BOOST_GCC_VERSION > 40900)
 | 
			
		||||
#  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
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										95
									
								
								boost/config/compiler/gcc_xml.hpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										95
									
								
								boost/config/compiler/gcc_xml.hpp
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,95 @@
 | 
			
		|||
//  (C) Copyright John Maddock 2006.
 | 
			
		||||
//  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.
 | 
			
		||||
 | 
			
		||||
//  GCC-XML C++ compiler setup:
 | 
			
		||||
 | 
			
		||||
#  if !defined(__GCCXML_GNUC__) || ((__GCCXML_GNUC__ <= 3) && (__GCCXML_GNUC_MINOR__ <= 3))
 | 
			
		||||
#     define BOOST_NO_IS_ABSTRACT
 | 
			
		||||
#  endif
 | 
			
		||||
 | 
			
		||||
//
 | 
			
		||||
// Threading support: Turn this on unconditionally here (except for
 | 
			
		||||
// those platforms where we can know for sure). It will get turned off again
 | 
			
		||||
// later if no threading API is detected.
 | 
			
		||||
//
 | 
			
		||||
#if !defined(__MINGW32__) && !defined(_MSC_VER) && !defined(linux) && !defined(__linux) && !defined(__linux__)
 | 
			
		||||
# define BOOST_HAS_THREADS
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
//
 | 
			
		||||
// gcc has "long long"
 | 
			
		||||
//
 | 
			
		||||
#define BOOST_HAS_LONG_LONG
 | 
			
		||||
 | 
			
		||||
// C++0x features:
 | 
			
		||||
//
 | 
			
		||||
#  define BOOST_NO_CXX11_CONSTEXPR
 | 
			
		||||
#  define BOOST_NO_CXX11_NULLPTR
 | 
			
		||||
#  define BOOST_NO_CXX11_TEMPLATE_ALIASES
 | 
			
		||||
#  define BOOST_NO_CXX11_DECLTYPE
 | 
			
		||||
#  define BOOST_NO_CXX11_DECLTYPE_N3276
 | 
			
		||||
#  define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
 | 
			
		||||
#  define BOOST_NO_CXX11_RVALUE_REFERENCES
 | 
			
		||||
#  define BOOST_NO_CXX11_STATIC_ASSERT
 | 
			
		||||
#  define BOOST_NO_CXX11_VARIADIC_TEMPLATES
 | 
			
		||||
#  define BOOST_NO_CXX11_VARIADIC_MACROS
 | 
			
		||||
#  define BOOST_NO_CXX11_AUTO_DECLARATIONS
 | 
			
		||||
#  define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
 | 
			
		||||
#  define BOOST_NO_CXX11_CHAR16_T
 | 
			
		||||
#  define BOOST_NO_CXX11_CHAR32_T
 | 
			
		||||
#  define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
 | 
			
		||||
#  define BOOST_NO_CXX11_DELETED_FUNCTIONS
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
 | 
			
		||||
#  define BOOST_NO_CXX11_SCOPED_ENUMS
 | 
			
		||||
#  define BOOST_NO_SFINAE_EXPR
 | 
			
		||||
#  define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
 | 
			
		||||
#  define BOOST_NO_CXX11_LAMBDAS
 | 
			
		||||
#  define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
 | 
			
		||||
#  define BOOST_NO_CXX11_RANGE_BASED_FOR
 | 
			
		||||
#  define BOOST_NO_CXX11_RAW_LITERALS
 | 
			
		||||
#  define BOOST_NO_CXX11_UNICODE_LITERALS
 | 
			
		||||
#  define BOOST_NO_CXX11_NOEXCEPT
 | 
			
		||||
#  define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
 | 
			
		||||
#  define BOOST_NO_CXX11_USER_DEFINED_LITERALS
 | 
			
		||||
#  define BOOST_NO_CXX11_ALIGNAS
 | 
			
		||||
#  define BOOST_NO_CXX11_TRAILING_RESULT_TYPES
 | 
			
		||||
#  define BOOST_NO_CXX11_INLINE_NAMESPACES
 | 
			
		||||
#  define BOOST_NO_CXX11_REF_QUALIFIERS
 | 
			
		||||
#define BOOST_NO_CXX11_FINAL
 | 
			
		||||
 | 
			
		||||
// C++ 14:
 | 
			
		||||
#if !defined(__cpp_aggregate_nsdmi) || (__cpp_aggregate_nsdmi < 201304)
 | 
			
		||||
#  define BOOST_NO_CXX14_AGGREGATE_NSDMI
 | 
			
		||||
#endif
 | 
			
		||||
#if !defined(__cpp_binary_literals) || (__cpp_binary_literals < 201304)
 | 
			
		||||
#  define BOOST_NO_CXX14_BINARY_LITERALS
 | 
			
		||||
#endif
 | 
			
		||||
#if !defined(__cpp_constexpr) || (__cpp_constexpr < 201304)
 | 
			
		||||
#  define BOOST_NO_CXX14_CONSTEXPR
 | 
			
		||||
#endif
 | 
			
		||||
#if !defined(__cpp_decltype_auto) || (__cpp_decltype_auto < 201304)
 | 
			
		||||
#  define BOOST_NO_CXX14_DECLTYPE_AUTO
 | 
			
		||||
#endif
 | 
			
		||||
#if (__cplusplus < 201304) // There's no SD6 check for this....
 | 
			
		||||
#  define BOOST_NO_CXX14_DIGIT_SEPARATORS
 | 
			
		||||
#endif
 | 
			
		||||
#if !defined(__cpp_generic_lambdas) || (__cpp_generic_lambdas < 201304)
 | 
			
		||||
#  define BOOST_NO_CXX14_GENERIC_LAMBDAS
 | 
			
		||||
#endif
 | 
			
		||||
#if !defined(__cpp_init_captures) || (__cpp_init_captures < 201304)
 | 
			
		||||
#  define BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES
 | 
			
		||||
#endif
 | 
			
		||||
#if !defined(__cpp_return_type_deduction) || (__cpp_return_type_deduction < 201304)
 | 
			
		||||
#  define BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION
 | 
			
		||||
#endif
 | 
			
		||||
#if !defined(__cpp_variable_templates) || (__cpp_variable_templates < 201304)
 | 
			
		||||
#  define BOOST_NO_CXX14_VARIABLE_TEMPLATES
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#define BOOST_COMPILER "GCC-XML C++ version " __GCCXML__
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										28
									
								
								boost/config/compiler/greenhills.hpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										28
									
								
								boost/config/compiler/greenhills.hpp
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,28 @@
 | 
			
		|||
//  (C) Copyright John Maddock 2001. 
 | 
			
		||||
//  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 "Greenhills C++ version " BOOST_STRINGIZE(__ghs)
 | 
			
		||||
 | 
			
		||||
#include "boost/config/compiler/common_edg.hpp"
 | 
			
		||||
 | 
			
		||||
//
 | 
			
		||||
// versions check:
 | 
			
		||||
// we don't support Greenhills prior to version 0:
 | 
			
		||||
#if __ghs < 0
 | 
			
		||||
#  error "Compiler not supported or configured - please reconfigure"
 | 
			
		||||
#endif
 | 
			
		||||
//
 | 
			
		||||
// last known and checked version is 0:
 | 
			
		||||
#if (__ghs > 0)
 | 
			
		||||
#  if defined(BOOST_ASSERT_CONFIG)
 | 
			
		||||
#     error "Unknown compiler version - please run the configure tests and report the results"
 | 
			
		||||
#  endif
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										145
									
								
								boost/config/compiler/hp_acc.hpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										145
									
								
								boost/config/compiler/hp_acc.hpp
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,145 @@
 | 
			
		|||
//  (C) Copyright John Maddock 2001 - 2003.
 | 
			
		||||
//  (C) Copyright Jens Maurer 2001 - 2003.
 | 
			
		||||
//  (C) Copyright Aleksey Gurtovoy 2002.
 | 
			
		||||
//  (C) Copyright David Abrahams 2002 - 2003.
 | 
			
		||||
//  (C) Copyright Toon Knapen 2003.
 | 
			
		||||
//  (C) Copyright Boris Gubenko 2006 - 2007.
 | 
			
		||||
//  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.
 | 
			
		||||
 | 
			
		||||
//  HP aCC C++ compiler setup:
 | 
			
		||||
 | 
			
		||||
#if defined(__EDG__)
 | 
			
		||||
#include "boost/config/compiler/common_edg.hpp"
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if (__HP_aCC <= 33100)
 | 
			
		||||
#    define BOOST_NO_INTEGRAL_INT64_T
 | 
			
		||||
#    define BOOST_NO_OPERATORS_IN_NAMESPACE
 | 
			
		||||
#  if !defined(_NAMESPACE_STD)
 | 
			
		||||
#     define BOOST_NO_STD_LOCALE
 | 
			
		||||
#     define BOOST_NO_STRINGSTREAM
 | 
			
		||||
#  endif
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if (__HP_aCC <= 33300)
 | 
			
		||||
// member templates are sufficiently broken that we disable them for now
 | 
			
		||||
#    define BOOST_NO_MEMBER_TEMPLATES
 | 
			
		||||
#    define BOOST_NO_DEPENDENT_NESTED_DERIVATIONS
 | 
			
		||||
#    define BOOST_NO_USING_DECLARATION_OVERLOADS_FROM_TYPENAME_BASE
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if (__HP_aCC <= 38000)
 | 
			
		||||
#  define BOOST_NO_TWO_PHASE_NAME_LOOKUP
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if (__HP_aCC > 50000) && (__HP_aCC < 60000)
 | 
			
		||||
#    define BOOST_NO_UNREACHABLE_RETURN_DETECTION
 | 
			
		||||
#    define BOOST_NO_TEMPLATE_TEMPLATES
 | 
			
		||||
#    define BOOST_NO_SWPRINTF
 | 
			
		||||
#    define BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS
 | 
			
		||||
#    define BOOST_NO_IS_ABSTRACT
 | 
			
		||||
#    define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
// optional features rather than defects:
 | 
			
		||||
#if (__HP_aCC >= 33900)
 | 
			
		||||
#    define BOOST_HAS_LONG_LONG
 | 
			
		||||
#    define BOOST_HAS_PARTIAL_STD_ALLOCATOR
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if (__HP_aCC >= 50000 ) && (__HP_aCC <= 53800 ) || (__HP_aCC < 31300 )
 | 
			
		||||
#    define BOOST_NO_MEMBER_TEMPLATE_KEYWORD
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
// This macro should not be defined when compiling in strict ansi
 | 
			
		||||
// mode, but, currently, we don't have the ability to determine
 | 
			
		||||
// what standard mode we are compiling with. Some future version
 | 
			
		||||
// of aCC6 compiler will provide predefined macros reflecting the
 | 
			
		||||
// compilation options, including the standard mode.
 | 
			
		||||
#if (__HP_aCC >= 60000) || ((__HP_aCC > 38000) && defined(__hpxstd98))
 | 
			
		||||
#    define BOOST_NO_TWO_PHASE_NAME_LOOKUP
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#define BOOST_COMPILER "HP aCC version " BOOST_STRINGIZE(__HP_aCC)
 | 
			
		||||
 | 
			
		||||
//
 | 
			
		||||
// versions check:
 | 
			
		||||
// we don't support HP aCC prior to version 33000:
 | 
			
		||||
#if __HP_aCC < 33000
 | 
			
		||||
#  error "Compiler not supported or configured - please reconfigure"
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
//
 | 
			
		||||
// Extended checks for supporting aCC on PA-RISC
 | 
			
		||||
#if __HP_aCC > 30000 && __HP_aCC < 50000
 | 
			
		||||
#  if __HP_aCC < 38000
 | 
			
		||||
      // versions prior to version A.03.80 not supported
 | 
			
		||||
#     error "Compiler version not supported - version A.03.80 or higher is required"
 | 
			
		||||
#  elif !defined(__hpxstd98)
 | 
			
		||||
      // must compile using the option +hpxstd98 with version A.03.80 and above
 | 
			
		||||
#     error "Compiler option '+hpxstd98' is required for proper support"
 | 
			
		||||
#  endif //PA-RISC
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
//
 | 
			
		||||
// C++0x features
 | 
			
		||||
//
 | 
			
		||||
//   See boost\config\suffix.hpp for BOOST_NO_LONG_LONG
 | 
			
		||||
//
 | 
			
		||||
#if !defined(__EDG__)
 | 
			
		||||
 | 
			
		||||
#define BOOST_NO_CXX11_AUTO_DECLARATIONS
 | 
			
		||||
#define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
 | 
			
		||||
#define BOOST_NO_CXX11_CHAR16_T
 | 
			
		||||
#define BOOST_NO_CXX11_CHAR32_T
 | 
			
		||||
#define BOOST_NO_CXX11_CONSTEXPR
 | 
			
		||||
#define BOOST_NO_CXX11_DECLTYPE
 | 
			
		||||
#define BOOST_NO_CXX11_DECLTYPE_N3276
 | 
			
		||||
#define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
 | 
			
		||||
#define BOOST_NO_CXX11_DELETED_FUNCTIONS
 | 
			
		||||
#define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
 | 
			
		||||
#define BOOST_NO_CXX11_EXTERN_TEMPLATE
 | 
			
		||||
#define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
 | 
			
		||||
#define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
 | 
			
		||||
#define BOOST_NO_CXX11_LAMBDAS
 | 
			
		||||
#define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
 | 
			
		||||
#define BOOST_NO_CXX11_NOEXCEPT
 | 
			
		||||
#define BOOST_NO_CXX11_NULLPTR
 | 
			
		||||
#define BOOST_NO_CXX11_RANGE_BASED_FOR
 | 
			
		||||
#define BOOST_NO_CXX11_RAW_LITERALS
 | 
			
		||||
#define BOOST_NO_CXX11_RVALUE_REFERENCES
 | 
			
		||||
#define BOOST_NO_CXX11_SCOPED_ENUMS
 | 
			
		||||
#define BOOST_NO_SFINAE_EXPR
 | 
			
		||||
#define BOOST_NO_CXX11_STATIC_ASSERT
 | 
			
		||||
#define BOOST_NO_CXX11_TEMPLATE_ALIASES
 | 
			
		||||
#define BOOST_NO_CXX11_UNICODE_LITERALS
 | 
			
		||||
#define BOOST_NO_CXX11_VARIADIC_TEMPLATES
 | 
			
		||||
#define BOOST_NO_CXX11_USER_DEFINED_LITERALS
 | 
			
		||||
#define BOOST_NO_CXX11_ALIGNAS
 | 
			
		||||
#define BOOST_NO_CXX11_TRAILING_RESULT_TYPES
 | 
			
		||||
#define BOOST_NO_CXX11_INLINE_NAMESPACES
 | 
			
		||||
#define BOOST_NO_CXX11_REF_QUALIFIERS
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
  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_CXX11_VARIADIC_MACROS
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
//
 | 
			
		||||
// last known and checked version for HP-UX/ia64 is 61300
 | 
			
		||||
// last known and checked version for PA-RISC is 38000
 | 
			
		||||
#if ((__HP_aCC > 61300) || ((__HP_aCC > 38000) && defined(__hpxstd98)))
 | 
			
		||||
#  if defined(BOOST_ASSERT_CONFIG)
 | 
			
		||||
#     error "Unknown compiler version - please run the configure tests and report the results"
 | 
			
		||||
#  endif
 | 
			
		||||
#endif
 | 
			
		||||
							
								
								
									
										458
									
								
								boost/config/compiler/intel.hpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										458
									
								
								boost/config/compiler/intel.hpp
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,458 @@
 | 
			
		|||
//  (C) Copyright John Maddock 2001-8.
 | 
			
		||||
//  (C) Copyright Peter Dimov 2001.
 | 
			
		||||
//  (C) Copyright Jens Maurer 2001.
 | 
			
		||||
//  (C) Copyright David Abrahams 2002 - 2003.
 | 
			
		||||
//  (C) Copyright Aleksey Gurtovoy 2002 - 2003.
 | 
			
		||||
//  (C) Copyright Guillaume Melquiond 2002 - 2003.
 | 
			
		||||
//  (C) Copyright Beman Dawes 2003.
 | 
			
		||||
//  (C) Copyright Martin Wille 2003.
 | 
			
		||||
//  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.
 | 
			
		||||
 | 
			
		||||
//  Intel compiler setup:
 | 
			
		||||
 | 
			
		||||
#include "boost/config/compiler/common_edg.hpp"
 | 
			
		||||
 | 
			
		||||
#if defined(__INTEL_COMPILER)
 | 
			
		||||
#if __INTEL_COMPILER == 9999
 | 
			
		||||
#  define BOOST_INTEL_CXX_VERSION 1200 // Intel bug in 12.1.
 | 
			
		||||
#else
 | 
			
		||||
#  define BOOST_INTEL_CXX_VERSION __INTEL_COMPILER
 | 
			
		||||
#endif
 | 
			
		||||
#elif defined(__ICL)
 | 
			
		||||
#  define BOOST_INTEL_CXX_VERSION __ICL
 | 
			
		||||
#elif defined(__ICC)
 | 
			
		||||
#  define BOOST_INTEL_CXX_VERSION __ICC
 | 
			
		||||
#elif defined(__ECC)
 | 
			
		||||
#  define BOOST_INTEL_CXX_VERSION __ECC
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
// Flags determined by comparing output of 'icpc -dM -E' with and without '-std=c++0x'
 | 
			
		||||
#if (!(defined(_WIN32) || defined(_WIN64)) && defined(__STDC_HOSTED__) && (__STDC_HOSTED__ && (BOOST_INTEL_CXX_VERSION <= 1200))) || defined(__GXX_EXPERIMENTAL_CPP0X__) || defined(__GXX_EXPERIMENTAL_CXX0X__)
 | 
			
		||||
#  define BOOST_INTEL_STDCXX0X
 | 
			
		||||
#endif
 | 
			
		||||
#if defined(_MSC_VER) && (_MSC_VER >= 1600)
 | 
			
		||||
#  define BOOST_INTEL_STDCXX0X
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#ifdef __GNUC__
 | 
			
		||||
#  define BOOST_INTEL_GCC_VERSION (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__)
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if !defined(BOOST_COMPILER)
 | 
			
		||||
#  if defined(BOOST_INTEL_STDCXX0X)
 | 
			
		||||
#    define BOOST_COMPILER "Intel C++ C++0x mode version " BOOST_STRINGIZE(BOOST_INTEL_CXX_VERSION)
 | 
			
		||||
#  else
 | 
			
		||||
#    define BOOST_COMPILER "Intel C++ version " BOOST_STRINGIZE(BOOST_INTEL_CXX_VERSION)
 | 
			
		||||
#  endif
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#define BOOST_INTEL BOOST_INTEL_CXX_VERSION
 | 
			
		||||
 | 
			
		||||
#if defined(_WIN32) || defined(_WIN64)
 | 
			
		||||
#  define BOOST_INTEL_WIN BOOST_INTEL
 | 
			
		||||
#else
 | 
			
		||||
#  define BOOST_INTEL_LINUX BOOST_INTEL
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if (BOOST_INTEL_CXX_VERSION <= 600)
 | 
			
		||||
 | 
			
		||||
#  if defined(_MSC_VER) && (_MSC_VER <= 1300) // added check for <= VC 7 (Peter Dimov)
 | 
			
		||||
 | 
			
		||||
// Boost libraries assume strong standard conformance unless otherwise
 | 
			
		||||
// indicated by a config macro. As configured by Intel, the EDG front-end
 | 
			
		||||
// requires certain compiler options be set to achieve that strong conformance.
 | 
			
		||||
// Particularly /Qoption,c,--arg_dep_lookup (reported by Kirk Klobe & Thomas Witt)
 | 
			
		||||
// and /Zc:wchar_t,forScope. See boost-root/tools/build/intel-win32-tools.jam for
 | 
			
		||||
// details as they apply to particular versions of the compiler. When the
 | 
			
		||||
// compiler does not predefine a macro indicating if an option has been set,
 | 
			
		||||
// this config file simply assumes the option has been set.
 | 
			
		||||
// Thus BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP will not be defined, even if
 | 
			
		||||
// the compiler option is not enabled.
 | 
			
		||||
 | 
			
		||||
#     define BOOST_NO_SWPRINTF
 | 
			
		||||
#  endif
 | 
			
		||||
 | 
			
		||||
// Void returns, 64 bit integrals don't work when emulating VC 6 (Peter Dimov)
 | 
			
		||||
 | 
			
		||||
#  if defined(_MSC_VER) && (_MSC_VER <= 1200)
 | 
			
		||||
#     define BOOST_NO_VOID_RETURNS
 | 
			
		||||
#     define BOOST_NO_INTEGRAL_INT64_T
 | 
			
		||||
#  endif
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if (BOOST_INTEL_CXX_VERSION <= 710) && defined(_WIN32)
 | 
			
		||||
#  define BOOST_NO_POINTER_TO_MEMBER_TEMPLATE_PARAMETERS
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
// See http://aspn.activestate.com/ASPN/Mail/Message/boost/1614864
 | 
			
		||||
#if BOOST_INTEL_CXX_VERSION < 600
 | 
			
		||||
#  define BOOST_NO_INTRINSIC_WCHAR_T
 | 
			
		||||
#else
 | 
			
		||||
// We should test the macro _WCHAR_T_DEFINED to check if the compiler
 | 
			
		||||
// 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
 | 
			
		||||
// 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
 | 
			
		||||
// or not.
 | 
			
		||||
// Under UNIX, the situation is exactly the same, but the macro _WCHAR_T
 | 
			
		||||
// is used instead.
 | 
			
		||||
#  if ((_WCHAR_T_DEFINED + 0) == 0) && ((_WCHAR_T + 0) == 0)
 | 
			
		||||
#    define BOOST_NO_INTRINSIC_WCHAR_T
 | 
			
		||||
#  endif
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if defined(__GNUC__) && !defined(BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL)
 | 
			
		||||
//
 | 
			
		||||
// Figure out when Intel is emulating this gcc bug
 | 
			
		||||
// (All Intel versions prior to 9.0.26, and versions
 | 
			
		||||
// later than that if they are set up to emulate gcc 3.2
 | 
			
		||||
// or earlier):
 | 
			
		||||
//
 | 
			
		||||
#  if ((__GNUC__ == 3) && (__GNUC_MINOR__ <= 2)) || (BOOST_INTEL < 900) || (__INTEL_COMPILER_BUILD_DATE < 20050912)
 | 
			
		||||
#     define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
 | 
			
		||||
#  endif
 | 
			
		||||
#endif
 | 
			
		||||
#if (defined(__GNUC__) && (__GNUC__ < 4)) || (defined(_WIN32) && (BOOST_INTEL_CXX_VERSION <= 1200)) || (BOOST_INTEL_CXX_VERSION <= 1200)
 | 
			
		||||
// GCC or VC emulation:
 | 
			
		||||
#define BOOST_NO_TWO_PHASE_NAME_LOOKUP
 | 
			
		||||
#endif
 | 
			
		||||
//
 | 
			
		||||
// Verify that we have actually got BOOST_NO_INTRINSIC_WCHAR_T
 | 
			
		||||
// set correctly, if we don't do this now, we will get errors later
 | 
			
		||||
// in type_traits code among other things, getting this correct
 | 
			
		||||
// for the Intel compiler is actually remarkably fragile and tricky:
 | 
			
		||||
//
 | 
			
		||||
#ifdef __cplusplus
 | 
			
		||||
#if defined(BOOST_NO_INTRINSIC_WCHAR_T)
 | 
			
		||||
#include <cwchar>
 | 
			
		||||
template< typename T > struct assert_no_intrinsic_wchar_t;
 | 
			
		||||
template<> struct assert_no_intrinsic_wchar_t<wchar_t> { typedef void type; };
 | 
			
		||||
// if you see an error here then you need to unset BOOST_NO_INTRINSIC_WCHAR_T
 | 
			
		||||
// where it is defined above:
 | 
			
		||||
typedef assert_no_intrinsic_wchar_t<unsigned short>::type assert_no_intrinsic_wchar_t_;
 | 
			
		||||
#else
 | 
			
		||||
template< typename T > struct assert_intrinsic_wchar_t;
 | 
			
		||||
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:
 | 
			
		||||
template<> struct assert_intrinsic_wchar_t<unsigned short> {};
 | 
			
		||||
#endif
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if defined(_MSC_VER) && (_MSC_VER+0 >= 1000)
 | 
			
		||||
#  if _MSC_VER >= 1200
 | 
			
		||||
#     define BOOST_HAS_MS_INT64
 | 
			
		||||
#  endif
 | 
			
		||||
#  define BOOST_NO_SWPRINTF
 | 
			
		||||
#  define BOOST_NO_TWO_PHASE_NAME_LOOKUP
 | 
			
		||||
#elif defined(_WIN32)
 | 
			
		||||
#  define BOOST_DISABLE_WIN32
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
// I checked version 6.0 build 020312Z, it implements the NRVO.
 | 
			
		||||
// Correct this as you find out which version of the compiler
 | 
			
		||||
// implemented the NRVO first.  (Daniel Frey)
 | 
			
		||||
#if (BOOST_INTEL_CXX_VERSION >= 600)
 | 
			
		||||
#  define BOOST_HAS_NRVO
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
// Branch prediction hints
 | 
			
		||||
// I'm not sure 8.0 was the first version to support these builtins,
 | 
			
		||||
// update the condition if the version is not accurate. (Andrey Semashev)
 | 
			
		||||
#if defined(__GNUC__) && BOOST_INTEL_CXX_VERSION >= 800
 | 
			
		||||
#define BOOST_LIKELY(x) __builtin_expect(x, 1)
 | 
			
		||||
#define BOOST_UNLIKELY(x) __builtin_expect(x, 0)
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
// RTTI
 | 
			
		||||
// __RTTI is the EDG macro
 | 
			
		||||
// __INTEL_RTTI__ is the Intel macro
 | 
			
		||||
// __GXX_RTTI is the g++ macro
 | 
			
		||||
// _CPPRTTI is the MSVC++ macro
 | 
			
		||||
#if !defined(__RTTI) && !defined(__INTEL_RTTI__) && !defined(__GXX_RTTI) && !defined(_CPPRTTI)
 | 
			
		||||
 | 
			
		||||
#if !defined(BOOST_NO_RTTI)
 | 
			
		||||
# define BOOST_NO_RTTI
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
// in MS mode, static typeid works even when RTTI is off
 | 
			
		||||
#if !defined(_MSC_VER) && !defined(BOOST_NO_TYPEID)
 | 
			
		||||
# define BOOST_NO_TYPEID
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
//
 | 
			
		||||
// versions check:
 | 
			
		||||
// we don't support Intel prior to version 6.0:
 | 
			
		||||
#if BOOST_INTEL_CXX_VERSION < 600
 | 
			
		||||
#  error "Compiler not supported or configured - please reconfigure"
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
// Intel on MacOS requires
 | 
			
		||||
#if defined(__APPLE__) && defined(__INTEL_COMPILER)
 | 
			
		||||
#  define BOOST_NO_TWO_PHASE_NAME_LOOKUP
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
// Intel on Altix Itanium
 | 
			
		||||
#if defined(__itanium__) && defined(__INTEL_COMPILER)
 | 
			
		||||
#  define BOOST_NO_TWO_PHASE_NAME_LOOKUP
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
//
 | 
			
		||||
// An attempt to value-initialize a pointer-to-member may trigger an
 | 
			
		||||
// internal error on Intel <= 11.1 (last checked version), as was
 | 
			
		||||
// reported by John Maddock, Intel support issue 589832, May 2010.
 | 
			
		||||
// Moreover, according to test results from Huang-Vista-x86_32_intel,
 | 
			
		||||
// intel-vc9-win-11.1 may leave a non-POD array uninitialized, in some
 | 
			
		||||
// cases when it should be value-initialized.
 | 
			
		||||
// (Niels Dekker, LKEB, May 2010)
 | 
			
		||||
// Apparently Intel 12.1 (compiler version number 9999 !!) has the same issue (compiler regression).
 | 
			
		||||
#if defined(__INTEL_COMPILER)
 | 
			
		||||
#  if (__INTEL_COMPILER <= 1110) || (__INTEL_COMPILER == 9999) || (defined(_WIN32) && (__INTEL_COMPILER < 1600))
 | 
			
		||||
#    define BOOST_NO_COMPLETE_VALUE_INITIALIZATION
 | 
			
		||||
#  endif
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
//
 | 
			
		||||
// Dynamic shared object (DSO) and dynamic-link library (DLL) support
 | 
			
		||||
//
 | 
			
		||||
#if defined(__GNUC__) && (__GNUC__ >= 4)
 | 
			
		||||
#  define BOOST_SYMBOL_EXPORT __attribute__((visibility("default")))
 | 
			
		||||
#  define BOOST_SYMBOL_IMPORT
 | 
			
		||||
#  define BOOST_SYMBOL_VISIBLE __attribute__((visibility("default")))
 | 
			
		||||
#endif
 | 
			
		||||
//
 | 
			
		||||
// C++0x features
 | 
			
		||||
// For each feature we need to check both the Intel compiler version, 
 | 
			
		||||
// and the version of MSVC or GCC that we are emulating.
 | 
			
		||||
// See http://software.intel.com/en-us/articles/c0x-features-supported-by-intel-c-compiler/
 | 
			
		||||
// for a list of which features were implemented in which Intel releases.
 | 
			
		||||
//
 | 
			
		||||
#if defined(BOOST_INTEL_STDCXX0X)
 | 
			
		||||
// BOOST_NO_CXX11_CONSTEXPR:
 | 
			
		||||
#if (BOOST_INTEL_CXX_VERSION >= 1500) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40600)) && !defined(_MSC_VER)
 | 
			
		||||
// Available in earlier Intel versions, but fail our tests:
 | 
			
		||||
#  undef BOOST_NO_CXX11_CONSTEXPR
 | 
			
		||||
#endif
 | 
			
		||||
// BOOST_NO_CXX11_NULLPTR:
 | 
			
		||||
#if (BOOST_INTEL_CXX_VERSION >= 1210) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40600)) && (!defined(_MSC_VER) || (_MSC_VER >= 1600))
 | 
			
		||||
#  undef BOOST_NO_CXX11_NULLPTR
 | 
			
		||||
#endif
 | 
			
		||||
// BOOST_NO_CXX11_TEMPLATE_ALIASES
 | 
			
		||||
#if (BOOST_INTEL_CXX_VERSION >= 1210) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40700)) && (!defined(_MSC_VER) || (_MSC_FULL_VER >= 180020827))
 | 
			
		||||
#  undef BOOST_NO_CXX11_TEMPLATE_ALIASES
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
// BOOST_NO_CXX11_DECLTYPE
 | 
			
		||||
#if (BOOST_INTEL_CXX_VERSION >= 1200) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40300)) && (!defined(_MSC_VER) || (_MSC_VER >= 1600))
 | 
			
		||||
#  undef BOOST_NO_CXX11_DECLTYPE
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
// BOOST_NO_CXX11_DECLTYPE_N3276
 | 
			
		||||
#if (BOOST_INTEL_CXX_VERSION >= 1500) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40800)) && (!defined(_MSC_VER) || (_MSC_FULL_VER >= 180020827))
 | 
			
		||||
#  undef BOOST_NO_CXX11_DECLTYPE_N3276
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
// BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
 | 
			
		||||
#if (BOOST_INTEL_CXX_VERSION >= 1200) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40300)) && (!defined(_MSC_VER) || (_MSC_FULL_VER >= 180020827))
 | 
			
		||||
#  undef BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
// BOOST_NO_CXX11_RVALUE_REFERENCES
 | 
			
		||||
#if (BOOST_INTEL_CXX_VERSION >= 1300) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40300)) && (!defined(_MSC_VER) || (_MSC_VER >= 1600))
 | 
			
		||||
// This is available from earlier Intel versions, but breaks Filesystem and other libraries:
 | 
			
		||||
#  undef BOOST_NO_CXX11_RVALUE_REFERENCES
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
// BOOST_NO_CXX11_STATIC_ASSERT
 | 
			
		||||
#if (BOOST_INTEL_CXX_VERSION >= 1110) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40300)) && (!defined(_MSC_VER) || (_MSC_VER >= 1600))
 | 
			
		||||
#  undef BOOST_NO_CXX11_STATIC_ASSERT
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
// BOOST_NO_CXX11_VARIADIC_TEMPLATES
 | 
			
		||||
#if (BOOST_INTEL_CXX_VERSION >= 1200) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40400)) && (!defined(_MSC_VER) || (_MSC_FULL_VER >= 180020827))
 | 
			
		||||
#  undef BOOST_NO_CXX11_VARIADIC_TEMPLATES
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
// BOOST_NO_CXX11_VARIADIC_MACROS
 | 
			
		||||
#if (BOOST_INTEL_CXX_VERSION >= 1200) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40200)) && (!defined(_MSC_VER) || (_MSC_VER >= 1400))
 | 
			
		||||
#  undef BOOST_NO_CXX11_VARIADIC_MACROS
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
// BOOST_NO_CXX11_AUTO_DECLARATIONS
 | 
			
		||||
#if (BOOST_INTEL_CXX_VERSION >= 1200) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40400)) && (!defined(_MSC_VER) || (_MSC_VER >= 1600))
 | 
			
		||||
#  undef BOOST_NO_CXX11_AUTO_DECLARATIONS
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
// BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
 | 
			
		||||
#if (BOOST_INTEL_CXX_VERSION >= 1200) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40400)) && (!defined(_MSC_VER) || (_MSC_VER >= 1600))
 | 
			
		||||
#  undef BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
// BOOST_NO_CXX11_CHAR16_T
 | 
			
		||||
#if (BOOST_INTEL_CXX_VERSION >= 1400) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40400)) && (!defined(_MSC_VER) || (_MSC_VER >= 9999))
 | 
			
		||||
#  undef BOOST_NO_CXX11_CHAR16_T
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
// BOOST_NO_CXX11_CHAR32_T
 | 
			
		||||
#if (BOOST_INTEL_CXX_VERSION >= 1400) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40400)) && (!defined(_MSC_VER) || (_MSC_VER >= 9999))
 | 
			
		||||
#  undef BOOST_NO_CXX11_CHAR32_T
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
// BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
 | 
			
		||||
#if (BOOST_INTEL_CXX_VERSION >= 1200) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40400)) && (!defined(_MSC_VER) || (_MSC_FULL_VER >= 180020827))
 | 
			
		||||
#  undef BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
// BOOST_NO_CXX11_DELETED_FUNCTIONS
 | 
			
		||||
#if (BOOST_INTEL_CXX_VERSION >= 1200) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40400)) && (!defined(_MSC_VER) || (_MSC_FULL_VER >= 180020827))
 | 
			
		||||
#  undef BOOST_NO_CXX11_DELETED_FUNCTIONS
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
// BOOST_NO_CXX11_HDR_INITIALIZER_LIST
 | 
			
		||||
#if (BOOST_INTEL_CXX_VERSION >= 1400) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40400)) && (!defined(_MSC_VER) || (_MSC_VER >= 1700))
 | 
			
		||||
#  undef BOOST_NO_CXX11_HDR_INITIALIZER_LIST
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
// BOOST_NO_CXX11_SCOPED_ENUMS
 | 
			
		||||
#if (BOOST_INTEL_CXX_VERSION >= 1400) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40501)) && (!defined(_MSC_VER) || (_MSC_VER >= 1700))
 | 
			
		||||
// This is available but broken in earlier Intel releases.
 | 
			
		||||
#  undef BOOST_NO_CXX11_SCOPED_ENUMS
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
// BOOST_NO_SFINAE_EXPR
 | 
			
		||||
#if (BOOST_INTEL_CXX_VERSION >= 1200) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40500)) && (!defined(_MSC_VER) || (_MSC_VER >= 9999))
 | 
			
		||||
#  undef BOOST_NO_SFINAE_EXPR
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
// BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
 | 
			
		||||
#if (BOOST_INTEL_CXX_VERSION >= 1500) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40500)) && (!defined(_MSC_VER) || (_MSC_FULL_VER >= 180020827))
 | 
			
		||||
// This is available in earlier Intel releases, but breaks Multiprecision:
 | 
			
		||||
#  undef BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
// BOOST_NO_CXX11_LAMBDAS
 | 
			
		||||
#if (BOOST_INTEL_CXX_VERSION >= 1200) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40500)) && (!defined(_MSC_VER) || (_MSC_VER >= 1600))
 | 
			
		||||
#  undef BOOST_NO_CXX11_LAMBDAS
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
// BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
 | 
			
		||||
#if (BOOST_INTEL_CXX_VERSION >= 1200) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40500))
 | 
			
		||||
#  undef BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
// BOOST_NO_CXX11_RANGE_BASED_FOR
 | 
			
		||||
#if (BOOST_INTEL_CXX_VERSION >= 1400) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40600)) && (!defined(_MSC_VER) || (_MSC_VER >= 1700))
 | 
			
		||||
#  undef BOOST_NO_CXX11_RANGE_BASED_FOR
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
// BOOST_NO_CXX11_RAW_LITERALS
 | 
			
		||||
#if (BOOST_INTEL_CXX_VERSION >= 1400) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40500)) && (!defined(_MSC_VER) || (_MSC_FULL_VER >= 180020827))
 | 
			
		||||
#  undef BOOST_NO_CXX11_RAW_LITERALS
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
// BOOST_NO_CXX11_UNICODE_LITERALS
 | 
			
		||||
#if (BOOST_INTEL_CXX_VERSION >= 1400) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40500)) && (!defined(_MSC_VER) || (_MSC_VER >= 9999))
 | 
			
		||||
#  undef BOOST_NO_CXX11_UNICODE_LITERALS
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
// BOOST_NO_CXX11_NOEXCEPT
 | 
			
		||||
#if (BOOST_INTEL_CXX_VERSION >= 1500) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40600)) && (!defined(_MSC_VER) || (_MSC_VER >= 9999))
 | 
			
		||||
// Available in earlier Intel release, but generates errors when used with 
 | 
			
		||||
// conditional exception specifications, for example in multiprecision:
 | 
			
		||||
#  undef BOOST_NO_CXX11_NOEXCEPT
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
// BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
 | 
			
		||||
#if (BOOST_INTEL_CXX_VERSION >= 1400) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40600)) && (!defined(_MSC_VER) || (_MSC_VER >= 9999))
 | 
			
		||||
#  undef BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
// BOOST_NO_CXX11_USER_DEFINED_LITERALS
 | 
			
		||||
#if (BOOST_INTEL_CXX_VERSION >= 1500) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40700)) && (!defined(_MSC_VER) || (_MSC_FULL_VER >= 190021730))
 | 
			
		||||
#  undef BOOST_NO_CXX11_USER_DEFINED_LITERALS
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
// BOOST_NO_CXX11_ALIGNAS
 | 
			
		||||
#if (BOOST_INTEL_CXX_VERSION >= 1500) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40800)) && (!defined(_MSC_VER) || (_MSC_FULL_VER >= 190021730))
 | 
			
		||||
#  undef BOOST_NO_CXX11_ALIGNAS
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
// BOOST_NO_CXX11_TRAILING_RESULT_TYPES
 | 
			
		||||
#if (BOOST_INTEL_CXX_VERSION >= 1200) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40400)) && (!defined(_MSC_VER) || (_MSC_FULL_VER >= 180020827))
 | 
			
		||||
#  undef BOOST_NO_CXX11_TRAILING_RESULT_TYPES
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
// BOOST_NO_CXX11_INLINE_NAMESPACES
 | 
			
		||||
#if (BOOST_INTEL_CXX_VERSION >= 1400) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40400)) && (!defined(_MSC_VER) || (_MSC_FULL_VER >= 190021730))
 | 
			
		||||
#  undef BOOST_NO_CXX11_INLINE_NAMESPACES
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
// BOOST_NO_CXX11_REF_QUALIFIERS
 | 
			
		||||
#if (BOOST_INTEL_CXX_VERSION >= 1400) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40800)) && (!defined(_MSC_VER) || (_MSC_FULL_VER >= 190021730))
 | 
			
		||||
#  undef BOOST_NO_CXX11_REF_QUALIFIERS
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
// BOOST_NO_CXX11_FINAL
 | 
			
		||||
#if (BOOST_INTEL_CXX_VERSION >= 1400) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40700)) && (!defined(_MSC_VER) || (_MSC_VER >= 1700))
 | 
			
		||||
#  undef BOOST_NO_CXX11_FINAL
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
//
 | 
			
		||||
// Broken in all versions up to 15:
 | 
			
		||||
#define BOOST_NO_CXX11_FIXED_LENGTH_VARIADIC_TEMPLATE_EXPANSION_PACKS
 | 
			
		||||
 | 
			
		||||
#if defined(BOOST_INTEL_STDCXX0X) && (BOOST_INTEL_CXX_VERSION <= 1310)
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_FUTURE
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if defined(BOOST_INTEL_STDCXX0X) && (BOOST_INTEL_CXX_VERSION == 1400)
 | 
			
		||||
// A regression in Intel's compiler means that <tuple> seems to be broken in this release as well as <future> :
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_FUTURE
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_TUPLE
 | 
			
		||||
#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
 | 
			
		||||
 | 
			
		||||
// Intel 13.10 fails to access defaulted functions of a base class declared in private or protected sections,
 | 
			
		||||
// producing the following errors:
 | 
			
		||||
// error #453: protected function "..." (declared at ...") is not accessible through a "..." pointer or object
 | 
			
		||||
#if (BOOST_INTEL_CXX_VERSION <= 1310)
 | 
			
		||||
#  define BOOST_NO_CXX11_NON_PUBLIC_DEFAULTED_FUNCTIONS
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if defined(_MSC_VER) && (_MSC_VER >= 1600)
 | 
			
		||||
#  define BOOST_HAS_STDINT_H
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if defined(__LP64__) && defined(__GNUC__) && (BOOST_INTEL_CXX_VERSION >= 1310) && !defined(__CUDACC__)
 | 
			
		||||
#  define BOOST_HAS_INT128
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
//
 | 
			
		||||
// last known and checked version:
 | 
			
		||||
#if (BOOST_INTEL_CXX_VERSION > 1310)
 | 
			
		||||
#  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
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										33
									
								
								boost/config/compiler/kai.hpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										33
									
								
								boost/config/compiler/kai.hpp
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,33 @@
 | 
			
		|||
//  (C) Copyright John Maddock 2001. 
 | 
			
		||||
//  (C) Copyright David Abrahams 2002. 
 | 
			
		||||
//  (C) Copyright Aleksey Gurtovoy 2002. 
 | 
			
		||||
//  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.
 | 
			
		||||
 | 
			
		||||
//  Kai C++ compiler setup:
 | 
			
		||||
 | 
			
		||||
#include "boost/config/compiler/common_edg.hpp"
 | 
			
		||||
 | 
			
		||||
#   if (__KCC_VERSION <= 4001) || !defined(BOOST_STRICT_CONFIG)
 | 
			
		||||
      // at least on Sun, the contents of <cwchar> is not in namespace std
 | 
			
		||||
#     define BOOST_NO_STDC_NAMESPACE
 | 
			
		||||
#   endif
 | 
			
		||||
 | 
			
		||||
// see also common_edg.hpp which needs a special check for __KCC
 | 
			
		||||
# if !defined(_EXCEPTIONS) && !defined(BOOST_NO_EXCEPTIONS)
 | 
			
		||||
#     define BOOST_NO_EXCEPTIONS
 | 
			
		||||
# endif
 | 
			
		||||
 | 
			
		||||
//
 | 
			
		||||
// last known and checked version is 4001:
 | 
			
		||||
#if (__KCC_VERSION > 4001)
 | 
			
		||||
#  if defined(BOOST_ASSERT_CONFIG)
 | 
			
		||||
#     error "Unknown compiler version - please run the configure tests and report the results"
 | 
			
		||||
#  endif
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										179
									
								
								boost/config/compiler/metrowerks.hpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										179
									
								
								boost/config/compiler/metrowerks.hpp
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,179 @@
 | 
			
		|||
//  (C) Copyright John Maddock 2001.
 | 
			
		||||
//  (C) Copyright Darin Adler 2001.
 | 
			
		||||
//  (C) Copyright Peter Dimov 2001.
 | 
			
		||||
//  (C) Copyright David Abrahams 2001 - 2002.
 | 
			
		||||
//  (C) Copyright Beman Dawes 2001 - 2003.
 | 
			
		||||
//  (C) Copyright Stefan Slapeta 2004.
 | 
			
		||||
//  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.
 | 
			
		||||
 | 
			
		||||
//  Metrowerks C++ compiler setup:
 | 
			
		||||
 | 
			
		||||
// locale support is disabled when linking with the dynamic runtime
 | 
			
		||||
#   ifdef _MSL_NO_LOCALE
 | 
			
		||||
#     define BOOST_NO_STD_LOCALE
 | 
			
		||||
#   endif
 | 
			
		||||
 | 
			
		||||
#   if __MWERKS__ <= 0x2301  // 5.3
 | 
			
		||||
#     define BOOST_NO_FUNCTION_TEMPLATE_ORDERING
 | 
			
		||||
#     define BOOST_NO_POINTER_TO_MEMBER_CONST
 | 
			
		||||
#     define BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS
 | 
			
		||||
#     define BOOST_NO_MEMBER_TEMPLATE_KEYWORD
 | 
			
		||||
#   endif
 | 
			
		||||
 | 
			
		||||
#   if __MWERKS__ <= 0x2401  // 6.2
 | 
			
		||||
//#     define BOOST_NO_FUNCTION_TEMPLATE_ORDERING
 | 
			
		||||
#   endif
 | 
			
		||||
 | 
			
		||||
#   if(__MWERKS__ <= 0x2407)  // 7.x
 | 
			
		||||
#     define BOOST_NO_MEMBER_FUNCTION_SPECIALIZATIONS
 | 
			
		||||
#     define BOOST_NO_UNREACHABLE_RETURN_DETECTION
 | 
			
		||||
#   endif
 | 
			
		||||
 | 
			
		||||
#   if(__MWERKS__ <= 0x3003)  // 8.x
 | 
			
		||||
#     define BOOST_NO_SFINAE
 | 
			
		||||
#    endif
 | 
			
		||||
 | 
			
		||||
// the "|| !defined(BOOST_STRICT_CONFIG)" part should apply to the last
 | 
			
		||||
// tested version *only*:
 | 
			
		||||
#   if(__MWERKS__ <= 0x3207) || !defined(BOOST_STRICT_CONFIG) // 9.6
 | 
			
		||||
#     define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
 | 
			
		||||
#     define BOOST_NO_IS_ABSTRACT
 | 
			
		||||
#    endif
 | 
			
		||||
 | 
			
		||||
#if !__option(wchar_type)
 | 
			
		||||
#   define BOOST_NO_INTRINSIC_WCHAR_T
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if !__option(exceptions) && !defined(BOOST_NO_EXCEPTIONS)
 | 
			
		||||
#   define BOOST_NO_EXCEPTIONS
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if (__INTEL__ && _WIN32) || (__POWERPC__ && macintosh)
 | 
			
		||||
#   if __MWERKS__ == 0x3000
 | 
			
		||||
#     define BOOST_COMPILER_VERSION 8.0
 | 
			
		||||
#   elif __MWERKS__ == 0x3001
 | 
			
		||||
#     define BOOST_COMPILER_VERSION 8.1
 | 
			
		||||
#   elif __MWERKS__ == 0x3002
 | 
			
		||||
#     define BOOST_COMPILER_VERSION 8.2
 | 
			
		||||
#   elif __MWERKS__ == 0x3003
 | 
			
		||||
#     define BOOST_COMPILER_VERSION 8.3
 | 
			
		||||
#   elif __MWERKS__ == 0x3200
 | 
			
		||||
#     define BOOST_COMPILER_VERSION 9.0
 | 
			
		||||
#   elif __MWERKS__ == 0x3201
 | 
			
		||||
#     define BOOST_COMPILER_VERSION 9.1
 | 
			
		||||
#   elif __MWERKS__ == 0x3202
 | 
			
		||||
#     define BOOST_COMPILER_VERSION 9.2
 | 
			
		||||
#   elif __MWERKS__ == 0x3204
 | 
			
		||||
#     define BOOST_COMPILER_VERSION 9.3
 | 
			
		||||
#   elif __MWERKS__ == 0x3205
 | 
			
		||||
#     define BOOST_COMPILER_VERSION 9.4
 | 
			
		||||
#   elif __MWERKS__ == 0x3206
 | 
			
		||||
#     define BOOST_COMPILER_VERSION 9.5
 | 
			
		||||
#   elif __MWERKS__ == 0x3207
 | 
			
		||||
#     define BOOST_COMPILER_VERSION 9.6
 | 
			
		||||
#   else
 | 
			
		||||
#     define BOOST_COMPILER_VERSION __MWERKS__
 | 
			
		||||
#   endif
 | 
			
		||||
#else
 | 
			
		||||
#  define BOOST_COMPILER_VERSION __MWERKS__
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
//
 | 
			
		||||
// C++0x features
 | 
			
		||||
//
 | 
			
		||||
//   See boost\config\suffix.hpp for BOOST_NO_LONG_LONG
 | 
			
		||||
//
 | 
			
		||||
#if __MWERKS__ > 0x3206 && __option(rvalue_refs)
 | 
			
		||||
#  define BOOST_HAS_RVALUE_REFS
 | 
			
		||||
#else
 | 
			
		||||
#  define BOOST_NO_CXX11_RVALUE_REFERENCES
 | 
			
		||||
#endif
 | 
			
		||||
#define BOOST_NO_CXX11_AUTO_DECLARATIONS
 | 
			
		||||
#define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
 | 
			
		||||
#define BOOST_NO_CXX11_CHAR16_T
 | 
			
		||||
#define BOOST_NO_CXX11_CHAR32_T
 | 
			
		||||
#define BOOST_NO_CXX11_CONSTEXPR
 | 
			
		||||
#define BOOST_NO_CXX11_DECLTYPE
 | 
			
		||||
#define BOOST_NO_CXX11_DECLTYPE_N3276
 | 
			
		||||
#define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
 | 
			
		||||
#define BOOST_NO_CXX11_DELETED_FUNCTIONS
 | 
			
		||||
#define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
 | 
			
		||||
#define BOOST_NO_CXX11_EXTERN_TEMPLATE
 | 
			
		||||
#define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
 | 
			
		||||
#define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
 | 
			
		||||
#define BOOST_NO_CXX11_LAMBDAS
 | 
			
		||||
#define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
 | 
			
		||||
#define BOOST_NO_CXX11_NOEXCEPT
 | 
			
		||||
#define BOOST_NO_CXX11_NULLPTR
 | 
			
		||||
#define BOOST_NO_CXX11_RANGE_BASED_FOR
 | 
			
		||||
#define BOOST_NO_CXX11_RAW_LITERALS
 | 
			
		||||
#define BOOST_NO_CXX11_SCOPED_ENUMS
 | 
			
		||||
#define BOOST_NO_SFINAE_EXPR
 | 
			
		||||
#define BOOST_NO_CXX11_STATIC_ASSERT
 | 
			
		||||
#define BOOST_NO_CXX11_TEMPLATE_ALIASES
 | 
			
		||||
#define BOOST_NO_CXX11_UNICODE_LITERALS
 | 
			
		||||
#define BOOST_NO_CXX11_VARIADIC_TEMPLATES
 | 
			
		||||
#define BOOST_NO_CXX11_VARIADIC_MACROS
 | 
			
		||||
#define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
 | 
			
		||||
#define BOOST_NO_CXX11_USER_DEFINED_LITERALS
 | 
			
		||||
#define BOOST_NO_CXX11_ALIGNAS
 | 
			
		||||
#define BOOST_NO_CXX11_TRAILING_RESULT_TYPES
 | 
			
		||||
#define BOOST_NO_CXX11_INLINE_NAMESPACES
 | 
			
		||||
#define BOOST_NO_CXX11_REF_QUALIFIERS
 | 
			
		||||
#define BOOST_NO_CXX11_FINAL
 | 
			
		||||
 | 
			
		||||
// C++ 14:
 | 
			
		||||
#if !defined(__cpp_aggregate_nsdmi) || (__cpp_aggregate_nsdmi < 201304)
 | 
			
		||||
#  define BOOST_NO_CXX14_AGGREGATE_NSDMI
 | 
			
		||||
#endif
 | 
			
		||||
#if !defined(__cpp_binary_literals) || (__cpp_binary_literals < 201304)
 | 
			
		||||
#  define BOOST_NO_CXX14_BINARY_LITERALS
 | 
			
		||||
#endif
 | 
			
		||||
#if !defined(__cpp_constexpr) || (__cpp_constexpr < 201304)
 | 
			
		||||
#  define BOOST_NO_CXX14_CONSTEXPR
 | 
			
		||||
#endif
 | 
			
		||||
#if !defined(__cpp_decltype_auto) || (__cpp_decltype_auto < 201304)
 | 
			
		||||
#  define BOOST_NO_CXX14_DECLTYPE_AUTO
 | 
			
		||||
#endif
 | 
			
		||||
#if (__cplusplus < 201304) // There's no SD6 check for this....
 | 
			
		||||
#  define BOOST_NO_CXX14_DIGIT_SEPARATORS
 | 
			
		||||
#endif
 | 
			
		||||
#if !defined(__cpp_generic_lambdas) || (__cpp_generic_lambdas < 201304)
 | 
			
		||||
#  define BOOST_NO_CXX14_GENERIC_LAMBDAS
 | 
			
		||||
#endif
 | 
			
		||||
#if !defined(__cpp_init_captures) || (__cpp_init_captures < 201304)
 | 
			
		||||
#  define BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES
 | 
			
		||||
#endif
 | 
			
		||||
#if !defined(__cpp_return_type_deduction) || (__cpp_return_type_deduction < 201304)
 | 
			
		||||
#  define BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION
 | 
			
		||||
#endif
 | 
			
		||||
#if !defined(__cpp_variable_templates) || (__cpp_variable_templates < 201304)
 | 
			
		||||
#  define BOOST_NO_CXX14_VARIABLE_TEMPLATES
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#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
 | 
			
		||||
#  error "Compiler not supported or configured - please reconfigure"
 | 
			
		||||
#endif
 | 
			
		||||
//
 | 
			
		||||
// last known and checked version:
 | 
			
		||||
#if (__MWERKS__ > 0x3205)
 | 
			
		||||
#  if defined(BOOST_ASSERT_CONFIG)
 | 
			
		||||
#     error "Unknown compiler version - please run the configure tests and report the results"
 | 
			
		||||
#  endif
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										121
									
								
								boost/config/compiler/mpw.hpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										121
									
								
								boost/config/compiler/mpw.hpp
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,121 @@
 | 
			
		|||
//  (C) Copyright John Maddock 2001 - 2002.
 | 
			
		||||
//  (C) Copyright Aleksey Gurtovoy 2002.
 | 
			
		||||
//  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.
 | 
			
		||||
 | 
			
		||||
//  MPW C++ compilers setup:
 | 
			
		||||
 | 
			
		||||
#   if    defined(__SC__)
 | 
			
		||||
#     define BOOST_COMPILER "MPW SCpp version " BOOST_STRINGIZE(__SC__)
 | 
			
		||||
#   elif defined(__MRC__)
 | 
			
		||||
#     define BOOST_COMPILER "MPW MrCpp version " BOOST_STRINGIZE(__MRC__)
 | 
			
		||||
#   else
 | 
			
		||||
#     error "Using MPW compiler configuration by mistake.  Please update."
 | 
			
		||||
#   endif
 | 
			
		||||
 | 
			
		||||
//
 | 
			
		||||
// MPW 8.90:
 | 
			
		||||
//
 | 
			
		||||
#if (MPW_CPLUS <= 0x890) || !defined(BOOST_STRICT_CONFIG)
 | 
			
		||||
#  define BOOST_NO_CV_SPECIALIZATIONS
 | 
			
		||||
#  define BOOST_NO_DEPENDENT_NESTED_DERIVATIONS
 | 
			
		||||
#  define BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS
 | 
			
		||||
#  define BOOST_NO_INCLASS_MEMBER_INITIALIZATION
 | 
			
		||||
#  define BOOST_NO_INTRINSIC_WCHAR_T
 | 
			
		||||
#  define BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 | 
			
		||||
#  define BOOST_NO_USING_TEMPLATE
 | 
			
		||||
 | 
			
		||||
#  define BOOST_NO_CWCHAR
 | 
			
		||||
#  define BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
 | 
			
		||||
 | 
			
		||||
#  define BOOST_NO_STD_ALLOCATOR /* actually a bug with const reference overloading */
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
//
 | 
			
		||||
// C++0x features
 | 
			
		||||
//
 | 
			
		||||
//   See boost\config\suffix.hpp for BOOST_NO_LONG_LONG
 | 
			
		||||
//
 | 
			
		||||
#define BOOST_NO_CXX11_AUTO_DECLARATIONS
 | 
			
		||||
#define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
 | 
			
		||||
#define BOOST_NO_CXX11_CHAR16_T
 | 
			
		||||
#define BOOST_NO_CXX11_CHAR32_T
 | 
			
		||||
#define BOOST_NO_CXX11_CONSTEXPR
 | 
			
		||||
#define BOOST_NO_CXX11_DECLTYPE
 | 
			
		||||
#define BOOST_NO_CXX11_DECLTYPE_N3276
 | 
			
		||||
#define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
 | 
			
		||||
#define BOOST_NO_CXX11_DELETED_FUNCTIONS
 | 
			
		||||
#define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
 | 
			
		||||
#define BOOST_NO_CXX11_EXTERN_TEMPLATE
 | 
			
		||||
#define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
 | 
			
		||||
#define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
 | 
			
		||||
#define BOOST_NO_CXX11_LAMBDAS
 | 
			
		||||
#define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
 | 
			
		||||
#define BOOST_NO_CXX11_NOEXCEPT
 | 
			
		||||
#define BOOST_NO_CXX11_NULLPTR
 | 
			
		||||
#define BOOST_NO_CXX11_RANGE_BASED_FOR
 | 
			
		||||
#define BOOST_NO_CXX11_RAW_LITERALS
 | 
			
		||||
#define BOOST_NO_CXX11_RVALUE_REFERENCES
 | 
			
		||||
#define BOOST_NO_CXX11_SCOPED_ENUMS
 | 
			
		||||
#define BOOST_NO_SFINAE_EXPR
 | 
			
		||||
#define BOOST_NO_CXX11_STATIC_ASSERT
 | 
			
		||||
#define BOOST_NO_CXX11_TEMPLATE_ALIASES
 | 
			
		||||
#define BOOST_NO_CXX11_UNICODE_LITERALS
 | 
			
		||||
#define BOOST_NO_CXX11_VARIADIC_TEMPLATES
 | 
			
		||||
#define BOOST_NO_CXX11_VARIADIC_MACROS
 | 
			
		||||
#define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
 | 
			
		||||
#define BOOST_NO_CXX11_USER_DEFINED_LITERALS
 | 
			
		||||
#define BOOST_NO_CXX11_ALIGNAS
 | 
			
		||||
#define BOOST_NO_CXX11_TRAILING_RESULT_TYPES
 | 
			
		||||
#define BOOST_NO_CXX11_INLINE_NAMESPACES
 | 
			
		||||
#define BOOST_NO_CXX11_REF_QUALIFIERS
 | 
			
		||||
#define BOOST_NO_CXX11_FINAL
 | 
			
		||||
 | 
			
		||||
// C++ 14:
 | 
			
		||||
#if !defined(__cpp_aggregate_nsdmi) || (__cpp_aggregate_nsdmi < 201304)
 | 
			
		||||
#  define BOOST_NO_CXX14_AGGREGATE_NSDMI
 | 
			
		||||
#endif
 | 
			
		||||
#if !defined(__cpp_binary_literals) || (__cpp_binary_literals < 201304)
 | 
			
		||||
#  define BOOST_NO_CXX14_BINARY_LITERALS
 | 
			
		||||
#endif
 | 
			
		||||
#if !defined(__cpp_constexpr) || (__cpp_constexpr < 201304)
 | 
			
		||||
#  define BOOST_NO_CXX14_CONSTEXPR
 | 
			
		||||
#endif
 | 
			
		||||
#if !defined(__cpp_decltype_auto) || (__cpp_decltype_auto < 201304)
 | 
			
		||||
#  define BOOST_NO_CXX14_DECLTYPE_AUTO
 | 
			
		||||
#endif
 | 
			
		||||
#if (__cplusplus < 201304) // There's no SD6 check for this....
 | 
			
		||||
#  define BOOST_NO_CXX14_DIGIT_SEPARATORS
 | 
			
		||||
#endif
 | 
			
		||||
#if !defined(__cpp_generic_lambdas) || (__cpp_generic_lambdas < 201304)
 | 
			
		||||
#  define BOOST_NO_CXX14_GENERIC_LAMBDAS
 | 
			
		||||
#endif
 | 
			
		||||
#if !defined(__cpp_init_captures) || (__cpp_init_captures < 201304)
 | 
			
		||||
#  define BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES
 | 
			
		||||
#endif
 | 
			
		||||
#if !defined(__cpp_return_type_deduction) || (__cpp_return_type_deduction < 201304)
 | 
			
		||||
#  define BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION
 | 
			
		||||
#endif
 | 
			
		||||
#if !defined(__cpp_variable_templates) || (__cpp_variable_templates < 201304)
 | 
			
		||||
#  define BOOST_NO_CXX14_VARIABLE_TEMPLATES
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
//
 | 
			
		||||
// versions check:
 | 
			
		||||
// we don't support MPW prior to version 8.9:
 | 
			
		||||
#if MPW_CPLUS < 0x890
 | 
			
		||||
#  error "Compiler not supported or configured - please reconfigure"
 | 
			
		||||
#endif
 | 
			
		||||
//
 | 
			
		||||
// last known and checked version is 0x890:
 | 
			
		||||
#if (MPW_CPLUS > 0x890)
 | 
			
		||||
#  if defined(BOOST_ASSERT_CONFIG)
 | 
			
		||||
#     error "Unknown compiler version - please run the configure tests and report the results"
 | 
			
		||||
#  endif
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										16
									
								
								boost/config/compiler/nvcc.hpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								boost/config/compiler/nvcc.hpp
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,16 @@
 | 
			
		|||
//  (C) Copyright Eric Jourdanneau, Joel Falcou 2010
 | 
			
		||||
//  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.
 | 
			
		||||
 | 
			
		||||
//  NVIDIA CUDA C++ compiler setup
 | 
			
		||||
 | 
			
		||||
#ifndef BOOST_COMPILER
 | 
			
		||||
#  define BOOST_COMPILER "NVIDIA CUDA C++ Compiler"
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
// NVIDIA Specific support
 | 
			
		||||
// BOOST_GPU_ENABLED : Flag a function or a method as being enabled on the host and device
 | 
			
		||||
#define BOOST_GPU_ENABLED __host__ __device__
 | 
			
		||||
							
								
								
									
										114
									
								
								boost/config/compiler/pathscale.hpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										114
									
								
								boost/config/compiler/pathscale.hpp
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,114 @@
 | 
			
		|||
//  (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_CXX11_VARIADIC_TEMPLATES
 | 
			
		||||
#  define BOOST_NO_CXX11_UNICODE_LITERALS
 | 
			
		||||
#  define BOOST_NO_CXX11_TEMPLATE_ALIASES
 | 
			
		||||
#  define BOOST_NO_CXX11_STATIC_ASSERT
 | 
			
		||||
#  define BOOST_NO_SFINAE_EXPR
 | 
			
		||||
#  define BOOST_NO_CXX11_SCOPED_ENUMS
 | 
			
		||||
#  define BOOST_NO_CXX11_RVALUE_REFERENCES
 | 
			
		||||
#  define BOOST_NO_CXX11_RANGE_BASED_FOR
 | 
			
		||||
#  define BOOST_NO_CXX11_RAW_LITERALS
 | 
			
		||||
#  define BOOST_NO_CXX11_NULLPTR
 | 
			
		||||
#  define BOOST_NO_CXX11_NUMERIC_LIMITS
 | 
			
		||||
#  define BOOST_NO_CXX11_NOEXCEPT
 | 
			
		||||
#  define BOOST_NO_CXX11_LAMBDAS
 | 
			
		||||
#  define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
 | 
			
		||||
#  define BOOST_NO_MS_INT64_NUMERIC_LIMITS
 | 
			
		||||
#  define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
 | 
			
		||||
#  define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
 | 
			
		||||
#  define BOOST_NO_CXX11_DELETED_FUNCTIONS
 | 
			
		||||
#  define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
 | 
			
		||||
#  define BOOST_NO_CXX11_DECLTYPE
 | 
			
		||||
#  define BOOST_NO_CXX11_DECLTYPE_N3276
 | 
			
		||||
#  define BOOST_NO_CXX11_CONSTEXPR
 | 
			
		||||
#  define BOOST_NO_COMPLETE_VALUE_INITIALIZATION
 | 
			
		||||
#  define BOOST_NO_CXX11_CHAR32_T
 | 
			
		||||
#  define BOOST_NO_CXX11_CHAR16_T
 | 
			
		||||
#  define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
 | 
			
		||||
#  define BOOST_NO_CXX11_AUTO_DECLARATIONS
 | 
			
		||||
#  define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_UNORDERED_SET
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_UNORDERED_MAP
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_TYPEINDEX
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_TUPLE
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_THREAD
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_SYSTEM_ERROR
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_REGEX
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_RATIO
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_RANDOM
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_MUTEX
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_FUTURE
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_FORWARD_LIST
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_CODECVT
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_CHRONO
 | 
			
		||||
#  define BOOST_NO_CXX11_USER_DEFINED_LITERALS
 | 
			
		||||
#  define BOOST_NO_CXX11_ALIGNAS
 | 
			
		||||
#  define BOOST_NO_CXX11_TRAILING_RESULT_TYPES
 | 
			
		||||
#  define BOOST_NO_CXX11_INLINE_NAMESPACES
 | 
			
		||||
#  define BOOST_NO_CXX11_REF_QUALIFIERS
 | 
			
		||||
#  define BOOST_NO_CXX11_FINAL
 | 
			
		||||
 | 
			
		||||
// C++ 14:
 | 
			
		||||
#if !defined(__cpp_aggregate_nsdmi) || (__cpp_aggregate_nsdmi < 201304)
 | 
			
		||||
#  define BOOST_NO_CXX14_AGGREGATE_NSDMI
 | 
			
		||||
#endif
 | 
			
		||||
#if !defined(__cpp_binary_literals) || (__cpp_binary_literals < 201304)
 | 
			
		||||
#  define BOOST_NO_CXX14_BINARY_LITERALS
 | 
			
		||||
#endif
 | 
			
		||||
#if !defined(__cpp_constexpr) || (__cpp_constexpr < 201304)
 | 
			
		||||
#  define BOOST_NO_CXX14_CONSTEXPR
 | 
			
		||||
#endif
 | 
			
		||||
#if !defined(__cpp_decltype_auto) || (__cpp_decltype_auto < 201304)
 | 
			
		||||
#  define BOOST_NO_CXX14_DECLTYPE_AUTO
 | 
			
		||||
#endif
 | 
			
		||||
#if (__cplusplus < 201304) // There's no SD6 check for this....
 | 
			
		||||
#  define BOOST_NO_CXX14_DIGIT_SEPARATORS
 | 
			
		||||
#endif
 | 
			
		||||
#if !defined(__cpp_generic_lambdas) || (__cpp_generic_lambdas < 201304)
 | 
			
		||||
#  define BOOST_NO_CXX14_GENERIC_LAMBDAS
 | 
			
		||||
#endif
 | 
			
		||||
#if !defined(__cpp_init_captures) || (__cpp_init_captures < 201304)
 | 
			
		||||
#  define BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES
 | 
			
		||||
#endif
 | 
			
		||||
#if !defined(__cpp_return_type_deduction) || (__cpp_return_type_deduction < 201304)
 | 
			
		||||
#  define BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION
 | 
			
		||||
#endif
 | 
			
		||||
#if !defined(__cpp_variable_templates) || (__cpp_variable_templates < 201304)
 | 
			
		||||
#  define BOOST_NO_CXX14_VARIABLE_TEMPLATES
 | 
			
		||||
#endif
 | 
			
		||||
#endif
 | 
			
		||||
							
								
								
									
										155
									
								
								boost/config/compiler/pgi.hpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										155
									
								
								boost/config/compiler/pgi.hpp
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,155 @@
 | 
			
		|||
//  (C) Copyright Noel Belcourt 2007.
 | 
			
		||||
//  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.
 | 
			
		||||
 | 
			
		||||
//  PGI C++ compiler setup:
 | 
			
		||||
 | 
			
		||||
#define BOOST_COMPILER_VERSION __PGIC__##__PGIC_MINOR__
 | 
			
		||||
#define BOOST_COMPILER "PGI compiler version " BOOST_STRINGIZE(BOOST_COMPILER_VERSION)
 | 
			
		||||
 | 
			
		||||
//
 | 
			
		||||
// Threading support:
 | 
			
		||||
// Turn this on unconditionally here, it will get turned off again later
 | 
			
		||||
// if no threading API is detected.
 | 
			
		||||
//
 | 
			
		||||
 | 
			
		||||
#if __PGIC__ >= 11
 | 
			
		||||
 | 
			
		||||
// options requested by configure --enable-test
 | 
			
		||||
#define BOOST_HAS_PTHREADS
 | 
			
		||||
#define BOOST_HAS_THREADS
 | 
			
		||||
#define BOOST_HAS_PTHREAD_YIELD
 | 
			
		||||
#define BOOST_HAS_NRVO
 | 
			
		||||
#define BOOST_HAS_LONG_LONG
 | 
			
		||||
 | 
			
		||||
// options --enable-test wants undefined
 | 
			
		||||
#undef BOOST_NO_STDC_NAMESPACE
 | 
			
		||||
#undef BOOST_NO_EXCEPTION_STD_NAMESPACE
 | 
			
		||||
#undef BOOST_DEDUCED_TYPENAME
 | 
			
		||||
 | 
			
		||||
#define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
 | 
			
		||||
#define BOOST_NO_TWO_PHASE_NAME_LOOKUP
 | 
			
		||||
#define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
 | 
			
		||||
#define BOOST_NO_CXX11_AUTO_DECLARATIONS
 | 
			
		||||
 | 
			
		||||
#elif __PGIC__ >= 10
 | 
			
		||||
 | 
			
		||||
// options requested by configure --enable-test
 | 
			
		||||
#define BOOST_HAS_THREADS
 | 
			
		||||
#define BOOST_HAS_NRVO
 | 
			
		||||
#define BOOST_HAS_LONG_LONG
 | 
			
		||||
#if defined(linux) || defined(__linux) || defined(__linux__)
 | 
			
		||||
#  define BOOST_HAS_STDINT_H
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
// options --enable-test wants undefined
 | 
			
		||||
#undef BOOST_NO_STDC_NAMESPACE
 | 
			
		||||
#undef BOOST_NO_EXCEPTION_STD_NAMESPACE
 | 
			
		||||
#undef BOOST_DEDUCED_TYPENAME
 | 
			
		||||
 | 
			
		||||
#elif __PGIC__ >= 7
 | 
			
		||||
 | 
			
		||||
#define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
 | 
			
		||||
#define BOOST_NO_TWO_PHASE_NAME_LOOKUP
 | 
			
		||||
#define BOOST_NO_SWPRINTF
 | 
			
		||||
#define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
 | 
			
		||||
#define BOOST_NO_CXX11_AUTO_DECLARATIONS
 | 
			
		||||
 | 
			
		||||
#else
 | 
			
		||||
 | 
			
		||||
#  error "Pgi compiler not configured - please reconfigure"
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
//
 | 
			
		||||
// C++0x features
 | 
			
		||||
//
 | 
			
		||||
//   See boost\config\suffix.hpp for BOOST_NO_LONG_LONG
 | 
			
		||||
//
 | 
			
		||||
#define BOOST_NO_CXX11_CHAR16_T
 | 
			
		||||
#define BOOST_NO_CXX11_CHAR32_T
 | 
			
		||||
#define BOOST_NO_CXX11_CONSTEXPR
 | 
			
		||||
#define BOOST_NO_CXX11_DECLTYPE
 | 
			
		||||
#define BOOST_NO_CXX11_DECLTYPE_N3276
 | 
			
		||||
#define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
 | 
			
		||||
#define BOOST_NO_CXX11_DELETED_FUNCTIONS
 | 
			
		||||
#define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
 | 
			
		||||
#define BOOST_NO_CXX11_EXTERN_TEMPLATE
 | 
			
		||||
#define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
 | 
			
		||||
#define BOOST_NO_CXX11_LAMBDAS
 | 
			
		||||
#define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
 | 
			
		||||
#define BOOST_NO_CXX11_NOEXCEPT
 | 
			
		||||
#define BOOST_NO_CXX11_NULLPTR
 | 
			
		||||
#define BOOST_NO_CXX11_NUMERIC_LIMITS
 | 
			
		||||
#define BOOST_NO_CXX11_RANGE_BASED_FOR
 | 
			
		||||
#define BOOST_NO_CXX11_RAW_LITERALS
 | 
			
		||||
#define BOOST_NO_CXX11_RVALUE_REFERENCES
 | 
			
		||||
#define BOOST_NO_CXX11_SCOPED_ENUMS
 | 
			
		||||
#define BOOST_NO_SFINAE_EXPR
 | 
			
		||||
#define BOOST_NO_CXX11_STATIC_ASSERT
 | 
			
		||||
#define BOOST_NO_SWPRINTF
 | 
			
		||||
#define BOOST_NO_CXX11_TEMPLATE_ALIASES
 | 
			
		||||
#define BOOST_NO_CXX11_UNICODE_LITERALS
 | 
			
		||||
#define BOOST_NO_CXX11_VARIADIC_TEMPLATES
 | 
			
		||||
#define BOOST_NO_CXX11_VARIADIC_MACROS
 | 
			
		||||
#define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
 | 
			
		||||
 | 
			
		||||
#define BOOST_NO_CXX11_HDR_UNORDERED_SET
 | 
			
		||||
#define BOOST_NO_CXX11_HDR_UNORDERED_MAP
 | 
			
		||||
#define BOOST_NO_CXX11_HDR_TYPEINDEX
 | 
			
		||||
#define BOOST_NO_CXX11_HDR_TYPE_TRAITS
 | 
			
		||||
#define BOOST_NO_CXX11_HDR_TUPLE
 | 
			
		||||
#define BOOST_NO_CXX11_HDR_THREAD
 | 
			
		||||
#define BOOST_NO_CXX11_HDR_SYSTEM_ERROR
 | 
			
		||||
#define BOOST_NO_CXX11_HDR_REGEX
 | 
			
		||||
#define BOOST_NO_CXX11_HDR_RATIO
 | 
			
		||||
#define BOOST_NO_CXX11_HDR_RANDOM
 | 
			
		||||
#define BOOST_NO_CXX11_HDR_MUTEX
 | 
			
		||||
#define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
 | 
			
		||||
#define BOOST_NO_CXX11_HDR_FUTURE
 | 
			
		||||
#define BOOST_NO_CXX11_HDR_FORWARD_LIST
 | 
			
		||||
#define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE
 | 
			
		||||
#define BOOST_NO_CXX11_HDR_CODECVT
 | 
			
		||||
#define BOOST_NO_CXX11_HDR_CHRONO
 | 
			
		||||
#define BOOST_NO_CXX11_HDR_ARRAY
 | 
			
		||||
#define BOOST_NO_CXX11_USER_DEFINED_LITERALS
 | 
			
		||||
#define BOOST_NO_CXX11_ALIGNAS
 | 
			
		||||
#define BOOST_NO_CXX11_TRAILING_RESULT_TYPES
 | 
			
		||||
#define BOOST_NO_CXX11_INLINE_NAMESPACES
 | 
			
		||||
#define BOOST_NO_CXX11_REF_QUALIFIERS
 | 
			
		||||
#define BOOST_NO_CXX11_FINAL
 | 
			
		||||
 | 
			
		||||
// C++ 14:
 | 
			
		||||
#if !defined(__cpp_aggregate_nsdmi) || (__cpp_aggregate_nsdmi < 201304)
 | 
			
		||||
#  define BOOST_NO_CXX14_AGGREGATE_NSDMI
 | 
			
		||||
#endif
 | 
			
		||||
#if !defined(__cpp_binary_literals) || (__cpp_binary_literals < 201304)
 | 
			
		||||
#  define BOOST_NO_CXX14_BINARY_LITERALS
 | 
			
		||||
#endif
 | 
			
		||||
#if !defined(__cpp_constexpr) || (__cpp_constexpr < 201304)
 | 
			
		||||
#  define BOOST_NO_CXX14_CONSTEXPR
 | 
			
		||||
#endif
 | 
			
		||||
#if !defined(__cpp_decltype_auto) || (__cpp_decltype_auto < 201304)
 | 
			
		||||
#  define BOOST_NO_CXX14_DECLTYPE_AUTO
 | 
			
		||||
#endif
 | 
			
		||||
#if (__cplusplus < 201304) // There's no SD6 check for this....
 | 
			
		||||
#  define BOOST_NO_CXX14_DIGIT_SEPARATORS
 | 
			
		||||
#endif
 | 
			
		||||
#if !defined(__cpp_generic_lambdas) || (__cpp_generic_lambdas < 201304)
 | 
			
		||||
#  define BOOST_NO_CXX14_GENERIC_LAMBDAS
 | 
			
		||||
#endif
 | 
			
		||||
#if !defined(__cpp_init_captures) || (__cpp_init_captures < 201304)
 | 
			
		||||
#  define BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES
 | 
			
		||||
#endif
 | 
			
		||||
#if !defined(__cpp_return_type_deduction) || (__cpp_return_type_deduction < 201304)
 | 
			
		||||
#  define BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION
 | 
			
		||||
#endif
 | 
			
		||||
#if !defined(__cpp_variable_templates) || (__cpp_variable_templates < 201304)
 | 
			
		||||
#  define BOOST_NO_CXX14_VARIABLE_TEMPLATES
 | 
			
		||||
#endif
 | 
			
		||||
//
 | 
			
		||||
// version check:
 | 
			
		||||
// probably nothing to do here?
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										29
									
								
								boost/config/compiler/sgi_mipspro.hpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										29
									
								
								boost/config/compiler/sgi_mipspro.hpp
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,29 @@
 | 
			
		|||
//  (C) Copyright John Maddock 2001 - 2002. 
 | 
			
		||||
//  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 C++ compiler setup:
 | 
			
		||||
 | 
			
		||||
#define BOOST_COMPILER "SGI Irix compiler version " BOOST_STRINGIZE(_COMPILER_VERSION)
 | 
			
		||||
 | 
			
		||||
#include "boost/config/compiler/common_edg.hpp"
 | 
			
		||||
 | 
			
		||||
//
 | 
			
		||||
// Threading support:
 | 
			
		||||
// Turn this on unconditionally here, it will get turned off again later
 | 
			
		||||
// if no threading API is detected.
 | 
			
		||||
//
 | 
			
		||||
#define BOOST_HAS_THREADS
 | 
			
		||||
#define BOOST_NO_TWO_PHASE_NAME_LOOKUP
 | 
			
		||||
 | 
			
		||||
#undef BOOST_NO_SWPRINTF
 | 
			
		||||
#undef BOOST_DEDUCED_TYPENAME
 | 
			
		||||
 | 
			
		||||
//
 | 
			
		||||
// version check:
 | 
			
		||||
// probably nothing to do here?
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										183
									
								
								boost/config/compiler/sunpro_cc.hpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										183
									
								
								boost/config/compiler/sunpro_cc.hpp
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,183 @@
 | 
			
		|||
//  (C) Copyright John Maddock 2001.
 | 
			
		||||
//  (C) Copyright Jens Maurer 2001 - 2003.
 | 
			
		||||
//  (C) Copyright Peter Dimov 2002.
 | 
			
		||||
//  (C) Copyright Aleksey Gurtovoy 2002 - 2003.
 | 
			
		||||
//  (C) Copyright David Abrahams 2002.
 | 
			
		||||
//  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.
 | 
			
		||||
 | 
			
		||||
//  Sun C++ compiler setup:
 | 
			
		||||
 | 
			
		||||
#    if __SUNPRO_CC <= 0x500
 | 
			
		||||
#      define BOOST_NO_MEMBER_TEMPLATES
 | 
			
		||||
#      define BOOST_NO_FUNCTION_TEMPLATE_ORDERING
 | 
			
		||||
#    endif
 | 
			
		||||
 | 
			
		||||
#    if (__SUNPRO_CC <= 0x520)
 | 
			
		||||
       //
 | 
			
		||||
       // Sunpro 5.2 and earler:
 | 
			
		||||
       //
 | 
			
		||||
       // although sunpro 5.2 supports the syntax for
 | 
			
		||||
       // inline initialization it often gets the value
 | 
			
		||||
       // wrong, especially where the value is computed
 | 
			
		||||
       // from other constants (J Maddock 6th May 2001)
 | 
			
		||||
#      define BOOST_NO_INCLASS_MEMBER_INITIALIZATION
 | 
			
		||||
 | 
			
		||||
       // Although sunpro 5.2 supports the syntax for
 | 
			
		||||
       // partial specialization, it often seems to
 | 
			
		||||
       // bind to the wrong specialization.  Better
 | 
			
		||||
       // to disable it until suppport becomes more stable
 | 
			
		||||
       // (J Maddock 6th May 2001).
 | 
			
		||||
#      define BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 | 
			
		||||
#    endif
 | 
			
		||||
 | 
			
		||||
#    if (__SUNPRO_CC <= 0x530)
 | 
			
		||||
       // Requesting debug info (-g) with Boost.Python results
 | 
			
		||||
       // in an internal compiler error for "static const"
 | 
			
		||||
       // initialized in-class.
 | 
			
		||||
       //    >> Assertion:   (../links/dbg_cstabs.cc, line 611)
 | 
			
		||||
       //         while processing ../test.cpp at line 0.
 | 
			
		||||
       // (Jens Maurer according to Gottfried Ganssauge 04 Mar 2002)
 | 
			
		||||
#      define BOOST_NO_INCLASS_MEMBER_INITIALIZATION
 | 
			
		||||
 | 
			
		||||
       // SunPro 5.3 has better support for partial specialization,
 | 
			
		||||
       // but breaks when compiling std::less<shared_ptr<T> >
 | 
			
		||||
       // (Jens Maurer 4 Nov 2001).
 | 
			
		||||
 | 
			
		||||
       // std::less specialization fixed as reported by George
 | 
			
		||||
       // Heintzelman; partial specialization re-enabled
 | 
			
		||||
       // (Peter Dimov 17 Jan 2002)
 | 
			
		||||
 | 
			
		||||
//#      define BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
 | 
			
		||||
 | 
			
		||||
       // integral constant expressions with 64 bit numbers fail
 | 
			
		||||
#      define BOOST_NO_INTEGRAL_INT64_T
 | 
			
		||||
#    endif
 | 
			
		||||
 | 
			
		||||
#    if (__SUNPRO_CC < 0x570)
 | 
			
		||||
#      define BOOST_NO_TEMPLATE_TEMPLATES
 | 
			
		||||
       // see http://lists.boost.org/MailArchives/boost/msg47184.php
 | 
			
		||||
       // and http://lists.boost.org/MailArchives/boost/msg47220.php
 | 
			
		||||
#      define BOOST_NO_INCLASS_MEMBER_INITIALIZATION
 | 
			
		||||
#      define BOOST_NO_SFINAE
 | 
			
		||||
#      define BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS
 | 
			
		||||
#    endif
 | 
			
		||||
#    if (__SUNPRO_CC <= 0x580)
 | 
			
		||||
#      define BOOST_NO_IS_ABSTRACT
 | 
			
		||||
#    endif
 | 
			
		||||
 | 
			
		||||
#    if (__SUNPRO_CC <= 0x5100)
 | 
			
		||||
       // Sun 5.10 may not correctly value-initialize objects of
 | 
			
		||||
       // some user defined types, as was reported in April 2010
 | 
			
		||||
       // (CR 6947016), and confirmed by Steve Clamage.
 | 
			
		||||
       // (Niels Dekker, LKEB, May 2010).
 | 
			
		||||
#      define BOOST_NO_COMPLETE_VALUE_INITIALIZATION
 | 
			
		||||
#    endif
 | 
			
		||||
 | 
			
		||||
//
 | 
			
		||||
// Dynamic shared object (DSO) and dynamic-link library (DLL) support
 | 
			
		||||
//
 | 
			
		||||
#if __SUNPRO_CC > 0x500
 | 
			
		||||
#  define BOOST_SYMBOL_EXPORT __global
 | 
			
		||||
#  define BOOST_SYMBOL_IMPORT __global
 | 
			
		||||
#  define BOOST_SYMBOL_VISIBLE __global
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
//
 | 
			
		||||
// Issues that effect all known versions:
 | 
			
		||||
//
 | 
			
		||||
#define BOOST_NO_TWO_PHASE_NAME_LOOKUP
 | 
			
		||||
#define BOOST_NO_ADL_BARRIER
 | 
			
		||||
 | 
			
		||||
//
 | 
			
		||||
// C++0x features
 | 
			
		||||
//
 | 
			
		||||
#  define BOOST_HAS_LONG_LONG
 | 
			
		||||
 | 
			
		||||
#define BOOST_NO_CXX11_AUTO_DECLARATIONS
 | 
			
		||||
#define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
 | 
			
		||||
#define BOOST_NO_CXX11_CHAR16_T
 | 
			
		||||
#define BOOST_NO_CXX11_CHAR32_T
 | 
			
		||||
#define BOOST_NO_CXX11_CONSTEXPR
 | 
			
		||||
#define BOOST_NO_CXX11_DECLTYPE
 | 
			
		||||
#define BOOST_NO_CXX11_DECLTYPE_N3276
 | 
			
		||||
#define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
 | 
			
		||||
#define BOOST_NO_CXX11_DELETED_FUNCTIONS
 | 
			
		||||
#define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
 | 
			
		||||
#define BOOST_NO_CXX11_EXTERN_TEMPLATE
 | 
			
		||||
#define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
 | 
			
		||||
#define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
 | 
			
		||||
#define BOOST_NO_CXX11_LAMBDAS
 | 
			
		||||
#define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
 | 
			
		||||
#define BOOST_NO_CXX11_NOEXCEPT
 | 
			
		||||
#define BOOST_NO_CXX11_NULLPTR
 | 
			
		||||
#define BOOST_NO_CXX11_RANGE_BASED_FOR
 | 
			
		||||
#define BOOST_NO_CXX11_RAW_LITERALS
 | 
			
		||||
#define BOOST_NO_CXX11_RVALUE_REFERENCES
 | 
			
		||||
#define BOOST_NO_CXX11_SCOPED_ENUMS
 | 
			
		||||
#define BOOST_NO_SFINAE_EXPR
 | 
			
		||||
#define BOOST_NO_CXX11_STATIC_ASSERT
 | 
			
		||||
#define BOOST_NO_CXX11_TEMPLATE_ALIASES
 | 
			
		||||
#define BOOST_NO_CXX11_UNICODE_LITERALS
 | 
			
		||||
#define BOOST_NO_CXX11_VARIADIC_TEMPLATES
 | 
			
		||||
#define BOOST_NO_CXX11_VARIADIC_MACROS
 | 
			
		||||
#define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
 | 
			
		||||
#define BOOST_NO_CXX11_USER_DEFINED_LITERALS
 | 
			
		||||
#define BOOST_NO_CXX11_ALIGNAS
 | 
			
		||||
#define BOOST_NO_CXX11_TRAILING_RESULT_TYPES
 | 
			
		||||
#define BOOST_NO_CXX11_INLINE_NAMESPACES
 | 
			
		||||
#define BOOST_NO_CXX11_REF_QUALIFIERS
 | 
			
		||||
#define BOOST_NO_CXX11_FINAL
 | 
			
		||||
 | 
			
		||||
// C++ 14:
 | 
			
		||||
#if !defined(__cpp_aggregate_nsdmi) || (__cpp_aggregate_nsdmi < 201304)
 | 
			
		||||
#  define BOOST_NO_CXX14_AGGREGATE_NSDMI
 | 
			
		||||
#endif
 | 
			
		||||
#if !defined(__cpp_binary_literals) || (__cpp_binary_literals < 201304)
 | 
			
		||||
#  define BOOST_NO_CXX14_BINARY_LITERALS
 | 
			
		||||
#endif
 | 
			
		||||
#if !defined(__cpp_constexpr) || (__cpp_constexpr < 201304)
 | 
			
		||||
#  define BOOST_NO_CXX14_CONSTEXPR
 | 
			
		||||
#endif
 | 
			
		||||
#if !defined(__cpp_decltype_auto) || (__cpp_decltype_auto < 201304)
 | 
			
		||||
#  define BOOST_NO_CXX14_DECLTYPE_AUTO
 | 
			
		||||
#endif
 | 
			
		||||
#if (__cplusplus < 201304) // There's no SD6 check for this....
 | 
			
		||||
#  define BOOST_NO_CXX14_DIGIT_SEPARATORS
 | 
			
		||||
#endif
 | 
			
		||||
#if !defined(__cpp_generic_lambdas) || (__cpp_generic_lambdas < 201304)
 | 
			
		||||
#  define BOOST_NO_CXX14_GENERIC_LAMBDAS
 | 
			
		||||
#endif
 | 
			
		||||
#if !defined(__cpp_init_captures) || (__cpp_init_captures < 201304)
 | 
			
		||||
#  define BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES
 | 
			
		||||
#endif
 | 
			
		||||
#if !defined(__cpp_return_type_deduction) || (__cpp_return_type_deduction < 201304)
 | 
			
		||||
#  define BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION
 | 
			
		||||
#endif
 | 
			
		||||
#if !defined(__cpp_variable_templates) || (__cpp_variable_templates < 201304)
 | 
			
		||||
#  define BOOST_NO_CXX14_VARIABLE_TEMPLATES
 | 
			
		||||
#endif
 | 
			
		||||
//
 | 
			
		||||
// Version
 | 
			
		||||
//
 | 
			
		||||
 | 
			
		||||
#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
 | 
			
		||||
#error "Compiler not supported or configured - please reconfigure"
 | 
			
		||||
#endif
 | 
			
		||||
//
 | 
			
		||||
// last known and checked version is 0x590:
 | 
			
		||||
#if (__SUNPRO_CC > 0x590)
 | 
			
		||||
#  if defined(BOOST_ASSERT_CONFIG)
 | 
			
		||||
#     error "Unknown compiler version - please run the configure tests and report the results"
 | 
			
		||||
#  endif
 | 
			
		||||
#endif
 | 
			
		||||
							
								
								
									
										162
									
								
								boost/config/compiler/vacpp.hpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										162
									
								
								boost/config/compiler/vacpp.hpp
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,162 @@
 | 
			
		|||
//  (C) Copyright John Maddock 2001 - 2003.
 | 
			
		||||
//  (C) Copyright Toon Knapen 2001 - 2003.
 | 
			
		||||
//  (C) Copyright Lie-Quan Lee 2001.
 | 
			
		||||
//  (C) Copyright Markus Schoepflin 2002 - 2003.
 | 
			
		||||
//  (C) Copyright Beman Dawes 2002 - 2003.
 | 
			
		||||
//  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.
 | 
			
		||||
 | 
			
		||||
//  Visual Age (IBM) C++ compiler setup:
 | 
			
		||||
 | 
			
		||||
#if __IBMCPP__ <= 501
 | 
			
		||||
#  define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
 | 
			
		||||
#  define BOOST_NO_MEMBER_FUNCTION_SPECIALIZATIONS
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if (__IBMCPP__ <= 502)
 | 
			
		||||
// Actually the compiler supports inclass member initialization but it
 | 
			
		||||
// requires a definition for the class member and it doesn't recognize
 | 
			
		||||
// it as an integral constant expression when used as a template argument.
 | 
			
		||||
#  define BOOST_NO_INCLASS_MEMBER_INITIALIZATION
 | 
			
		||||
#  define BOOST_NO_INTEGRAL_INT64_T
 | 
			
		||||
#  define BOOST_NO_MEMBER_TEMPLATE_KEYWORD
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if (__IBMCPP__ <= 600) || !defined(BOOST_STRICT_CONFIG)
 | 
			
		||||
#  define BOOST_NO_POINTER_TO_MEMBER_TEMPLATE_PARAMETERS
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if (__IBMCPP__ <= 1110)
 | 
			
		||||
// 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.
 | 
			
		||||
// Michael Wong (IBM Canada Ltd) has confirmed this issue and gave it
 | 
			
		||||
// high priority. -- Niels Dekker (LKEB), May 2010.
 | 
			
		||||
#  define BOOST_NO_COMPLETE_VALUE_INITIALIZATION
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
//
 | 
			
		||||
// On AIX thread support seems to be indicated by _THREAD_SAFE:
 | 
			
		||||
//
 | 
			
		||||
#ifdef _THREAD_SAFE
 | 
			
		||||
#  define BOOST_HAS_THREADS
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#define BOOST_COMPILER "IBM Visual Age version " BOOST_STRINGIZE(__IBMCPP__)
 | 
			
		||||
 | 
			
		||||
//
 | 
			
		||||
// versions check:
 | 
			
		||||
// we don't support Visual age prior to version 5:
 | 
			
		||||
#if __IBMCPP__ < 500
 | 
			
		||||
#error "Compiler not supported or configured - please reconfigure"
 | 
			
		||||
#endif
 | 
			
		||||
//
 | 
			
		||||
// last known and checked version is 1210:
 | 
			
		||||
#if (__IBMCPP__ > 1210)
 | 
			
		||||
#  if defined(BOOST_ASSERT_CONFIG)
 | 
			
		||||
#     error "Unknown compiler version - please run the configure tests and report the results"
 | 
			
		||||
#  endif
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
// Some versions of the compiler have issues with default arguments on partial specializations
 | 
			
		||||
#if __IBMCPP__ <= 1010
 | 
			
		||||
#define BOOST_NO_PARTIAL_SPECIALIZATION_IMPLICIT_DEFAULT_ARGS
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
//
 | 
			
		||||
// C++0x features
 | 
			
		||||
//
 | 
			
		||||
//   See boost\config\suffix.hpp for BOOST_NO_LONG_LONG
 | 
			
		||||
//
 | 
			
		||||
#if ! __IBMCPP_AUTO_TYPEDEDUCTION
 | 
			
		||||
#  define BOOST_NO_CXX11_AUTO_DECLARATIONS
 | 
			
		||||
#  define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
 | 
			
		||||
#endif
 | 
			
		||||
#if ! __IBMCPP_UTF_LITERAL__
 | 
			
		||||
#  define BOOST_NO_CXX11_CHAR16_T
 | 
			
		||||
#  define BOOST_NO_CXX11_CHAR32_T
 | 
			
		||||
#endif
 | 
			
		||||
#if ! __IBMCPP_CONSTEXPR
 | 
			
		||||
#  define BOOST_NO_CXX11_CONSTEXPR
 | 
			
		||||
#endif
 | 
			
		||||
#if ! __IBMCPP_DECLTYPE
 | 
			
		||||
#  define BOOST_NO_CXX11_DECLTYPE
 | 
			
		||||
#else
 | 
			
		||||
#  define BOOST_HAS_DECLTYPE
 | 
			
		||||
#endif
 | 
			
		||||
#define BOOST_NO_CXX11_DECLTYPE_N3276
 | 
			
		||||
#define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
 | 
			
		||||
#define BOOST_NO_CXX11_DELETED_FUNCTIONS
 | 
			
		||||
#if ! __IBMCPP_EXPLICIT_CONVERSION_OPERATORS
 | 
			
		||||
#  define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
 | 
			
		||||
#endif
 | 
			
		||||
#if ! __IBMCPP_EXTERN_TEMPLATE
 | 
			
		||||
#  define BOOST_NO_CXX11_EXTERN_TEMPLATE
 | 
			
		||||
#endif
 | 
			
		||||
#if ! __IBMCPP_VARIADIC_TEMPLATES
 | 
			
		||||
// not enabled separately at this time
 | 
			
		||||
#  define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
 | 
			
		||||
#endif
 | 
			
		||||
#define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
 | 
			
		||||
#define BOOST_NO_CXX11_LAMBDAS
 | 
			
		||||
#define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
 | 
			
		||||
#define BOOST_NO_CXX11_NOEXCEPT
 | 
			
		||||
#define BOOST_NO_CXX11_NULLPTR
 | 
			
		||||
#define BOOST_NO_CXX11_RANGE_BASED_FOR
 | 
			
		||||
#define BOOST_NO_CXX11_RAW_LITERALS
 | 
			
		||||
#define BOOST_NO_CXX11_USER_DEFINED_LITERALS
 | 
			
		||||
#if ! __IBMCPP_RVALUE_REFERENCES
 | 
			
		||||
#  define BOOST_NO_CXX11_RVALUE_REFERENCES
 | 
			
		||||
#endif
 | 
			
		||||
#if ! __IBMCPP_SCOPED_ENUM
 | 
			
		||||
#  define BOOST_NO_CXX11_SCOPED_ENUMS
 | 
			
		||||
#endif
 | 
			
		||||
#define BOOST_NO_SFINAE_EXPR
 | 
			
		||||
#define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
 | 
			
		||||
#if ! __IBMCPP_STATIC_ASSERT
 | 
			
		||||
#  define BOOST_NO_CXX11_STATIC_ASSERT
 | 
			
		||||
#endif
 | 
			
		||||
#define BOOST_NO_CXX11_TEMPLATE_ALIASES
 | 
			
		||||
#define BOOST_NO_CXX11_UNICODE_LITERALS
 | 
			
		||||
#if ! __IBMCPP_VARIADIC_TEMPLATES
 | 
			
		||||
#  define BOOST_NO_CXX11_VARIADIC_TEMPLATES
 | 
			
		||||
#endif
 | 
			
		||||
#if ! __C99_MACRO_WITH_VA_ARGS
 | 
			
		||||
#  define BOOST_NO_CXX11_VARIADIC_MACROS
 | 
			
		||||
#endif
 | 
			
		||||
#define BOOST_NO_CXX11_ALIGNAS
 | 
			
		||||
#define BOOST_NO_CXX11_TRAILING_RESULT_TYPES
 | 
			
		||||
#define BOOST_NO_CXX11_INLINE_NAMESPACES
 | 
			
		||||
#define BOOST_NO_CXX11_REF_QUALIFIERS
 | 
			
		||||
#define BOOST_NO_CXX11_FINAL
 | 
			
		||||
 | 
			
		||||
// C++ 14:
 | 
			
		||||
#if !defined(__cpp_aggregate_nsdmi) || (__cpp_aggregate_nsdmi < 201304)
 | 
			
		||||
#  define BOOST_NO_CXX14_AGGREGATE_NSDMI
 | 
			
		||||
#endif
 | 
			
		||||
#if !defined(__cpp_binary_literals) || (__cpp_binary_literals < 201304)
 | 
			
		||||
#  define BOOST_NO_CXX14_BINARY_LITERALS
 | 
			
		||||
#endif
 | 
			
		||||
#if !defined(__cpp_constexpr) || (__cpp_constexpr < 201304)
 | 
			
		||||
#  define BOOST_NO_CXX14_CONSTEXPR
 | 
			
		||||
#endif
 | 
			
		||||
#if !defined(__cpp_decltype_auto) || (__cpp_decltype_auto < 201304)
 | 
			
		||||
#  define BOOST_NO_CXX14_DECLTYPE_AUTO
 | 
			
		||||
#endif
 | 
			
		||||
#if (__cplusplus < 201304) // There's no SD6 check for this....
 | 
			
		||||
#  define BOOST_NO_CXX14_DIGIT_SEPARATORS
 | 
			
		||||
#endif
 | 
			
		||||
#if !defined(__cpp_generic_lambdas) || (__cpp_generic_lambdas < 201304)
 | 
			
		||||
#  define BOOST_NO_CXX14_GENERIC_LAMBDAS
 | 
			
		||||
#endif
 | 
			
		||||
#if !defined(__cpp_init_captures) || (__cpp_init_captures < 201304)
 | 
			
		||||
#  define BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES
 | 
			
		||||
#endif
 | 
			
		||||
#if !defined(__cpp_return_type_deduction) || (__cpp_return_type_deduction < 201304)
 | 
			
		||||
#  define BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION
 | 
			
		||||
#endif
 | 
			
		||||
#if !defined(__cpp_variable_templates) || (__cpp_variable_templates < 201304)
 | 
			
		||||
#  define BOOST_NO_CXX14_VARIABLE_TEMPLATES
 | 
			
		||||
#endif
 | 
			
		||||
							
								
								
									
										300
									
								
								boost/config/compiler/visualc.hpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										300
									
								
								boost/config/compiler/visualc.hpp
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,300 @@
 | 
			
		|||
//  (C) Copyright John Maddock 2001 - 2003.
 | 
			
		||||
//  (C) Copyright Darin Adler 2001 - 2002.
 | 
			
		||||
//  (C) Copyright Peter Dimov 2001.
 | 
			
		||||
//  (C) Copyright Aleksey Gurtovoy 2002.
 | 
			
		||||
//  (C) Copyright David Abrahams 2002 - 2003.
 | 
			
		||||
//  (C) Copyright Beman Dawes 2002 - 2003.
 | 
			
		||||
//  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.
 | 
			
		||||
//
 | 
			
		||||
//  Microsoft Visual C++ compiler setup:
 | 
			
		||||
//
 | 
			
		||||
//  We need to be careful with the checks in this file, as contrary
 | 
			
		||||
//  to popular belief there are versions with _MSC_VER with the final
 | 
			
		||||
//  digit non-zero (mainly the MIPS cross compiler).
 | 
			
		||||
//
 | 
			
		||||
//  So we either test _MSC_VER >= XXXX or else _MSC_VER < XXXX.
 | 
			
		||||
//  No other comparisons (==, >, or <=) are safe.
 | 
			
		||||
//
 | 
			
		||||
 | 
			
		||||
#define BOOST_MSVC _MSC_VER
 | 
			
		||||
 | 
			
		||||
//
 | 
			
		||||
// Helper macro BOOST_MSVC_FULL_VER for use in Boost code:
 | 
			
		||||
//
 | 
			
		||||
#if _MSC_FULL_VER > 100000000
 | 
			
		||||
#  define BOOST_MSVC_FULL_VER _MSC_FULL_VER
 | 
			
		||||
#else
 | 
			
		||||
#  define BOOST_MSVC_FULL_VER (_MSC_FULL_VER * 10)
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
// Attempt to suppress VC6 warnings about the length of decorated names (obsolete):
 | 
			
		||||
#pragma warning( disable : 4503 ) // warning: decorated name length exceeded
 | 
			
		||||
 | 
			
		||||
#define BOOST_HAS_PRAGMA_ONCE
 | 
			
		||||
 | 
			
		||||
//
 | 
			
		||||
// versions check:
 | 
			
		||||
// we don't support Visual C++ prior to version 7.1:
 | 
			
		||||
#if _MSC_VER < 1310
 | 
			
		||||
#  error "Compiler not supported or configured - please reconfigure"
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if _MSC_FULL_VER < 180020827
 | 
			
		||||
#  define BOOST_NO_FENV_H
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if _MSC_VER < 1400
 | 
			
		||||
// although a conforming signature for swprint exists in VC7.1
 | 
			
		||||
// it appears not to actually work:
 | 
			
		||||
#  define BOOST_NO_SWPRINTF
 | 
			
		||||
// Our extern template tests also fail for this compiler:
 | 
			
		||||
#  define BOOST_NO_CXX11_EXTERN_TEMPLATE
 | 
			
		||||
// Variadic macros do not exist for VC7.1 and lower
 | 
			
		||||
#  define BOOST_NO_CXX11_VARIADIC_MACROS
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if _MSC_VER < 1500  // 140X == VC++ 8.0
 | 
			
		||||
#  define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if _MSC_VER < 1600  // 150X == VC++ 9.0
 | 
			
		||||
   // A bug in VC9:
 | 
			
		||||
#  define BOOST_NO_ADL_BARRIER
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
// MSVC (including the latest checked version) has not yet completely
 | 
			
		||||
// implemented value-initialization, as is reported:
 | 
			
		||||
// "VC++ does not value-initialize members of derived classes without
 | 
			
		||||
// user-declared constructor", reported in 2009 by Sylvester Hesp:
 | 
			
		||||
// https://connect.microsoft.com/VisualStudio/feedback/details/484295
 | 
			
		||||
// "Presence of copy constructor breaks member class initialization",
 | 
			
		||||
// reported in 2009 by Alex Vakulenko:
 | 
			
		||||
// https://connect.microsoft.com/VisualStudio/feedback/details/499606
 | 
			
		||||
// "Value-initialization in new-expression", reported in 2005 by
 | 
			
		||||
// Pavel Kuznetsov (MetaCommunications Engineering):
 | 
			
		||||
// https://connect.microsoft.com/VisualStudio/feedback/details/100744
 | 
			
		||||
// See also: http://www.boost.org/libs/utility/value_init.htm#compiler_issues
 | 
			
		||||
// (Niels Dekker, LKEB, May 2010)
 | 
			
		||||
#  define BOOST_NO_COMPLETE_VALUE_INITIALIZATION
 | 
			
		||||
 | 
			
		||||
#ifndef _NATIVE_WCHAR_T_DEFINED
 | 
			
		||||
#  define BOOST_NO_INTRINSIC_WCHAR_T
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
//
 | 
			
		||||
// check for exception handling support:
 | 
			
		||||
#if !defined(_CPPUNWIND) && !defined(BOOST_NO_EXCEPTIONS)
 | 
			
		||||
#  define BOOST_NO_EXCEPTIONS
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
//
 | 
			
		||||
// __int64 support:
 | 
			
		||||
//
 | 
			
		||||
#define BOOST_HAS_MS_INT64
 | 
			
		||||
#if defined(_MSC_EXTENSIONS) || (_MSC_VER >= 1400)
 | 
			
		||||
#   define BOOST_HAS_LONG_LONG
 | 
			
		||||
#else
 | 
			
		||||
#   define BOOST_NO_LONG_LONG
 | 
			
		||||
#endif
 | 
			
		||||
#if (_MSC_VER >= 1400) && !defined(_DEBUG)
 | 
			
		||||
#   define BOOST_HAS_NRVO
 | 
			
		||||
#endif
 | 
			
		||||
#if _MSC_VER >= 1500  // 150X == VC++ 9.0
 | 
			
		||||
#  define BOOST_HAS_PRAGMA_DETECT_MISMATCH
 | 
			
		||||
#endif
 | 
			
		||||
//
 | 
			
		||||
// disable Win32 API's if compiler extensions are
 | 
			
		||||
// turned off:
 | 
			
		||||
//
 | 
			
		||||
#if !defined(_MSC_EXTENSIONS) && !defined(BOOST_DISABLE_WIN32)
 | 
			
		||||
#  define BOOST_DISABLE_WIN32
 | 
			
		||||
#endif
 | 
			
		||||
#if !defined(_CPPRTTI) && !defined(BOOST_NO_RTTI)
 | 
			
		||||
#  define BOOST_NO_RTTI
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
//
 | 
			
		||||
// TR1 features:
 | 
			
		||||
//
 | 
			
		||||
#if _MSC_VER >= 1700
 | 
			
		||||
// # define BOOST_HAS_TR1_HASH			// don't know if this is true yet.
 | 
			
		||||
// # define BOOST_HAS_TR1_TYPE_TRAITS	// don't know if this is true yet.
 | 
			
		||||
# define BOOST_HAS_TR1_UNORDERED_MAP
 | 
			
		||||
# define BOOST_HAS_TR1_UNORDERED_SET
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
//
 | 
			
		||||
// C++0x features
 | 
			
		||||
//
 | 
			
		||||
//   See above for BOOST_NO_LONG_LONG
 | 
			
		||||
 | 
			
		||||
// C++ features supported by VC++ 10 (aka 2010)
 | 
			
		||||
//
 | 
			
		||||
#if _MSC_VER < 1600
 | 
			
		||||
#  define BOOST_NO_CXX11_AUTO_DECLARATIONS
 | 
			
		||||
#  define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
 | 
			
		||||
#  define BOOST_NO_CXX11_LAMBDAS
 | 
			
		||||
#  define BOOST_NO_CXX11_RVALUE_REFERENCES
 | 
			
		||||
#  define BOOST_NO_CXX11_STATIC_ASSERT
 | 
			
		||||
#  define BOOST_NO_CXX11_NULLPTR
 | 
			
		||||
#  define BOOST_NO_CXX11_DECLTYPE
 | 
			
		||||
#endif // _MSC_VER < 1600
 | 
			
		||||
 | 
			
		||||
#if _MSC_VER >= 1600
 | 
			
		||||
#  define BOOST_HAS_STDINT_H
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
// C++11 features supported by VC++ 11 (aka 2012)
 | 
			
		||||
//
 | 
			
		||||
#if _MSC_VER < 1700
 | 
			
		||||
#  define BOOST_NO_CXX11_FINAL
 | 
			
		||||
#  define BOOST_NO_CXX11_RANGE_BASED_FOR
 | 
			
		||||
#  define BOOST_NO_CXX11_SCOPED_ENUMS
 | 
			
		||||
#endif // _MSC_VER < 1700
 | 
			
		||||
 | 
			
		||||
// C++11 features supported by VC++ 12 (aka 2013).
 | 
			
		||||
//
 | 
			
		||||
#if _MSC_FULL_VER < 180020827
 | 
			
		||||
#  define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
 | 
			
		||||
#  define BOOST_NO_CXX11_DELETED_FUNCTIONS
 | 
			
		||||
#  define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
 | 
			
		||||
#  define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
 | 
			
		||||
#  define BOOST_NO_CXX11_RAW_LITERALS
 | 
			
		||||
#  define BOOST_NO_CXX11_TEMPLATE_ALIASES
 | 
			
		||||
#  define BOOST_NO_CXX11_TRAILING_RESULT_TYPES
 | 
			
		||||
#  define BOOST_NO_CXX11_VARIADIC_TEMPLATES
 | 
			
		||||
#  define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
 | 
			
		||||
#  define BOOST_NO_CXX11_DECLTYPE_N3276
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
// C++11 features supported by VC++ 14 (aka 2014) CTP1
 | 
			
		||||
// Because the CTP is unsupported, unrelease, and only alpha quality,
 | 
			
		||||
// it is only supported if BOOST_MSVC_ENABLE_2014_JUN_CTP is defined.
 | 
			
		||||
//
 | 
			
		||||
#if (_MSC_FULL_VER < 190021730) || !defined(BOOST_MSVC_ENABLE_2014_JUN_CTP)
 | 
			
		||||
#  define BOOST_NO_CXX11_NOEXCEPT
 | 
			
		||||
#  define BOOST_NO_CXX11_REF_QUALIFIERS
 | 
			
		||||
#  define BOOST_NO_CXX11_USER_DEFINED_LITERALS
 | 
			
		||||
#  define BOOST_NO_CXX11_ALIGNAS
 | 
			
		||||
#  define BOOST_NO_CXX11_INLINE_NAMESPACES
 | 
			
		||||
#  define BOOST_NO_CXX14_DECLTYPE_AUTO
 | 
			
		||||
#  define BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES
 | 
			
		||||
#  define BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
// C++11 features not supported by any versions
 | 
			
		||||
#define BOOST_NO_CXX11_CHAR16_T
 | 
			
		||||
#define BOOST_NO_CXX11_CHAR32_T
 | 
			
		||||
#define BOOST_NO_CXX11_CONSTEXPR
 | 
			
		||||
#define BOOST_NO_CXX11_UNICODE_LITERALS
 | 
			
		||||
#define BOOST_NO_SFINAE_EXPR
 | 
			
		||||
#define BOOST_NO_TWO_PHASE_NAME_LOOKUP
 | 
			
		||||
 | 
			
		||||
// C++ 14:
 | 
			
		||||
#if !defined(__cpp_aggregate_nsdmi) || (__cpp_aggregate_nsdmi < 201304)
 | 
			
		||||
#  define BOOST_NO_CXX14_AGGREGATE_NSDMI
 | 
			
		||||
#endif
 | 
			
		||||
#if !defined(__cpp_binary_literals) || (__cpp_binary_literals < 201304)
 | 
			
		||||
#  define BOOST_NO_CXX14_BINARY_LITERALS
 | 
			
		||||
#endif
 | 
			
		||||
#if !defined(__cpp_constexpr) || (__cpp_constexpr < 201304)
 | 
			
		||||
#  define BOOST_NO_CXX14_CONSTEXPR
 | 
			
		||||
#endif
 | 
			
		||||
#if (__cplusplus < 201304) // There's no SD6 check for this....
 | 
			
		||||
#  define BOOST_NO_CXX14_DIGIT_SEPARATORS
 | 
			
		||||
#endif
 | 
			
		||||
#if !defined(__cpp_generic_lambdas) || (__cpp_generic_lambdas < 201304)
 | 
			
		||||
#  define BOOST_NO_CXX14_GENERIC_LAMBDAS
 | 
			
		||||
#endif
 | 
			
		||||
#if !defined(__cpp_variable_templates) || (__cpp_variable_templates < 201304)
 | 
			
		||||
#  define BOOST_NO_CXX14_VARIABLE_TEMPLATES
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
//
 | 
			
		||||
// prefix and suffix headers:
 | 
			
		||||
//
 | 
			
		||||
#ifndef BOOST_ABI_PREFIX
 | 
			
		||||
#  define BOOST_ABI_PREFIX "boost/config/abi/msvc_prefix.hpp"
 | 
			
		||||
#endif
 | 
			
		||||
#ifndef BOOST_ABI_SUFFIX
 | 
			
		||||
#  define BOOST_ABI_SUFFIX "boost/config/abi/msvc_suffix.hpp"
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#ifndef BOOST_COMPILER
 | 
			
		||||
// TODO:
 | 
			
		||||
// these things are mostly bogus. 1200 means version 12.0 of the compiler. The
 | 
			
		||||
// artificial versions assigned to them only refer to the versions of some IDE
 | 
			
		||||
// these compilers have been shipped with, and even that is not all of it. Some
 | 
			
		||||
// were shipped with freely downloadable SDKs, others as crosscompilers in eVC.
 | 
			
		||||
// IOW, you can't use these 'versions' in any sensible way. Sorry.
 | 
			
		||||
# if defined(UNDER_CE)
 | 
			
		||||
#   if _MSC_VER < 1400
 | 
			
		||||
      // Note: I'm not aware of any CE compiler with version 13xx
 | 
			
		||||
#      if defined(BOOST_ASSERT_CONFIG)
 | 
			
		||||
#         error "Unknown EVC++ compiler version - please run the configure tests and report the results"
 | 
			
		||||
#      else
 | 
			
		||||
#         pragma message("Unknown EVC++ compiler version - please run the configure tests and report the results")
 | 
			
		||||
#      endif
 | 
			
		||||
#   elif _MSC_VER < 1500
 | 
			
		||||
#     define BOOST_COMPILER_VERSION evc8
 | 
			
		||||
#   elif _MSC_VER < 1600
 | 
			
		||||
#     define BOOST_COMPILER_VERSION evc9
 | 
			
		||||
#   elif _MSC_VER < 1700
 | 
			
		||||
#     define BOOST_COMPILER_VERSION evc10
 | 
			
		||||
#   elif _MSC_VER < 1800 
 | 
			
		||||
#     define BOOST_COMPILER_VERSION evc11 
 | 
			
		||||
#   elif _MSC_VER < 1900 
 | 
			
		||||
#     define BOOST_COMPILER_VERSION evc12
 | 
			
		||||
#   elif _MSC_VER < 2000  
 | 
			
		||||
#     define BOOST_COMPILER_VERSION evc14
 | 
			
		||||
#   else
 | 
			
		||||
#      if defined(BOOST_ASSERT_CONFIG)
 | 
			
		||||
#         error "Unknown EVC++ compiler version - please run the configure tests and report the results"
 | 
			
		||||
#      else
 | 
			
		||||
#         pragma message("Unknown EVC++ compiler version - please run the configure tests and report the results")
 | 
			
		||||
#      endif
 | 
			
		||||
#   endif
 | 
			
		||||
# else
 | 
			
		||||
#   if _MSC_VER < 1310
 | 
			
		||||
      // Note: Versions up to 7.0 aren't supported.
 | 
			
		||||
#     define BOOST_COMPILER_VERSION 5.0
 | 
			
		||||
#   elif _MSC_VER < 1300
 | 
			
		||||
#     define BOOST_COMPILER_VERSION 6.0
 | 
			
		||||
#   elif _MSC_VER < 1310
 | 
			
		||||
#     define BOOST_COMPILER_VERSION 7.0
 | 
			
		||||
#   elif _MSC_VER < 1400
 | 
			
		||||
#     define BOOST_COMPILER_VERSION 7.1
 | 
			
		||||
#   elif _MSC_VER < 1500
 | 
			
		||||
#     define BOOST_COMPILER_VERSION 8.0
 | 
			
		||||
#   elif _MSC_VER < 1600
 | 
			
		||||
#     define BOOST_COMPILER_VERSION 9.0
 | 
			
		||||
#   elif _MSC_VER < 1700
 | 
			
		||||
#     define BOOST_COMPILER_VERSION 10.0
 | 
			
		||||
#   elif _MSC_VER < 1800 
 | 
			
		||||
#     define BOOST_COMPILER_VERSION 11.0
 | 
			
		||||
#   elif _MSC_VER < 1900
 | 
			
		||||
#     define BOOST_COMPILER_VERSION 12.0
 | 
			
		||||
#   elif _MSC_VER < 2000
 | 
			
		||||
#     define BOOST_COMPILER_VERSION 14.0
 | 
			
		||||
#   else
 | 
			
		||||
#     define BOOST_COMPILER_VERSION _MSC_VER
 | 
			
		||||
#   endif
 | 
			
		||||
# endif
 | 
			
		||||
 | 
			
		||||
#  define BOOST_COMPILER "Microsoft Visual C++ version " BOOST_STRINGIZE(BOOST_COMPILER_VERSION)
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
//
 | 
			
		||||
// last known and checked version is 19.00.22129 (VC14 CTP4):
 | 
			
		||||
#if (_MSC_VER > 1800 && _MSC_FULL_VER > 190022129)
 | 
			
		||||
#  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
 | 
			
		||||
							
								
								
									
										28
									
								
								boost/config/no_tr1/cmath.hpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										28
									
								
								boost/config/no_tr1/cmath.hpp
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,28 @@
 | 
			
		|||
//  (C) Copyright John Maddock 2008.
 | 
			
		||||
//  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)
 | 
			
		||||
//
 | 
			
		||||
// 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
 | 
			
		||||
// the Boost TR1 components if boost/tr1/tr1/cmath is in the
 | 
			
		||||
// include search path.  We have to do this to avoid circular
 | 
			
		||||
// dependencies:
 | 
			
		||||
//
 | 
			
		||||
 | 
			
		||||
#ifndef BOOST_CONFIG_CMATH
 | 
			
		||||
#  define BOOST_CONFIG_CMATH
 | 
			
		||||
 | 
			
		||||
#  ifndef BOOST_TR1_NO_RECURSION
 | 
			
		||||
#     define BOOST_TR1_NO_RECURSION
 | 
			
		||||
#     define BOOST_CONFIG_NO_CMATH_RECURSION
 | 
			
		||||
#  endif
 | 
			
		||||
 | 
			
		||||
#  include <cmath>
 | 
			
		||||
 | 
			
		||||
#  ifdef BOOST_CONFIG_NO_CMATH_RECURSION
 | 
			
		||||
#     undef BOOST_TR1_NO_RECURSION
 | 
			
		||||
#     undef BOOST_CONFIG_NO_CMATH_RECURSION
 | 
			
		||||
#  endif
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
							
								
								
									
										28
									
								
								boost/config/no_tr1/complex.hpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										28
									
								
								boost/config/no_tr1/complex.hpp
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,28 @@
 | 
			
		|||
//  (C) Copyright John Maddock 2005.
 | 
			
		||||
//  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)
 | 
			
		||||
//
 | 
			
		||||
// 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
 | 
			
		||||
// the Boost TR1 components if boost/tr1/tr1/complex is in the
 | 
			
		||||
// include search path.  We have to do this to avoid circular
 | 
			
		||||
// dependencies:
 | 
			
		||||
//
 | 
			
		||||
 | 
			
		||||
#ifndef BOOST_CONFIG_COMPLEX
 | 
			
		||||
#  define BOOST_CONFIG_COMPLEX
 | 
			
		||||
 | 
			
		||||
#  ifndef BOOST_TR1_NO_RECURSION
 | 
			
		||||
#     define BOOST_TR1_NO_RECURSION
 | 
			
		||||
#     define BOOST_CONFIG_NO_COMPLEX_RECURSION
 | 
			
		||||
#  endif
 | 
			
		||||
 | 
			
		||||
#  include <complex>
 | 
			
		||||
 | 
			
		||||
#  ifdef BOOST_CONFIG_NO_COMPLEX_RECURSION
 | 
			
		||||
#     undef BOOST_TR1_NO_RECURSION
 | 
			
		||||
#     undef BOOST_CONFIG_NO_COMPLEX_RECURSION
 | 
			
		||||
#  endif
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
							
								
								
									
										28
									
								
								boost/config/no_tr1/functional.hpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										28
									
								
								boost/config/no_tr1/functional.hpp
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,28 @@
 | 
			
		|||
//  (C) Copyright John Maddock 2005.
 | 
			
		||||
//  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)
 | 
			
		||||
//
 | 
			
		||||
// 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
 | 
			
		||||
// the Boost TR1 components if boost/tr1/tr1/functional is in the
 | 
			
		||||
// include search path.  We have to do this to avoid circular
 | 
			
		||||
// dependencies:
 | 
			
		||||
//
 | 
			
		||||
 | 
			
		||||
#ifndef BOOST_CONFIG_FUNCTIONAL
 | 
			
		||||
#  define BOOST_CONFIG_FUNCTIONAL
 | 
			
		||||
 | 
			
		||||
#  ifndef BOOST_TR1_NO_RECURSION
 | 
			
		||||
#     define BOOST_TR1_NO_RECURSION
 | 
			
		||||
#     define BOOST_CONFIG_NO_FUNCTIONAL_RECURSION
 | 
			
		||||
#  endif
 | 
			
		||||
 | 
			
		||||
#  include <functional>
 | 
			
		||||
 | 
			
		||||
#  ifdef BOOST_CONFIG_NO_FUNCTIONAL_RECURSION
 | 
			
		||||
#     undef BOOST_TR1_NO_RECURSION
 | 
			
		||||
#     undef BOOST_CONFIG_NO_FUNCTIONAL_RECURSION
 | 
			
		||||
#  endif
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
							
								
								
									
										28
									
								
								boost/config/no_tr1/memory.hpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										28
									
								
								boost/config/no_tr1/memory.hpp
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,28 @@
 | 
			
		|||
//  (C) Copyright John Maddock 2005.
 | 
			
		||||
//  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)
 | 
			
		||||
//
 | 
			
		||||
// 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
 | 
			
		||||
// the Boost TR1 components if boost/tr1/tr1/memory is in the
 | 
			
		||||
// include search path.  We have to do this to avoid circular
 | 
			
		||||
// dependencies:
 | 
			
		||||
//
 | 
			
		||||
 | 
			
		||||
#ifndef BOOST_CONFIG_MEMORY
 | 
			
		||||
#  define BOOST_CONFIG_MEMORY
 | 
			
		||||
 | 
			
		||||
#  ifndef BOOST_TR1_NO_RECURSION
 | 
			
		||||
#     define BOOST_TR1_NO_RECURSION
 | 
			
		||||
#     define BOOST_CONFIG_NO_MEMORY_RECURSION
 | 
			
		||||
#  endif
 | 
			
		||||
 | 
			
		||||
#  include <memory>
 | 
			
		||||
 | 
			
		||||
#  ifdef BOOST_CONFIG_NO_MEMORY_RECURSION
 | 
			
		||||
#     undef BOOST_TR1_NO_RECURSION
 | 
			
		||||
#     undef BOOST_CONFIG_NO_MEMORY_RECURSION
 | 
			
		||||
#  endif
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
							
								
								
									
										28
									
								
								boost/config/no_tr1/utility.hpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										28
									
								
								boost/config/no_tr1/utility.hpp
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,28 @@
 | 
			
		|||
//  (C) Copyright John Maddock 2005.
 | 
			
		||||
//  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)
 | 
			
		||||
//
 | 
			
		||||
// 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
 | 
			
		||||
// the Boost TR1 components if boost/tr1/tr1/utility is in the
 | 
			
		||||
// include search path.  We have to do this to avoid circular
 | 
			
		||||
// dependencies:
 | 
			
		||||
//
 | 
			
		||||
 | 
			
		||||
#ifndef BOOST_CONFIG_UTILITY
 | 
			
		||||
#  define BOOST_CONFIG_UTILITY
 | 
			
		||||
 | 
			
		||||
#  ifndef BOOST_TR1_NO_RECURSION
 | 
			
		||||
#     define BOOST_TR1_NO_RECURSION
 | 
			
		||||
#     define BOOST_CONFIG_NO_UTILITY_RECURSION
 | 
			
		||||
#  endif
 | 
			
		||||
 | 
			
		||||
#  include <utility>
 | 
			
		||||
 | 
			
		||||
#  ifdef BOOST_CONFIG_NO_UTILITY_RECURSION
 | 
			
		||||
#     undef BOOST_TR1_NO_RECURSION
 | 
			
		||||
#     undef BOOST_CONFIG_NO_UTILITY_RECURSION
 | 
			
		||||
#  endif
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
							
								
								
									
										33
									
								
								boost/config/platform/aix.hpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										33
									
								
								boost/config/platform/aix.hpp
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,33 @@
 | 
			
		|||
//  (C) Copyright John Maddock 2001 - 2002. 
 | 
			
		||||
//  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.
 | 
			
		||||
 | 
			
		||||
//  IBM/Aix specific config options:
 | 
			
		||||
 | 
			
		||||
#define BOOST_PLATFORM "IBM Aix"
 | 
			
		||||
 | 
			
		||||
#define BOOST_HAS_UNISTD_H
 | 
			
		||||
#define BOOST_HAS_NL_TYPES_H
 | 
			
		||||
#define BOOST_HAS_NANOSLEEP
 | 
			
		||||
#define BOOST_HAS_CLOCK_GETTIME
 | 
			
		||||
 | 
			
		||||
// This needs support in "boost/cstdint.hpp" exactly like FreeBSD.
 | 
			
		||||
// This platform has header named <inttypes.h> which includes all
 | 
			
		||||
// the things needed.
 | 
			
		||||
#define BOOST_HAS_STDINT_H
 | 
			
		||||
 | 
			
		||||
// Threading API's:
 | 
			
		||||
#define BOOST_HAS_PTHREADS
 | 
			
		||||
#define BOOST_HAS_PTHREAD_DELAY_NP
 | 
			
		||||
#define BOOST_HAS_SCHED_YIELD
 | 
			
		||||
//#define BOOST_HAS_PTHREAD_YIELD
 | 
			
		||||
 | 
			
		||||
// boilerplate code:
 | 
			
		||||
#include <boost/config/posix_features.hpp>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										15
									
								
								boost/config/platform/amigaos.hpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								boost/config/platform/amigaos.hpp
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,15 @@
 | 
			
		|||
//  (C) Copyright John Maddock 2002. 
 | 
			
		||||
//  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.
 | 
			
		||||
 | 
			
		||||
#define BOOST_PLATFORM "AmigaOS"
 | 
			
		||||
 | 
			
		||||
#define BOOST_DISABLE_THREADS
 | 
			
		||||
#define BOOST_NO_CWCHAR
 | 
			
		||||
#define BOOST_NO_STD_WSTRING
 | 
			
		||||
#define BOOST_NO_INTRINSIC_WCHAR_T
 | 
			
		||||
 
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										26
									
								
								boost/config/platform/beos.hpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										26
									
								
								boost/config/platform/beos.hpp
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,26 @@
 | 
			
		|||
//  (C) Copyright John Maddock 2001. 
 | 
			
		||||
//  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.
 | 
			
		||||
 | 
			
		||||
//  BeOS specific config options:
 | 
			
		||||
 | 
			
		||||
#define BOOST_PLATFORM "BeOS"
 | 
			
		||||
 | 
			
		||||
#define BOOST_NO_CWCHAR
 | 
			
		||||
#define BOOST_NO_CWCTYPE
 | 
			
		||||
#define BOOST_HAS_UNISTD_H
 | 
			
		||||
 | 
			
		||||
#define BOOST_HAS_BETHREADS
 | 
			
		||||
 | 
			
		||||
#ifndef BOOST_DISABLE_THREADS
 | 
			
		||||
#  define BOOST_HAS_THREADS
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
// boilerplate code:
 | 
			
		||||
#include <boost/config/posix_features.hpp>
 | 
			
		||||
 
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										86
									
								
								boost/config/platform/bsd.hpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										86
									
								
								boost/config/platform/bsd.hpp
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,86 @@
 | 
			
		|||
//  (C) Copyright John Maddock 2001 - 2003. 
 | 
			
		||||
//  (C) Copyright Darin Adler 2001. 
 | 
			
		||||
//  (C) Copyright Douglas Gregor 2002. 
 | 
			
		||||
//  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.
 | 
			
		||||
 | 
			
		||||
//  generic BSD config options:
 | 
			
		||||
 | 
			
		||||
#if !defined(__FreeBSD__) && !defined(__NetBSD__) && !defined(__OpenBSD__) && !defined(__DragonFly__)
 | 
			
		||||
#error "This platform is not BSD"
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#ifdef __FreeBSD__
 | 
			
		||||
#define BOOST_PLATFORM "FreeBSD " BOOST_STRINGIZE(__FreeBSD__)
 | 
			
		||||
#elif defined(__NetBSD__)
 | 
			
		||||
#define BOOST_PLATFORM "NetBSD " BOOST_STRINGIZE(__NetBSD__)
 | 
			
		||||
#elif defined(__OpenBSD__)
 | 
			
		||||
#define BOOST_PLATFORM "OpenBSD " BOOST_STRINGIZE(__OpenBSD__)
 | 
			
		||||
#elif defined(__DragonFly__)
 | 
			
		||||
#define BOOST_PLATFORM "DragonFly " BOOST_STRINGIZE(__DragonFly__)
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
//
 | 
			
		||||
// is this the correct version check?
 | 
			
		||||
// FreeBSD has <nl_types.h> but does not
 | 
			
		||||
// advertise the fact in <unistd.h>:
 | 
			
		||||
//
 | 
			
		||||
#if (defined(__FreeBSD__) && (__FreeBSD__ >= 3)) || defined(__DragonFly__)
 | 
			
		||||
#  define BOOST_HAS_NL_TYPES_H
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
//
 | 
			
		||||
// FreeBSD 3.x has pthreads support, but defines _POSIX_THREADS in <pthread.h>
 | 
			
		||||
// and not in <unistd.h>
 | 
			
		||||
//
 | 
			
		||||
#if (defined(__FreeBSD__) && (__FreeBSD__ <= 3))\
 | 
			
		||||
   || defined(__OpenBSD__) || defined(__DragonFly__) 
 | 
			
		||||
#  define BOOST_HAS_PTHREADS
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
//
 | 
			
		||||
// No wide character support in the BSD header files:
 | 
			
		||||
//
 | 
			
		||||
#if defined(__NetBSD__)
 | 
			
		||||
#define __NetBSD_GCC__ (__GNUC__         * 1000000 \
 | 
			
		||||
                       + __GNUC_MINOR__ *    1000 \
 | 
			
		||||
                       + __GNUC_PATCHLEVEL__)
 | 
			
		||||
// XXX - the following is required until c++config.h
 | 
			
		||||
//       defines _GLIBCXX_HAVE_SWPRINTF and friends
 | 
			
		||||
//       or the preprocessor conditionals are removed
 | 
			
		||||
//       from the cwchar header.
 | 
			
		||||
#define _GLIBCXX_HAVE_SWPRINTF 1
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if !((defined(__FreeBSD__) && (__FreeBSD__ >= 5)) \
 | 
			
		||||
      || (defined(__NetBSD_GCC__) && (__NetBSD_GCC__ >= 2095003)) || defined(__DragonFly__))
 | 
			
		||||
#  define BOOST_NO_CWCHAR
 | 
			
		||||
#endif
 | 
			
		||||
//
 | 
			
		||||
// The BSD <ctype.h> has macros only, no functions:
 | 
			
		||||
//
 | 
			
		||||
#if !defined(__OpenBSD__) || defined(__DragonFly__)
 | 
			
		||||
#  define BOOST_NO_CTYPE_FUNCTIONS
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
//
 | 
			
		||||
// thread API's not auto detected:
 | 
			
		||||
//
 | 
			
		||||
#define BOOST_HAS_SCHED_YIELD
 | 
			
		||||
#define BOOST_HAS_NANOSLEEP
 | 
			
		||||
#define BOOST_HAS_GETTIMEOFDAY
 | 
			
		||||
#define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
 | 
			
		||||
#define BOOST_HAS_SIGACTION
 | 
			
		||||
 | 
			
		||||
// boilerplate code:
 | 
			
		||||
#define BOOST_HAS_UNISTD_H
 | 
			
		||||
#include <boost/config/posix_features.hpp>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										18
									
								
								boost/config/platform/cray.hpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								boost/config/platform/cray.hpp
									
									
									
									
									
										Normal 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>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										58
									
								
								boost/config/platform/cygwin.hpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										58
									
								
								boost/config/platform/cygwin.hpp
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,58 @@
 | 
			
		|||
//  (C) Copyright John Maddock 2001 - 2003. 
 | 
			
		||||
//  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.
 | 
			
		||||
 | 
			
		||||
//  cygwin specific config options:
 | 
			
		||||
 | 
			
		||||
#define BOOST_PLATFORM "Cygwin"
 | 
			
		||||
#define BOOST_HAS_DIRENT_H
 | 
			
		||||
#define BOOST_HAS_LOG1P
 | 
			
		||||
#define BOOST_HAS_EXPM1
 | 
			
		||||
 | 
			
		||||
//
 | 
			
		||||
// Threading API:
 | 
			
		||||
// See if we have POSIX threads, if we do use them, otherwise
 | 
			
		||||
// revert to native Win threads.
 | 
			
		||||
#define BOOST_HAS_UNISTD_H
 | 
			
		||||
#include <unistd.h>
 | 
			
		||||
#if defined(_POSIX_THREADS) && (_POSIX_THREADS+0 >= 0) && !defined(BOOST_HAS_WINTHREADS)
 | 
			
		||||
#  define BOOST_HAS_PTHREADS
 | 
			
		||||
#  define BOOST_HAS_SCHED_YIELD
 | 
			
		||||
#  define BOOST_HAS_GETTIMEOFDAY
 | 
			
		||||
#  define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
 | 
			
		||||
#  define BOOST_HAS_SIGACTION
 | 
			
		||||
#else
 | 
			
		||||
#  if !defined(BOOST_HAS_WINTHREADS)
 | 
			
		||||
#     define BOOST_HAS_WINTHREADS
 | 
			
		||||
#  endif
 | 
			
		||||
#  define BOOST_HAS_FTIME
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
//
 | 
			
		||||
// find out if we have a stdint.h, there should be a better way to do this:
 | 
			
		||||
//
 | 
			
		||||
#include <sys/types.h>
 | 
			
		||||
#ifdef _STDINT_H
 | 
			
		||||
#define BOOST_HAS_STDINT_H
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/// Cygwin has no fenv.h
 | 
			
		||||
#define BOOST_NO_FENV_H
 | 
			
		||||
 | 
			
		||||
// boilerplate code:
 | 
			
		||||
#include <boost/config/posix_features.hpp>
 | 
			
		||||
 | 
			
		||||
//
 | 
			
		||||
// Cygwin lies about XSI conformance, there is no nl_types.h:
 | 
			
		||||
//
 | 
			
		||||
#ifdef BOOST_HAS_NL_TYPES_H
 | 
			
		||||
#  undef BOOST_HAS_NL_TYPES_H
 | 
			
		||||
#endif
 | 
			
		||||
 
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										87
									
								
								boost/config/platform/hpux.hpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										87
									
								
								boost/config/platform/hpux.hpp
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,87 @@
 | 
			
		|||
//  (C) Copyright John Maddock 2001 - 2003. 
 | 
			
		||||
//  (C) Copyright Jens Maurer 2001 - 2003. 
 | 
			
		||||
//  (C) Copyright David Abrahams 2002. 
 | 
			
		||||
//  (C) Copyright Toon Knapen 2003. 
 | 
			
		||||
//  (C) Copyright Boris Gubenko 2006 - 2007.
 | 
			
		||||
//  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.
 | 
			
		||||
 | 
			
		||||
//  hpux specific config options:
 | 
			
		||||
 | 
			
		||||
#define BOOST_PLATFORM "HP-UX"
 | 
			
		||||
 | 
			
		||||
// In principle, HP-UX has a nice <stdint.h> under the name <inttypes.h>
 | 
			
		||||
// However, it has the following problem:
 | 
			
		||||
// Use of UINT32_C(0) results in "0u l" for the preprocessed source
 | 
			
		||||
// (verifyable with gcc 2.95.3)
 | 
			
		||||
#if (defined(__GNUC__) && (__GNUC__ >= 3)) || defined(__HP_aCC)
 | 
			
		||||
#  define BOOST_HAS_STDINT_H
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if !(defined(__HP_aCC) || !defined(_INCLUDE__STDC_A1_SOURCE))
 | 
			
		||||
#  define BOOST_NO_SWPRINTF
 | 
			
		||||
#endif
 | 
			
		||||
#if defined(__HP_aCC) && !defined(_INCLUDE__STDC_A1_SOURCE)
 | 
			
		||||
#  define BOOST_NO_CWCTYPE
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if defined(__GNUC__)
 | 
			
		||||
#  if (__GNUC__ < 3) || ((__GNUC__ == 3) && (__GNUC_MINOR__ < 3))
 | 
			
		||||
      // GNU C on HP-UX does not support threads (checked up to gcc 3.3)
 | 
			
		||||
#     define BOOST_DISABLE_THREADS
 | 
			
		||||
#  elif !defined(BOOST_DISABLE_THREADS)
 | 
			
		||||
      // threads supported from gcc-3.3 onwards:
 | 
			
		||||
#     define BOOST_HAS_THREADS
 | 
			
		||||
#     define BOOST_HAS_PTHREADS
 | 
			
		||||
#  endif
 | 
			
		||||
#elif defined(__HP_aCC) && !defined(BOOST_DISABLE_THREADS)
 | 
			
		||||
#  define BOOST_HAS_PTHREADS
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
// boilerplate code:
 | 
			
		||||
#define BOOST_HAS_UNISTD_H
 | 
			
		||||
#include <boost/config/posix_features.hpp>
 | 
			
		||||
 | 
			
		||||
// the following are always available:
 | 
			
		||||
#ifndef BOOST_HAS_GETTIMEOFDAY
 | 
			
		||||
#  define BOOST_HAS_GETTIMEOFDAY
 | 
			
		||||
#endif
 | 
			
		||||
#ifndef BOOST_HAS_SCHED_YIELD
 | 
			
		||||
#    define BOOST_HAS_SCHED_YIELD
 | 
			
		||||
#endif
 | 
			
		||||
#ifndef BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
 | 
			
		||||
#    define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
 | 
			
		||||
#endif
 | 
			
		||||
#ifndef BOOST_HAS_NL_TYPES_H
 | 
			
		||||
#    define BOOST_HAS_NL_TYPES_H
 | 
			
		||||
#endif
 | 
			
		||||
#ifndef BOOST_HAS_NANOSLEEP
 | 
			
		||||
#    define BOOST_HAS_NANOSLEEP
 | 
			
		||||
#endif
 | 
			
		||||
#ifndef BOOST_HAS_GETTIMEOFDAY
 | 
			
		||||
#    define BOOST_HAS_GETTIMEOFDAY
 | 
			
		||||
#endif
 | 
			
		||||
#ifndef BOOST_HAS_DIRENT_H
 | 
			
		||||
#    define BOOST_HAS_DIRENT_H
 | 
			
		||||
#endif
 | 
			
		||||
#ifndef BOOST_HAS_CLOCK_GETTIME
 | 
			
		||||
#    define BOOST_HAS_CLOCK_GETTIME
 | 
			
		||||
#endif
 | 
			
		||||
#ifndef BOOST_HAS_SIGACTION
 | 
			
		||||
#  define BOOST_HAS_SIGACTION
 | 
			
		||||
#endif
 | 
			
		||||
#ifndef BOOST_HAS_NRVO 
 | 
			
		||||
#  ifndef __parisc
 | 
			
		||||
#    define BOOST_HAS_NRVO
 | 
			
		||||
#  endif
 | 
			
		||||
#endif
 | 
			
		||||
#ifndef BOOST_HAS_LOG1P 
 | 
			
		||||
#  define BOOST_HAS_LOG1P
 | 
			
		||||
#endif
 | 
			
		||||
#ifndef BOOST_HAS_EXPM1
 | 
			
		||||
#  define BOOST_HAS_EXPM1
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										31
									
								
								boost/config/platform/irix.hpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										31
									
								
								boost/config/platform/irix.hpp
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,31 @@
 | 
			
		|||
//  (C) Copyright John Maddock 2001 - 2003. 
 | 
			
		||||
//  (C) Copyright Jens Maurer 2003. 
 | 
			
		||||
//  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 "SGI Irix"
 | 
			
		||||
 | 
			
		||||
#define BOOST_NO_SWPRINTF 
 | 
			
		||||
//
 | 
			
		||||
// these are not auto detected by POSIX feature tests:
 | 
			
		||||
//
 | 
			
		||||
#define BOOST_HAS_GETTIMEOFDAY
 | 
			
		||||
#define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
 | 
			
		||||
 | 
			
		||||
#ifdef __GNUC__
 | 
			
		||||
   // GNU C on IRIX does not support threads (checked up to gcc 3.3)
 | 
			
		||||
#  define BOOST_DISABLE_THREADS
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
// boilerplate code:
 | 
			
		||||
#define BOOST_HAS_UNISTD_H
 | 
			
		||||
#include <boost/config/posix_features.hpp>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										105
									
								
								boost/config/platform/linux.hpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										105
									
								
								boost/config/platform/linux.hpp
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,105 @@
 | 
			
		|||
//  (C) Copyright John Maddock 2001 - 2003. 
 | 
			
		||||
//  (C) Copyright Jens Maurer 2001 - 2003. 
 | 
			
		||||
//  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.
 | 
			
		||||
 | 
			
		||||
//  linux specific config options:
 | 
			
		||||
 | 
			
		||||
#define BOOST_PLATFORM "linux"
 | 
			
		||||
 | 
			
		||||
// make sure we have __GLIBC_PREREQ if available at all
 | 
			
		||||
#ifdef __cplusplus
 | 
			
		||||
#include <cstdlib>
 | 
			
		||||
#else
 | 
			
		||||
#include <stdlib.h>
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
//
 | 
			
		||||
// <stdint.h> added to glibc 2.1.1
 | 
			
		||||
// We can only test for 2.1 though:
 | 
			
		||||
//
 | 
			
		||||
#if defined(__GLIBC__) && ((__GLIBC__ > 2) || ((__GLIBC__ == 2) && (__GLIBC_MINOR__ >= 1)))
 | 
			
		||||
   // <stdint.h> defines int64_t unconditionally, but <sys/types.h> defines
 | 
			
		||||
   // int64_t only if __GNUC__.  Thus, assume a fully usable <stdint.h>
 | 
			
		||||
   // only when using GCC.
 | 
			
		||||
#  if defined __GNUC__
 | 
			
		||||
#    define BOOST_HAS_STDINT_H
 | 
			
		||||
#  endif
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if defined(__LIBCOMO__)
 | 
			
		||||
   //
 | 
			
		||||
   // como on linux doesn't have std:: c functions:
 | 
			
		||||
   // NOTE: versions of libcomo prior to beta28 have octal version numbering,
 | 
			
		||||
   // e.g. version 25 is 21 (dec)
 | 
			
		||||
   //
 | 
			
		||||
#  if __LIBCOMO_VERSION__ <= 20
 | 
			
		||||
#    define BOOST_NO_STDC_NAMESPACE
 | 
			
		||||
#  endif
 | 
			
		||||
 | 
			
		||||
#  if __LIBCOMO_VERSION__ <= 21
 | 
			
		||||
#    define BOOST_NO_SWPRINTF
 | 
			
		||||
#  endif
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
//
 | 
			
		||||
// If glibc is past version 2 then we definitely have
 | 
			
		||||
// gettimeofday, earlier versions may or may not have it:
 | 
			
		||||
//
 | 
			
		||||
#if defined(__GLIBC__) && (__GLIBC__ >= 2)
 | 
			
		||||
#  define BOOST_HAS_GETTIMEOFDAY
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#ifdef __USE_POSIX199309
 | 
			
		||||
#  define BOOST_HAS_NANOSLEEP
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if defined(__GLIBC__) && defined(__GLIBC_PREREQ)
 | 
			
		||||
// __GLIBC_PREREQ is available since 2.1.2
 | 
			
		||||
 | 
			
		||||
   // swprintf is available since glibc 2.2.0
 | 
			
		||||
#  if !__GLIBC_PREREQ(2,2) || (!defined(__USE_ISOC99) && !defined(__USE_UNIX98))
 | 
			
		||||
#    define BOOST_NO_SWPRINTF
 | 
			
		||||
#  endif
 | 
			
		||||
#else
 | 
			
		||||
#  define BOOST_NO_SWPRINTF
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
// boilerplate code:
 | 
			
		||||
#define BOOST_HAS_UNISTD_H
 | 
			
		||||
#include <boost/config/posix_features.hpp>
 | 
			
		||||
#ifdef __USE_GNU
 | 
			
		||||
#define BOOST_HAS_PTHREAD_YIELD
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#ifndef __GNUC__
 | 
			
		||||
//
 | 
			
		||||
// if the compiler is not gcc we still need to be able to parse
 | 
			
		||||
// the GNU system headers, some of which (mainly <stdint.h>)
 | 
			
		||||
// use GNU specific extensions:
 | 
			
		||||
//
 | 
			
		||||
#  ifndef __extension__
 | 
			
		||||
#     define __extension__
 | 
			
		||||
#  endif
 | 
			
		||||
#  ifndef __const__
 | 
			
		||||
#     define __const__ const
 | 
			
		||||
#  endif
 | 
			
		||||
#  ifndef __volatile__
 | 
			
		||||
#     define __volatile__ volatile
 | 
			
		||||
#  endif
 | 
			
		||||
#  ifndef __signed__
 | 
			
		||||
#     define __signed__ signed
 | 
			
		||||
#  endif
 | 
			
		||||
#  ifndef __typeof__
 | 
			
		||||
#     define __typeof__ typeof
 | 
			
		||||
#  endif
 | 
			
		||||
#  ifndef __inline__
 | 
			
		||||
#     define __inline__ inline
 | 
			
		||||
#  endif
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										87
									
								
								boost/config/platform/macos.hpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										87
									
								
								boost/config/platform/macos.hpp
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,87 @@
 | 
			
		|||
//  (C) Copyright John Maddock 2001 - 2003. 
 | 
			
		||||
//  (C) Copyright Darin Adler 2001 - 2002. 
 | 
			
		||||
//  (C) Copyright Bill Kempf 2002. 
 | 
			
		||||
//  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.
 | 
			
		||||
 | 
			
		||||
//  Mac OS specific config options:
 | 
			
		||||
 | 
			
		||||
#define BOOST_PLATFORM "Mac OS"
 | 
			
		||||
 | 
			
		||||
#if __MACH__ && !defined(_MSL_USING_MSL_C)
 | 
			
		||||
 | 
			
		||||
// Using the Mac OS X system BSD-style C library.
 | 
			
		||||
 | 
			
		||||
#  ifndef BOOST_HAS_UNISTD_H
 | 
			
		||||
#    define BOOST_HAS_UNISTD_H
 | 
			
		||||
#  endif
 | 
			
		||||
//
 | 
			
		||||
// Begin by including our boilerplate code for POSIX
 | 
			
		||||
// feature detection, this is safe even when using
 | 
			
		||||
// the MSL as Metrowerks supply their own <unistd.h>
 | 
			
		||||
// to replace the platform-native BSD one. G++ users
 | 
			
		||||
// should also always be able to do this on MaxOS X.
 | 
			
		||||
//
 | 
			
		||||
#  include <boost/config/posix_features.hpp>
 | 
			
		||||
#  ifndef BOOST_HAS_STDINT_H
 | 
			
		||||
#     define BOOST_HAS_STDINT_H
 | 
			
		||||
#  endif
 | 
			
		||||
 | 
			
		||||
//
 | 
			
		||||
// BSD runtime has pthreads, sigaction, sched_yield and gettimeofday,
 | 
			
		||||
// of these only pthreads are advertised in <unistd.h>, so set the 
 | 
			
		||||
// other options explicitly:
 | 
			
		||||
//
 | 
			
		||||
#  define BOOST_HAS_SCHED_YIELD
 | 
			
		||||
#  define BOOST_HAS_GETTIMEOFDAY
 | 
			
		||||
#  define BOOST_HAS_SIGACTION
 | 
			
		||||
 | 
			
		||||
#  if (__GNUC__ < 3) && !defined( __APPLE_CC__)
 | 
			
		||||
 | 
			
		||||
// GCC strange "ignore std" mode works better if you pretend everything
 | 
			
		||||
// is in the std namespace, for the most part.
 | 
			
		||||
 | 
			
		||||
#    define BOOST_NO_STDC_NAMESPACE
 | 
			
		||||
#  endif
 | 
			
		||||
 | 
			
		||||
#  if (__GNUC__ == 4)
 | 
			
		||||
 | 
			
		||||
// Both gcc and intel require these.  
 | 
			
		||||
#    define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
 | 
			
		||||
#    define BOOST_HAS_NANOSLEEP
 | 
			
		||||
 | 
			
		||||
#  endif
 | 
			
		||||
 | 
			
		||||
#else
 | 
			
		||||
 | 
			
		||||
// Using the MSL C library.
 | 
			
		||||
 | 
			
		||||
// We will eventually support threads in non-Carbon builds, but we do
 | 
			
		||||
// not support this yet.
 | 
			
		||||
#  if ( defined(TARGET_API_MAC_CARBON) && TARGET_API_MAC_CARBON ) || ( defined(TARGET_CARBON) && TARGET_CARBON )
 | 
			
		||||
 | 
			
		||||
#  if !defined(BOOST_HAS_PTHREADS)
 | 
			
		||||
// MPTasks support is deprecated/removed from Boost:
 | 
			
		||||
//#    define BOOST_HAS_MPTASKS
 | 
			
		||||
#  elif ( __dest_os == __mac_os_x )
 | 
			
		||||
// We are doing a Carbon/Mach-O/MSL build which has pthreads, but only the
 | 
			
		||||
// gettimeofday and no posix.
 | 
			
		||||
#  define BOOST_HAS_GETTIMEOFDAY
 | 
			
		||||
#  endif
 | 
			
		||||
 | 
			
		||||
#ifdef BOOST_HAS_PTHREADS
 | 
			
		||||
#  define BOOST_HAS_THREADS
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
// The remote call manager depends on this.
 | 
			
		||||
#    define BOOST_BIND_ENABLE_PASCAL
 | 
			
		||||
 | 
			
		||||
#  endif
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										31
									
								
								boost/config/platform/qnxnto.hpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										31
									
								
								boost/config/platform/qnxnto.hpp
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,31 @@
 | 
			
		|||
//  (C) Copyright Jim Douglas 2005. 
 | 
			
		||||
//  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.
 | 
			
		||||
 | 
			
		||||
//  QNX specific config options:
 | 
			
		||||
 | 
			
		||||
#define BOOST_PLATFORM "QNX"
 | 
			
		||||
 | 
			
		||||
#define BOOST_HAS_UNISTD_H
 | 
			
		||||
#include <boost/config/posix_features.hpp>
 | 
			
		||||
 | 
			
		||||
// QNX claims XOpen version 5 compatibility, but doesn't have an nl_types.h
 | 
			
		||||
// or log1p and expm1:
 | 
			
		||||
#undef  BOOST_HAS_NL_TYPES_H
 | 
			
		||||
#undef  BOOST_HAS_LOG1P
 | 
			
		||||
#undef  BOOST_HAS_EXPM1
 | 
			
		||||
 | 
			
		||||
#define BOOST_HAS_PTHREADS
 | 
			
		||||
#define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
 | 
			
		||||
 | 
			
		||||
#define BOOST_HAS_GETTIMEOFDAY
 | 
			
		||||
#define BOOST_HAS_CLOCK_GETTIME
 | 
			
		||||
#define BOOST_HAS_NANOSLEEP
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										28
									
								
								boost/config/platform/solaris.hpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										28
									
								
								boost/config/platform/solaris.hpp
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,28 @@
 | 
			
		|||
//  (C) Copyright John Maddock 2001 - 2003. 
 | 
			
		||||
//  (C) Copyright Jens Maurer 2003. 
 | 
			
		||||
//  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.
 | 
			
		||||
 | 
			
		||||
//  sun specific config options:
 | 
			
		||||
 | 
			
		||||
#define BOOST_PLATFORM "Sun Solaris"
 | 
			
		||||
 | 
			
		||||
#define BOOST_HAS_GETTIMEOFDAY
 | 
			
		||||
 | 
			
		||||
// boilerplate code:
 | 
			
		||||
#define BOOST_HAS_UNISTD_H
 | 
			
		||||
#include <boost/config/posix_features.hpp>
 | 
			
		||||
 | 
			
		||||
//
 | 
			
		||||
// pthreads don't actually work with gcc unless _PTHREADS is defined:
 | 
			
		||||
//
 | 
			
		||||
#if defined(__GNUC__) && defined(_POSIX_THREADS) && !defined(_PTHREADS)
 | 
			
		||||
# undef BOOST_HAS_PTHREADS
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										97
									
								
								boost/config/platform/symbian.hpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										97
									
								
								boost/config/platform/symbian.hpp
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,97 @@
 | 
			
		|||
//  (C) Copyright Yuriy Krasnoschek 2009. 
 | 
			
		||||
//  (C) Copyright John Maddock 2001 - 2003. 
 | 
			
		||||
//  (C) Copyright Jens Maurer 2001 - 2003. 
 | 
			
		||||
//  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.
 | 
			
		||||
 | 
			
		||||
//  symbian specific config options:
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#define BOOST_PLATFORM "Symbian"
 | 
			
		||||
#define BOOST_SYMBIAN 1
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#if defined(__S60_3X__)
 | 
			
		||||
// 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
 | 
			
		||||
// make sure we have __GLIBC_PREREQ if available at all
 | 
			
		||||
#ifdef __cplusplus
 | 
			
		||||
#include <cstdlib>
 | 
			
		||||
#else
 | 
			
		||||
#include <stdlib.h>
 | 
			
		||||
#endif// boilerplate code:
 | 
			
		||||
#  define BOOST_HAS_UNISTD_H
 | 
			
		||||
#  include <boost/config/posix_features.hpp>
 | 
			
		||||
// S60 SDK defines _POSIX_VERSION as POSIX.1
 | 
			
		||||
#  ifndef BOOST_HAS_STDINT_H
 | 
			
		||||
#    define BOOST_HAS_STDINT_H
 | 
			
		||||
#  endif
 | 
			
		||||
#  ifndef BOOST_HAS_GETTIMEOFDAY
 | 
			
		||||
#    define BOOST_HAS_GETTIMEOFDAY
 | 
			
		||||
#  endif
 | 
			
		||||
#  ifndef BOOST_HAS_DIRENT_H
 | 
			
		||||
#    define BOOST_HAS_DIRENT_H
 | 
			
		||||
#  endif
 | 
			
		||||
#  ifndef BOOST_HAS_SIGACTION
 | 
			
		||||
#    define BOOST_HAS_SIGACTION
 | 
			
		||||
#  endif
 | 
			
		||||
#  ifndef BOOST_HAS_PTHREADS
 | 
			
		||||
#    define BOOST_HAS_PTHREADS
 | 
			
		||||
#  endif
 | 
			
		||||
#  ifndef BOOST_HAS_NANOSLEEP
 | 
			
		||||
#    define BOOST_HAS_NANOSLEEP
 | 
			
		||||
#  endif
 | 
			
		||||
#  ifndef BOOST_HAS_SCHED_YIELD
 | 
			
		||||
#    define BOOST_HAS_SCHED_YIELD
 | 
			
		||||
#  endif
 | 
			
		||||
#  ifndef BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
 | 
			
		||||
#    define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
 | 
			
		||||
#  endif
 | 
			
		||||
#  ifndef BOOST_HAS_LOG1P
 | 
			
		||||
#    define BOOST_HAS_LOG1P
 | 
			
		||||
#  endif
 | 
			
		||||
#  ifndef BOOST_HAS_EXPM1
 | 
			
		||||
#    define BOOST_HAS_EXPM1
 | 
			
		||||
#  endif
 | 
			
		||||
#  ifndef BOOST_POSIX_API
 | 
			
		||||
#    define BOOST_POSIX_API
 | 
			
		||||
#  endif
 | 
			
		||||
// endianess support
 | 
			
		||||
#  include <sys/endian.h>
 | 
			
		||||
// Symbian SDK provides _BYTE_ORDER instead of __BYTE_ORDER
 | 
			
		||||
#  ifndef __LITTLE_ENDIAN
 | 
			
		||||
#    ifdef _LITTLE_ENDIAN
 | 
			
		||||
#      define __LITTLE_ENDIAN _LITTLE_ENDIAN
 | 
			
		||||
#    else
 | 
			
		||||
#      define __LITTLE_ENDIAN 1234
 | 
			
		||||
#    endif
 | 
			
		||||
#  endif
 | 
			
		||||
#  ifndef __BIG_ENDIAN
 | 
			
		||||
#    ifdef _BIG_ENDIAN
 | 
			
		||||
#      define __BIG_ENDIAN _BIG_ENDIAN
 | 
			
		||||
#    else
 | 
			
		||||
#      define __BIG_ENDIAN 4321
 | 
			
		||||
#    endif
 | 
			
		||||
#  endif
 | 
			
		||||
#  ifndef __BYTE_ORDER
 | 
			
		||||
#    define __BYTE_ORDER __LITTLE_ENDIAN // Symbian is LE
 | 
			
		||||
#  endif
 | 
			
		||||
// Known limitations
 | 
			
		||||
#  define BOOST_ASIO_DISABLE_SERIAL_PORT
 | 
			
		||||
#  define BOOST_DATE_TIME_NO_LOCALE
 | 
			
		||||
#  define BOOST_NO_STD_WSTRING
 | 
			
		||||
#  define BOOST_EXCEPTION_DISABLE
 | 
			
		||||
#  define BOOST_NO_EXCEPTIONS
 | 
			
		||||
 | 
			
		||||
#else // TODO: More platform support e.g. UIQ
 | 
			
		||||
#  error "Unsuppoted Symbian SDK"
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if defined(__WINSCW__) && !defined(BOOST_DISABLE_WIN32)
 | 
			
		||||
#  define BOOST_DISABLE_WIN32 // winscw defines WIN32 macro
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										25
									
								
								boost/config/platform/vms.hpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										25
									
								
								boost/config/platform/vms.hpp
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,25 @@
 | 
			
		|||
//  (C) Copyright Artyom Beilis 2010.  
 | 
			
		||||
//  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) 
 | 
			
		||||
 | 
			
		||||
#ifndef BOOST_CONFIG_PLATFORM_VMS_HPP 
 | 
			
		||||
#define BOOST_CONFIG_PLATFORM_VMS_HPP 
 | 
			
		||||
 | 
			
		||||
#define BOOST_PLATFORM "OpenVMS" 
 | 
			
		||||
 | 
			
		||||
#undef  BOOST_HAS_STDINT_H 
 | 
			
		||||
#define BOOST_HAS_UNISTD_H 
 | 
			
		||||
#define BOOST_HAS_NL_TYPES_H 
 | 
			
		||||
#define BOOST_HAS_GETTIMEOFDAY 
 | 
			
		||||
#define BOOST_HAS_DIRENT_H 
 | 
			
		||||
#define BOOST_HAS_PTHREADS 
 | 
			
		||||
#define BOOST_HAS_NANOSLEEP 
 | 
			
		||||
#define BOOST_HAS_CLOCK_GETTIME 
 | 
			
		||||
#define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE 
 | 
			
		||||
#define BOOST_HAS_LOG1P 
 | 
			
		||||
#define BOOST_HAS_EXPM1 
 | 
			
		||||
#define BOOST_HAS_THREADS 
 | 
			
		||||
#undef  BOOST_HAS_SCHED_YIELD 
 | 
			
		||||
 | 
			
		||||
#endif 
 | 
			
		||||
							
								
								
									
										369
									
								
								boost/config/platform/vxworks.hpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										369
									
								
								boost/config/platform/vxworks.hpp
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,369 @@
 | 
			
		|||
//  (C) Copyright Dustin Spicuzza 2009.
 | 
			
		||||
//      Adapted to vxWorks 6.9 by Peter Brockamp 2012.
 | 
			
		||||
//  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.
 | 
			
		||||
 | 
			
		||||
//  Since WRS does not yet properly support boost under vxWorks
 | 
			
		||||
//  and this file was badly outdated, but I was keen on using it,
 | 
			
		||||
//  I patched boost myself to make things work. This has been tested
 | 
			
		||||
//  and adapted by me for vxWorks 6.9 *only*, as I'm lacking access
 | 
			
		||||
//  to earlier 6.X versions! The only thing I know for sure is that
 | 
			
		||||
//  very old versions of vxWorks (namely everything below 6.x) are
 | 
			
		||||
//  absolutely unable to use boost. This is mainly due to the completely
 | 
			
		||||
//  outdated libraries and ancient compiler (GCC 2.96 or worse). Do
 | 
			
		||||
//  not even think of getting this to work, a miserable failure will
 | 
			
		||||
//  be guaranteed!
 | 
			
		||||
//  Equally, this file has been tested for RTPs (Real Time Processes)
 | 
			
		||||
//  only, not for DKMs (Downloadable Kernel Modules). These two types
 | 
			
		||||
//  of executables differ largely in the available functionality of
 | 
			
		||||
//  the C-library, STL, and so on. A DKM uses a library similar to those
 | 
			
		||||
//  of vxWorks 5.X - with all its limitations and incompatibilities
 | 
			
		||||
//  with respect to ANSI C++ and STL. So probably there might be problems
 | 
			
		||||
//  with the usage of boost from DKMs. WRS or any voluteers are free to
 | 
			
		||||
//  prove the opposite!
 | 
			
		||||
 | 
			
		||||
// ====================================================================
 | 
			
		||||
//
 | 
			
		||||
// Some important information regarding the usage of POSIX semaphores:
 | 
			
		||||
// -------------------------------------------------------------------
 | 
			
		||||
//
 | 
			
		||||
// VxWorks as a real time operating system handles threads somewhat
 | 
			
		||||
// different from what "normal" OSes do, regarding their scheduling!
 | 
			
		||||
// This could lead to a scenario called "priority inversion" when using
 | 
			
		||||
// semaphores, see http://en.wikipedia.org/wiki/Priority_inversion.
 | 
			
		||||
//
 | 
			
		||||
// Now, VxWorks POSIX-semaphores for DKM's default to the usage of
 | 
			
		||||
// priority inverting semaphores, which is fine. On the other hand,
 | 
			
		||||
// for RTP's it defaults to using non priority inverting semaphores,
 | 
			
		||||
// which could easily pose a serious problem for a real time process,
 | 
			
		||||
// i.e. deadlocks! To overcome this two possibilities do exist:
 | 
			
		||||
//
 | 
			
		||||
// a) Patch every piece of boost that uses semaphores to instanciate
 | 
			
		||||
//    the proper type of semaphores. This is non-intrusive with respect
 | 
			
		||||
//    to the OS and could relatively easy been done by giving all
 | 
			
		||||
//    semaphores attributes deviating from the default (for in-depth
 | 
			
		||||
//    information see the POSIX functions pthread_mutexattr_init()
 | 
			
		||||
//    and pthread_mutexattr_setprotocol()). However this breaks all
 | 
			
		||||
//    too easily, as with every new version some boost library could
 | 
			
		||||
//    all in a sudden start using semaphores, resurrecting the very
 | 
			
		||||
//    same, hard to locate problem over and over again!
 | 
			
		||||
//
 | 
			
		||||
// b) We could change the default properties for POSIX-semaphores
 | 
			
		||||
//    that VxWorks uses for RTP's and this is being suggested here,
 | 
			
		||||
//    as it will more or less seamlessly integrate with boost. I got
 | 
			
		||||
//    the following information from WRS how to do this, compare
 | 
			
		||||
//    Wind River TSR# 1209768:
 | 
			
		||||
//
 | 
			
		||||
// Instructions for changing the default properties of POSIX-
 | 
			
		||||
// semaphores for RTP's in VxWorks 6.9:
 | 
			
		||||
// - Edit the file /vxworks-6.9/target/usr/src/posix/pthreadLib.c
 | 
			
		||||
//   in the root of your Workbench-installation.
 | 
			
		||||
// - Around line 917 there should be the definition of the default
 | 
			
		||||
//   mutex attributes:
 | 
			
		||||
//
 | 
			
		||||
//   LOCAL pthread_mutexattr_t defaultMutexAttr =
 | 
			
		||||
//       {
 | 
			
		||||
//       PTHREAD_INITIALIZED_OBJ, PTHREAD_PRIO_NONE, 0,
 | 
			
		||||
//       PTHREAD_MUTEX_DEFAULT
 | 
			
		||||
//       };
 | 
			
		||||
//
 | 
			
		||||
//   Here, replace PTHREAD_PRIO_NONE by PTHREAD_PRIO_INHERIT.
 | 
			
		||||
// - Around line 1236 there should be a definition for the function
 | 
			
		||||
//   pthread_mutexattr_init(). A couple of lines below you should
 | 
			
		||||
//   find a block of code like this:
 | 
			
		||||
//
 | 
			
		||||
//   pAttr->mutexAttrStatus      = PTHREAD_INITIALIZED_OBJ;
 | 
			
		||||
//   pAttr->mutexAttrProtocol    = PTHREAD_PRIO_NONE;
 | 
			
		||||
//   pAttr->mutexAttrPrioceiling = 0;
 | 
			
		||||
//   pAttr->mutexAttrType        = PTHREAD_MUTEX_DEFAULT;
 | 
			
		||||
//
 | 
			
		||||
//   Here again, replace PTHREAD_PRIO_NONE by PTHREAD_PRIO_INHERIT.
 | 
			
		||||
// - Finally, rebuild your VSB. This will create a new VxWorks kernel
 | 
			
		||||
//   with the changed properties. That's it! Now, using boost should
 | 
			
		||||
//   no longer cause any problems with task deadlocks!
 | 
			
		||||
//
 | 
			
		||||
// And here's another useful piece of information concerning VxWorks'
 | 
			
		||||
// POSIX-functionality in general:
 | 
			
		||||
// VxWorks is not a genuine POSIX-OS in itself, rather it is using a
 | 
			
		||||
// kind of compatibility layer (sort of a wrapper) to emulate the
 | 
			
		||||
// POSIX-functionality by using its own resources and functions.
 | 
			
		||||
// At the time a task (thread) calls it's first POSIX-function during
 | 
			
		||||
// runtime it is being transformed by the OS into a POSIX-thread.
 | 
			
		||||
// This transformation does include a call to malloc() to allocate the
 | 
			
		||||
// memory required for the housekeeping of POSIX-threads. In a high
 | 
			
		||||
// priority RTP this malloc() call may be highly undesirable, as its
 | 
			
		||||
// timing is more or less unpredictable (depending on what your actual
 | 
			
		||||
// heap looks like). You can circumvent this problem by calling the
 | 
			
		||||
// function thread_self() at a well defined point in the code of the
 | 
			
		||||
// task, e.g. shortly after the task spawns up. Thereby you are able
 | 
			
		||||
// to define the time when the task-transformation will take place and
 | 
			
		||||
// you could shift it to an uncritical point where a malloc() call is
 | 
			
		||||
// tolerable. So, if this could pose a problem for your code, remember
 | 
			
		||||
// to call thread_self() from the affected task at an early stage.
 | 
			
		||||
//
 | 
			
		||||
// ====================================================================
 | 
			
		||||
 | 
			
		||||
// Block out all versions before vxWorks 6.x, as these don't work:
 | 
			
		||||
// Include header with the vxWorks version information and query them
 | 
			
		||||
#include <version.h>
 | 
			
		||||
#if !defined(_WRS_VXWORKS_MAJOR) || (_WRS_VXWORKS_MAJOR < 6)
 | 
			
		||||
#  error "The vxWorks version you're using is so badly outdated,\
 | 
			
		||||
          it doesn't work at all with boost, sorry, no chance!"
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
// Handle versions above 5.X but below 6.9
 | 
			
		||||
#if (_WRS_VXWORKS_MAJOR == 6) && (_WRS_VXWORKS_MINOR < 9)
 | 
			
		||||
// TODO: Starting from what version does vxWorks work with boost?
 | 
			
		||||
// We can't reasonably insert a #warning "" as a user hint here,
 | 
			
		||||
// as this will show up with every file including some boost header,
 | 
			
		||||
// badly bugging the user... So for the time being we just leave it.
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
// vxWorks specific config options:
 | 
			
		||||
// --------------------------------
 | 
			
		||||
#define BOOST_PLATFORM "vxWorks"
 | 
			
		||||
 | 
			
		||||
// Special behaviour for DKMs:
 | 
			
		||||
#ifdef _WRS_KERNEL
 | 
			
		||||
  // DKMs do not have the <cwchar>-header,
 | 
			
		||||
  // but apparently they do have an intrinsic wchar_t meanwhile!
 | 
			
		||||
#  define BOOST_NO_CWCHAR
 | 
			
		||||
 | 
			
		||||
  // Lots of wide-functions and -headers are unavailable for DKMs as well:
 | 
			
		||||
#  define BOOST_NO_CWCTYPE
 | 
			
		||||
#  define BOOST_NO_SWPRINTF
 | 
			
		||||
#  define BOOST_NO_STD_WSTRING
 | 
			
		||||
#  define BOOST_NO_STD_WSTREAMBUF
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
// Generally available headers:
 | 
			
		||||
#define BOOST_HAS_UNISTD_H
 | 
			
		||||
#define BOOST_HAS_STDINT_H
 | 
			
		||||
#define BOOST_HAS_DIRENT_H
 | 
			
		||||
#define BOOST_HAS_SLIST
 | 
			
		||||
 | 
			
		||||
// vxWorks does not have installed an iconv-library by default,
 | 
			
		||||
// so unfortunately no Unicode support from scratch is available!
 | 
			
		||||
// Thus, instead it is suggested to switch to ICU, as this seems
 | 
			
		||||
// to be the most complete and portable option...
 | 
			
		||||
#define BOOST_LOCALE_WITH_ICU
 | 
			
		||||
 | 
			
		||||
// Generally available functionality:
 | 
			
		||||
#define BOOST_HAS_THREADS
 | 
			
		||||
#define BOOST_HAS_NANOSLEEP
 | 
			
		||||
#define BOOST_HAS_GETTIMEOFDAY
 | 
			
		||||
#define BOOST_HAS_CLOCK_GETTIME
 | 
			
		||||
#define BOOST_HAS_MACRO_USE_FACET
 | 
			
		||||
 | 
			
		||||
// Generally unavailable functionality, delivered by boost's test function:
 | 
			
		||||
//#define BOOST_NO_DEDUCED_TYPENAME // Commented this out, boost's test gives an errorneous result!
 | 
			
		||||
#define BOOST_NO_CXX11_EXTERN_TEMPLATE
 | 
			
		||||
#define BOOST_NO_CXX11_VARIADIC_MACROS
 | 
			
		||||
 | 
			
		||||
// Generally available threading API's:
 | 
			
		||||
#define BOOST_HAS_PTHREADS
 | 
			
		||||
#define BOOST_HAS_SCHED_YIELD
 | 
			
		||||
#define BOOST_HAS_SIGACTION
 | 
			
		||||
 | 
			
		||||
// Functionality available for RTPs only:
 | 
			
		||||
#ifdef __RTP__
 | 
			
		||||
#  define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
 | 
			
		||||
#  define BOOST_HAS_LOG1P
 | 
			
		||||
#  define BOOST_HAS_EXPM1
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
// Functionality available for DKMs only:
 | 
			
		||||
#ifdef _WRS_KERNEL
 | 
			
		||||
  // Luckily, at the moment there seems to be none!
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
// These #defines allow posix_features to work, since vxWorks doesn't
 | 
			
		||||
// #define them itself for DKMs (for RTPs on the contrary it does):
 | 
			
		||||
#ifdef _WRS_KERNEL
 | 
			
		||||
#  ifndef _POSIX_TIMERS
 | 
			
		||||
#    define _POSIX_TIMERS  1
 | 
			
		||||
#  endif
 | 
			
		||||
#  ifndef _POSIX_THREADS
 | 
			
		||||
#    define _POSIX_THREADS 1
 | 
			
		||||
#  endif
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
// vxWorks doesn't work with asio serial ports:
 | 
			
		||||
#define BOOST_ASIO_DISABLE_SERIAL_PORT
 | 
			
		||||
// TODO: The problem here seems to bee that vxWorks uses its own, very specific
 | 
			
		||||
//       ways to handle serial ports, incompatible with POSIX or anything...
 | 
			
		||||
//       Maybe a specific implementation would be possible, but until the
 | 
			
		||||
//       straight need arises... This implementation would presumably consist
 | 
			
		||||
//       of some vxWorks specific ioctl-calls, etc. Any voluteers?
 | 
			
		||||
 | 
			
		||||
// vxWorks-around: <time.h> #defines CLOCKS_PER_SEC as sysClkRateGet() but
 | 
			
		||||
//                 miserably fails to #include the required <sysLib.h> to make
 | 
			
		||||
//                 sysClkRateGet() available! So we manually include it here.
 | 
			
		||||
#ifdef __RTP__
 | 
			
		||||
#  include <time.h>
 | 
			
		||||
#  include <sysLib.h>
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
// vxWorks-around: In <stdint.h> the macros INT32_C(), UINT32_C(), INT64_C() and
 | 
			
		||||
//                 UINT64_C() are defined errorneously, yielding not a signed/
 | 
			
		||||
//                 unsigned long/long long type, but a signed/unsigned int/long
 | 
			
		||||
//                 type. Eventually this leads to compile errors in ratio_fwd.hpp,
 | 
			
		||||
//                 when trying to define several constants which do not fit into a
 | 
			
		||||
//                 long type! We correct them here by redefining.
 | 
			
		||||
#include <cstdint>
 | 
			
		||||
 | 
			
		||||
// Some macro-magic to do the job
 | 
			
		||||
#define VX_JOIN(X, Y)     VX_DO_JOIN(X, Y)
 | 
			
		||||
#define VX_DO_JOIN(X, Y)  VX_DO_JOIN2(X, Y)
 | 
			
		||||
#define VX_DO_JOIN2(X, Y) X##Y
 | 
			
		||||
 | 
			
		||||
// Correctly setup the macros
 | 
			
		||||
#undef  INT32_C
 | 
			
		||||
#undef  UINT32_C
 | 
			
		||||
#undef  INT64_C
 | 
			
		||||
#undef  UINT64_C
 | 
			
		||||
#define INT32_C(x)  VX_JOIN(x, L)
 | 
			
		||||
#define UINT32_C(x) VX_JOIN(x, UL)
 | 
			
		||||
#define INT64_C(x)  VX_JOIN(x, LL)
 | 
			
		||||
#define UINT64_C(x) VX_JOIN(x, ULL)
 | 
			
		||||
 | 
			
		||||
// #include Libraries required for the following function adaption
 | 
			
		||||
#include <ioLib.h>
 | 
			
		||||
#include <tickLib.h>
 | 
			
		||||
#include <sys/time.h>
 | 
			
		||||
 | 
			
		||||
// Use C-linkage for the following helper functions
 | 
			
		||||
extern "C" {
 | 
			
		||||
 | 
			
		||||
// vxWorks-around: The required functions getrlimit() and getrlimit() are missing.
 | 
			
		||||
//                 But we have the similar functions getprlimit() and setprlimit(),
 | 
			
		||||
//                 which may serve the purpose.
 | 
			
		||||
//                 Problem: The vxWorks-documentation regarding these functions
 | 
			
		||||
//                 doesn't deserve its name! It isn't documented what the first two
 | 
			
		||||
//                 parameters idtype and id mean, so we must fall back to an educated
 | 
			
		||||
//                 guess - null, argh... :-/
 | 
			
		||||
 | 
			
		||||
// TODO: getprlimit() and setprlimit() do exist for RTPs only, for whatever reason.
 | 
			
		||||
//       Thus for DKMs there would have to be another implementation.
 | 
			
		||||
#ifdef __RTP__
 | 
			
		||||
  inline int getrlimit(int resource, struct rlimit *rlp){
 | 
			
		||||
    return getprlimit(0, 0, resource, rlp);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  inline int setrlimit(int resource, const struct rlimit *rlp){
 | 
			
		||||
    return setprlimit(0, 0, resource, const_cast<struct rlimit*>(rlp));
 | 
			
		||||
  }
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
// vxWorks has ftruncate() only, so we do simulate truncate():
 | 
			
		||||
inline int truncate(const char *p, off_t l){
 | 
			
		||||
  int fd = open(p, O_WRONLY);
 | 
			
		||||
  if (fd == -1){
 | 
			
		||||
    errno = EACCES;
 | 
			
		||||
    return -1;
 | 
			
		||||
  }
 | 
			
		||||
  if (ftruncate(fd, l) == -1){
 | 
			
		||||
    close(fd);
 | 
			
		||||
    errno = EACCES;
 | 
			
		||||
    return -1;
 | 
			
		||||
  }
 | 
			
		||||
  return close(fd);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Fake symlink handling by dummy functions:
 | 
			
		||||
inline int symlink(const char*, const char*){
 | 
			
		||||
  // vxWorks has no symlinks -> always return an error!
 | 
			
		||||
  errno = EACCES;
 | 
			
		||||
  return -1;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
inline ssize_t readlink(const char*, char*, size_t){
 | 
			
		||||
  // vxWorks has no symlinks -> always return an error!
 | 
			
		||||
  errno = EACCES;
 | 
			
		||||
  return -1;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// vxWorks claims to implement gettimeofday in sys/time.h
 | 
			
		||||
// but nevertheless does not provide it! See
 | 
			
		||||
// https://support.windriver.com/olsPortal/faces/maintenance/techtipDetail_noHeader.jspx?docId=16442&contentId=WR_TECHTIP_006256
 | 
			
		||||
// We implement a surrogate version here via clock_gettime:
 | 
			
		||||
inline int gettimeofday(struct timeval *tv, void * /*tzv*/) {
 | 
			
		||||
  struct timespec ts;
 | 
			
		||||
  clock_gettime(CLOCK_MONOTONIC, &ts);
 | 
			
		||||
  tv->tv_sec  = ts.tv_sec;
 | 
			
		||||
  tv->tv_usec = ts.tv_nsec / 1000;
 | 
			
		||||
  return 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// vxWorks does provide neither struct tms nor function times()!
 | 
			
		||||
// We implement an empty dummy-function, simply setting the user
 | 
			
		||||
// and system time to the half of thew actual system ticks-value
 | 
			
		||||
// and the child user and system time to 0.
 | 
			
		||||
// Rather ugly but at least it suppresses compiler errors...
 | 
			
		||||
// Unfortunately, this of course *does* have an severe impact on
 | 
			
		||||
// dependant libraries, actually this is chrono only! Here it will
 | 
			
		||||
// not be possible to correctly use user and system times! But
 | 
			
		||||
// as vxWorks is lacking the ability to calculate user and system
 | 
			
		||||
// process times there seems to be no other possible solution.
 | 
			
		||||
struct tms{
 | 
			
		||||
  clock_t tms_utime;  // User CPU time
 | 
			
		||||
  clock_t tms_stime;  // System CPU time
 | 
			
		||||
  clock_t tms_cutime; // User CPU time of terminated child processes
 | 
			
		||||
  clock_t tms_cstime; // System CPU time of terminated child processes
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
inline clock_t times(struct tms *t){
 | 
			
		||||
  struct timespec ts;
 | 
			
		||||
  clock_gettime(CLOCK_THREAD_CPUTIME_ID, &ts);
 | 
			
		||||
  clock_t ticks(static_cast<clock_t>(static_cast<double>(ts.tv_sec)  * CLOCKS_PER_SEC +
 | 
			
		||||
                                     static_cast<double>(ts.tv_nsec) * CLOCKS_PER_SEC / 1000000.0));
 | 
			
		||||
  t->tms_utime  = ticks/2U;
 | 
			
		||||
  t->tms_stime  = ticks/2U;
 | 
			
		||||
  t->tms_cutime = 0; // vxWorks is lacking the concept of a child process!
 | 
			
		||||
  t->tms_cstime = 0; // -> Set the wait times for childs to 0
 | 
			
		||||
  return ticks;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
} // extern "C"
 | 
			
		||||
 | 
			
		||||
// Put the selfmade functions into the std-namespace, just in case
 | 
			
		||||
namespace std {
 | 
			
		||||
# ifdef __RTP__
 | 
			
		||||
    using ::getrlimit;
 | 
			
		||||
    using ::setrlimit;
 | 
			
		||||
# endif
 | 
			
		||||
  using ::truncate;
 | 
			
		||||
  using ::symlink;
 | 
			
		||||
  using ::readlink;
 | 
			
		||||
  using ::times;
 | 
			
		||||
  using ::gettimeofday;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Some more macro-magic:
 | 
			
		||||
// vxWorks-around: Some functions are not present or broken in vxWorks
 | 
			
		||||
//                 but may be patched to life via helper macros...
 | 
			
		||||
 | 
			
		||||
// Include signal.h which might contain a typo to be corrected here
 | 
			
		||||
#include <signal.h>
 | 
			
		||||
 | 
			
		||||
#define getpagesize()    sysconf(_SC_PAGESIZE)         // getpagesize is deprecated anyway!
 | 
			
		||||
#ifndef S_ISSOCK
 | 
			
		||||
#  define S_ISSOCK(mode) ((mode & S_IFMT) == S_IFSOCK) // Is file a socket?
 | 
			
		||||
#endif
 | 
			
		||||
#define lstat(p, b)      stat(p, b)                    // lstat() == stat(), as vxWorks has no symlinks!
 | 
			
		||||
#ifndef FPE_FLTINV
 | 
			
		||||
#  define FPE_FLTINV     (FPE_FLTSUB+1)                // vxWorks has no FPE_FLTINV, so define one as a dummy
 | 
			
		||||
#endif
 | 
			
		||||
#if !defined(BUS_ADRALN) && defined(BUS_ADRALNR)
 | 
			
		||||
#  define BUS_ADRALN     BUS_ADRALNR                   // Correct a supposed typo in vxWorks' <signal.h>
 | 
			
		||||
#endif
 | 
			
		||||
//typedef int              locale_t;                     // locale_t is a POSIX-extension, currently unpresent in vxWorks!
 | 
			
		||||
 | 
			
		||||
// #include boilerplate code:
 | 
			
		||||
#include <boost/config/posix_features.hpp>
 | 
			
		||||
 | 
			
		||||
// vxWorks lies about XSI conformance, there is no nl_types.h:
 | 
			
		||||
#undef BOOST_HAS_NL_TYPES_H
 | 
			
		||||
							
								
								
									
										82
									
								
								boost/config/platform/win32.hpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										82
									
								
								boost/config/platform/win32.hpp
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,82 @@
 | 
			
		|||
//  (C) Copyright John Maddock 2001 - 2003. 
 | 
			
		||||
//  (C) Copyright Bill Kempf 2001. 
 | 
			
		||||
//  (C) Copyright Aleksey Gurtovoy 2003. 
 | 
			
		||||
//  (C) Copyright Rene Rivera 2005.
 | 
			
		||||
//  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.
 | 
			
		||||
 | 
			
		||||
//  Win32 specific config options:
 | 
			
		||||
 | 
			
		||||
#define BOOST_PLATFORM "Win32"
 | 
			
		||||
 | 
			
		||||
//  Get the information about the MinGW runtime, i.e. __MINGW32_*VERSION.
 | 
			
		||||
#if defined(__MINGW32__)
 | 
			
		||||
#  include <_mingw.h>
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if defined(__GNUC__) && !defined(BOOST_NO_SWPRINTF)
 | 
			
		||||
#  define BOOST_NO_SWPRINTF
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
//  Default defines for BOOST_SYMBOL_EXPORT and BOOST_SYMBOL_IMPORT
 | 
			
		||||
//  If a compiler doesn't support __declspec(dllexport)/__declspec(dllimport),
 | 
			
		||||
//  its boost/config/compiler/ file must define BOOST_SYMBOL_EXPORT and
 | 
			
		||||
//  BOOST_SYMBOL_IMPORT
 | 
			
		||||
#ifndef BOOST_SYMBOL_EXPORT
 | 
			
		||||
#  define BOOST_HAS_DECLSPEC
 | 
			
		||||
#  define BOOST_SYMBOL_EXPORT __declspec(dllexport)
 | 
			
		||||
#  define BOOST_SYMBOL_IMPORT __declspec(dllimport)
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if defined(__MINGW32__) && ((__MINGW32_MAJOR_VERSION > 2) || ((__MINGW32_MAJOR_VERSION == 2) && (__MINGW32_MINOR_VERSION >= 0)))
 | 
			
		||||
#  define BOOST_HAS_STDINT_H
 | 
			
		||||
#  ifndef __STDC_LIMIT_MACROS
 | 
			
		||||
#     define __STDC_LIMIT_MACROS
 | 
			
		||||
#  endif
 | 
			
		||||
#  define BOOST_HAS_DIRENT_H
 | 
			
		||||
#  define BOOST_HAS_UNISTD_H
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if defined(__MINGW32__) && (__GNUC__ >= 4)
 | 
			
		||||
// Mingw has these functions but there are persistent problems
 | 
			
		||||
// with calls to these crashing, so disable for now:
 | 
			
		||||
//#  define BOOST_HAS_EXPM1
 | 
			
		||||
//#  define BOOST_HAS_LOG1P
 | 
			
		||||
#  define BOOST_HAS_GETTIMEOFDAY
 | 
			
		||||
#endif
 | 
			
		||||
//
 | 
			
		||||
// Win32 will normally be using native Win32 threads,
 | 
			
		||||
// but there is a pthread library avaliable as an option,
 | 
			
		||||
// 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
 | 
			
		||||
// a consistent setting of BOOST_HAS_THREADS across
 | 
			
		||||
// all translation units (needed for shared_ptr etc).
 | 
			
		||||
//
 | 
			
		||||
 | 
			
		||||
#ifndef BOOST_HAS_PTHREADS
 | 
			
		||||
#  define BOOST_HAS_WINTHREADS
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
//
 | 
			
		||||
// WinCE configuration:
 | 
			
		||||
//
 | 
			
		||||
#if defined(_WIN32_WCE) || defined(UNDER_CE)
 | 
			
		||||
#  define BOOST_NO_ANSI_APIS
 | 
			
		||||
// Windows CE does not have a conforming signature for swprintf
 | 
			
		||||
#  define BOOST_NO_SWPRINTF
 | 
			
		||||
#else
 | 
			
		||||
#  define BOOST_HAS_GETSYSTEMTIMEASFILETIME
 | 
			
		||||
#  define BOOST_HAS_THREADEX
 | 
			
		||||
#  define BOOST_HAS_GETSYSTEMTIMEASFILETIME
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#ifndef BOOST_DISABLE_WIN32
 | 
			
		||||
// WEK: Added
 | 
			
		||||
#define BOOST_HAS_FTIME
 | 
			
		||||
#define BOOST_WINDOWS 1
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
							
								
								
									
										95
									
								
								boost/config/posix_features.hpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										95
									
								
								boost/config/posix_features.hpp
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,95 @@
 | 
			
		|||
//  (C) Copyright John Maddock 2001 - 2003. 
 | 
			
		||||
//  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.
 | 
			
		||||
 | 
			
		||||
// All POSIX feature tests go in this file,
 | 
			
		||||
// Note that we test _POSIX_C_SOURCE and _XOPEN_SOURCE as well
 | 
			
		||||
// _POSIX_VERSION and _XOPEN_VERSION: on some systems POSIX API's
 | 
			
		||||
// may be present but none-functional unless _POSIX_C_SOURCE and
 | 
			
		||||
// _XOPEN_SOURCE have been defined to the right value (it's up
 | 
			
		||||
// to the user to do this *before* including any header, although
 | 
			
		||||
// in most cases the compiler will do this for you).
 | 
			
		||||
 | 
			
		||||
#  if defined(BOOST_HAS_UNISTD_H)
 | 
			
		||||
#     include <unistd.h>
 | 
			
		||||
 | 
			
		||||
      // XOpen has <nl_types.h>, but is this the correct version check?
 | 
			
		||||
#     if defined(_XOPEN_VERSION) && (_XOPEN_VERSION >= 3)
 | 
			
		||||
#        define BOOST_HAS_NL_TYPES_H
 | 
			
		||||
#     endif
 | 
			
		||||
 | 
			
		||||
      // POSIX version 6 requires <stdint.h>
 | 
			
		||||
#     if defined(_POSIX_VERSION) && (_POSIX_VERSION >= 200100)
 | 
			
		||||
#        define BOOST_HAS_STDINT_H
 | 
			
		||||
#     endif
 | 
			
		||||
 | 
			
		||||
      // POSIX version 2 requires <dirent.h>
 | 
			
		||||
#     if defined(_POSIX_VERSION) && (_POSIX_VERSION >= 199009L)
 | 
			
		||||
#        define BOOST_HAS_DIRENT_H
 | 
			
		||||
#     endif
 | 
			
		||||
 | 
			
		||||
      // POSIX version 3 requires <signal.h> to have sigaction:
 | 
			
		||||
#     if defined(_POSIX_VERSION) && (_POSIX_VERSION >= 199506L)
 | 
			
		||||
#        define BOOST_HAS_SIGACTION
 | 
			
		||||
#     endif
 | 
			
		||||
      // POSIX defines _POSIX_THREADS > 0 for pthread support,
 | 
			
		||||
      // however some platforms define _POSIX_THREADS without
 | 
			
		||||
      // a value, hence the (_POSIX_THREADS+0 >= 0) check.
 | 
			
		||||
      // Strictly speaking this may catch platforms with a
 | 
			
		||||
      // non-functioning stub <pthreads.h>, but such occurrences should
 | 
			
		||||
      // occur very rarely if at all.
 | 
			
		||||
#     if defined(_POSIX_THREADS) && (_POSIX_THREADS+0 >= 0) && !defined(BOOST_HAS_WINTHREADS) && !defined(BOOST_HAS_MPTASKS)
 | 
			
		||||
#        define BOOST_HAS_PTHREADS
 | 
			
		||||
#     endif
 | 
			
		||||
 | 
			
		||||
      // BOOST_HAS_NANOSLEEP:
 | 
			
		||||
      // This is predicated on _POSIX_TIMERS or _XOPEN_REALTIME:
 | 
			
		||||
#     if (defined(_POSIX_TIMERS) && (_POSIX_TIMERS+0 >= 0)) \
 | 
			
		||||
             || (defined(_XOPEN_REALTIME) && (_XOPEN_REALTIME+0 >= 0))
 | 
			
		||||
#        define BOOST_HAS_NANOSLEEP
 | 
			
		||||
#     endif
 | 
			
		||||
 | 
			
		||||
      // BOOST_HAS_CLOCK_GETTIME:
 | 
			
		||||
      // This is predicated on _POSIX_TIMERS (also on _XOPEN_REALTIME
 | 
			
		||||
      // but at least one platform - linux - defines that flag without
 | 
			
		||||
      // defining clock_gettime):
 | 
			
		||||
#     if (defined(_POSIX_TIMERS) && (_POSIX_TIMERS+0 >= 0))
 | 
			
		||||
#        define BOOST_HAS_CLOCK_GETTIME
 | 
			
		||||
#     endif
 | 
			
		||||
 | 
			
		||||
      // BOOST_HAS_SCHED_YIELD:
 | 
			
		||||
      // This is predicated on _POSIX_PRIORITY_SCHEDULING or
 | 
			
		||||
      // on _POSIX_THREAD_PRIORITY_SCHEDULING or on _XOPEN_REALTIME.
 | 
			
		||||
#     if defined(_POSIX_PRIORITY_SCHEDULING) && (_POSIX_PRIORITY_SCHEDULING+0 > 0)\
 | 
			
		||||
            || (defined(_POSIX_THREAD_PRIORITY_SCHEDULING) && (_POSIX_THREAD_PRIORITY_SCHEDULING+0 > 0))\
 | 
			
		||||
            || (defined(_XOPEN_REALTIME) && (_XOPEN_REALTIME+0 >= 0))
 | 
			
		||||
#        define BOOST_HAS_SCHED_YIELD
 | 
			
		||||
#     endif
 | 
			
		||||
 | 
			
		||||
      // BOOST_HAS_GETTIMEOFDAY:
 | 
			
		||||
      // BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE:
 | 
			
		||||
      // These are predicated on _XOPEN_VERSION, and appears to be first released
 | 
			
		||||
      // in issue 4, version 2 (_XOPEN_VERSION > 500).
 | 
			
		||||
      // Likewise for the functions log1p and expm1.
 | 
			
		||||
#     if defined(_XOPEN_VERSION) && (_XOPEN_VERSION+0 >= 500)
 | 
			
		||||
#        define BOOST_HAS_GETTIMEOFDAY
 | 
			
		||||
#        if defined(_XOPEN_SOURCE) && (_XOPEN_SOURCE+0 >= 500)
 | 
			
		||||
#           define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
 | 
			
		||||
#        endif
 | 
			
		||||
#        ifndef BOOST_HAS_LOG1P
 | 
			
		||||
#           define BOOST_HAS_LOG1P
 | 
			
		||||
#        endif
 | 
			
		||||
#        ifndef BOOST_HAS_EXPM1
 | 
			
		||||
#           define BOOST_HAS_EXPM1
 | 
			
		||||
#        endif
 | 
			
		||||
#     endif
 | 
			
		||||
 | 
			
		||||
#  endif
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										92
									
								
								boost/config/requires_threads.hpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										92
									
								
								boost/config/requires_threads.hpp
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,92 @@
 | 
			
		|||
//  (C) Copyright John Maddock 2003. 
 | 
			
		||||
//  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)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#ifndef BOOST_CONFIG_REQUIRES_THREADS_HPP
 | 
			
		||||
#define BOOST_CONFIG_REQUIRES_THREADS_HPP
 | 
			
		||||
 | 
			
		||||
#ifndef BOOST_CONFIG_HPP
 | 
			
		||||
#  include <boost/config.hpp>
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if defined(BOOST_DISABLE_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))
 | 
			
		||||
//
 | 
			
		||||
// this is checked up to gcc 3.3:
 | 
			
		||||
//
 | 
			
		||||
#if defined(__sgi) || defined(__hpux)
 | 
			
		||||
#  error "Multi-threaded programs are not supported by gcc on HPUX or Irix (last checked with gcc 3.3)"
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#  error "Threading support unavaliable: it has been explicitly disabled with BOOST_DISABLE_THREADS"
 | 
			
		||||
 | 
			
		||||
#elif !defined(BOOST_HAS_THREADS)
 | 
			
		||||
 | 
			
		||||
# if defined __COMO__
 | 
			
		||||
//  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)"
 | 
			
		||||
 | 
			
		||||
#elif defined(__INTEL_COMPILER) || defined(__ICL) || defined(__ICC) || defined(__ECC)
 | 
			
		||||
//  Intel
 | 
			
		||||
#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"
 | 
			
		||||
#else
 | 
			
		||||
#   error "Compiler threading support is not turned on. Please set the correct command line options for threading: -openmp"
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
# elif defined __GNUC__
 | 
			
		||||
//  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)"
 | 
			
		||||
 | 
			
		||||
#elif defined __sgi
 | 
			
		||||
//  SGI MIPSpro C++
 | 
			
		||||
#   error "Compiler threading support is not turned on. Please set the correct command line options for threading: -D_SGI_MP_SOURCE"
 | 
			
		||||
 | 
			
		||||
#elif defined __DECCXX
 | 
			
		||||
//  Compaq Tru64 Unix cxx
 | 
			
		||||
#   error "Compiler threading support is not turned on. Please set the correct command line options for threading: -pthread"
 | 
			
		||||
 | 
			
		||||
#elif defined __BORLANDC__
 | 
			
		||||
//  Borland
 | 
			
		||||
#   error "Compiler threading support is not turned on. Please set the correct command line options for threading: -tWM"
 | 
			
		||||
 | 
			
		||||
#elif defined  __MWERKS__
 | 
			
		||||
//  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"
 | 
			
		||||
 | 
			
		||||
#elif defined  __SUNPRO_CC
 | 
			
		||||
//  Sun Workshop Compiler C++
 | 
			
		||||
#   error "Compiler threading support is not turned on. Please set the correct command line options for threading: -mt"
 | 
			
		||||
 | 
			
		||||
#elif defined __HP_aCC
 | 
			
		||||
//  HP aCC
 | 
			
		||||
#   error "Compiler threading support is not turned on. Please set the correct command line options for threading: -mt"
 | 
			
		||||
 | 
			
		||||
#elif defined(__IBMCPP__)
 | 
			
		||||
//  IBM Visual Age
 | 
			
		||||
#   error "Compiler threading support is not turned on. Please compile the code with the xlC_r compiler"
 | 
			
		||||
 | 
			
		||||
#elif defined _MSC_VER
 | 
			
		||||
//  Microsoft Visual C++
 | 
			
		||||
//
 | 
			
		||||
//  Must remain the last #elif since some other vendors (Metrowerks, for
 | 
			
		||||
//  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"
 | 
			
		||||
 | 
			
		||||
#else
 | 
			
		||||
 | 
			
		||||
#  error "Compiler threading support is not turned on.  Please consult your compiler's documentation for the appropriate options to use"
 | 
			
		||||
 | 
			
		||||
#endif // compilers
 | 
			
		||||
 | 
			
		||||
#endif // BOOST_HAS_THREADS
 | 
			
		||||
 | 
			
		||||
#endif // BOOST_CONFIG_REQUIRES_THREADS_HPP
 | 
			
		||||
							
								
								
									
										144
									
								
								boost/config/select_compiler_config.hpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										144
									
								
								boost/config/select_compiler_config.hpp
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,144 @@
 | 
			
		|||
//  Boost compiler configuration selection header file
 | 
			
		||||
 | 
			
		||||
//  (C) Copyright John Maddock 2001 - 2003. 
 | 
			
		||||
//  (C) Copyright Martin Wille 2003.
 | 
			
		||||
//  (C) Copyright Guillaume Melquiond 2003.
 | 
			
		||||
//
 | 
			
		||||
//  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/ for most recent version.
 | 
			
		||||
 | 
			
		||||
// locate which compiler we are using and define
 | 
			
		||||
// BOOST_COMPILER_CONFIG as needed: 
 | 
			
		||||
 | 
			
		||||
#if defined __CUDACC__
 | 
			
		||||
//  NVIDIA CUDA C++ compiler for GPU
 | 
			
		||||
#   include "boost/config/compiler/nvcc.hpp"
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if defined(__GCCXML__)
 | 
			
		||||
// GCC-XML emulates other compilers, it has to appear first here!
 | 
			
		||||
#   define BOOST_COMPILER_CONFIG "boost/config/compiler/gcc_xml.hpp"
 | 
			
		||||
 | 
			
		||||
#elif defined(_CRAYC)
 | 
			
		||||
// EDG based Cray compiler:
 | 
			
		||||
#   define BOOST_COMPILER_CONFIG "boost/config/compiler/cray.hpp"
 | 
			
		||||
 | 
			
		||||
#elif defined __COMO__
 | 
			
		||||
//  Comeau C++
 | 
			
		||||
#   define BOOST_COMPILER_CONFIG "boost/config/compiler/comeau.hpp"
 | 
			
		||||
 | 
			
		||||
#elif defined(__PATHSCALE__) && (__PATHCC__ >= 4)
 | 
			
		||||
// PathScale EKOPath compiler (has to come before clang and gcc)
 | 
			
		||||
#   define BOOST_COMPILER_CONFIG "boost/config/compiler/pathscale.hpp"
 | 
			
		||||
 | 
			
		||||
#elif defined(__INTEL_COMPILER) || defined(__ICL) || defined(__ICC) || defined(__ECC)
 | 
			
		||||
//  Intel
 | 
			
		||||
#   define BOOST_COMPILER_CONFIG "boost/config/compiler/intel.hpp"
 | 
			
		||||
 | 
			
		||||
#elif defined __clang__ && !defined(__CUDACC__)
 | 
			
		||||
// when using clang and cuda at same time, you want to appear as gcc
 | 
			
		||||
//  Clang C++ emulates GCC, so it has to appear early.
 | 
			
		||||
#   define BOOST_COMPILER_CONFIG "boost/config/compiler/clang.hpp"
 | 
			
		||||
 | 
			
		||||
#elif defined __DMC__
 | 
			
		||||
//  Digital Mars C++
 | 
			
		||||
#   define BOOST_COMPILER_CONFIG "boost/config/compiler/digitalmars.hpp"
 | 
			
		||||
 | 
			
		||||
# elif defined __GNUC__
 | 
			
		||||
//  GNU C++:
 | 
			
		||||
#   define BOOST_COMPILER_CONFIG "boost/config/compiler/gcc.hpp"
 | 
			
		||||
 | 
			
		||||
#elif defined __KCC
 | 
			
		||||
//  Kai C++
 | 
			
		||||
#   define BOOST_COMPILER_CONFIG "boost/config/compiler/kai.hpp"
 | 
			
		||||
 | 
			
		||||
#elif defined __sgi
 | 
			
		||||
//  SGI MIPSpro C++
 | 
			
		||||
#   define BOOST_COMPILER_CONFIG "boost/config/compiler/sgi_mipspro.hpp"
 | 
			
		||||
 | 
			
		||||
#elif defined __DECCXX
 | 
			
		||||
//  Compaq Tru64 Unix cxx
 | 
			
		||||
#   define BOOST_COMPILER_CONFIG "boost/config/compiler/compaq_cxx.hpp"
 | 
			
		||||
 | 
			
		||||
#elif defined __ghs
 | 
			
		||||
//  Greenhills C++
 | 
			
		||||
#   define BOOST_COMPILER_CONFIG "boost/config/compiler/greenhills.hpp"
 | 
			
		||||
 | 
			
		||||
#elif defined __CODEGEARC__
 | 
			
		||||
//  CodeGear - must be checked for before Borland
 | 
			
		||||
#   define BOOST_COMPILER_CONFIG "boost/config/compiler/codegear.hpp"
 | 
			
		||||
 | 
			
		||||
#elif defined __BORLANDC__
 | 
			
		||||
//  Borland
 | 
			
		||||
#   define BOOST_COMPILER_CONFIG "boost/config/compiler/borland.hpp"
 | 
			
		||||
 | 
			
		||||
#elif defined  __MWERKS__
 | 
			
		||||
//  Metrowerks CodeWarrior
 | 
			
		||||
#   define BOOST_COMPILER_CONFIG "boost/config/compiler/metrowerks.hpp"
 | 
			
		||||
 | 
			
		||||
#elif defined  __SUNPRO_CC
 | 
			
		||||
//  Sun Workshop Compiler C++
 | 
			
		||||
#   define BOOST_COMPILER_CONFIG "boost/config/compiler/sunpro_cc.hpp"
 | 
			
		||||
 | 
			
		||||
#elif defined __HP_aCC
 | 
			
		||||
//  HP aCC
 | 
			
		||||
#   define BOOST_COMPILER_CONFIG "boost/config/compiler/hp_acc.hpp"
 | 
			
		||||
 | 
			
		||||
#elif defined(__MRC__) || defined(__SC__)
 | 
			
		||||
//  MPW MrCpp or SCpp
 | 
			
		||||
#   define BOOST_COMPILER_CONFIG "boost/config/compiler/mpw.hpp"
 | 
			
		||||
 | 
			
		||||
#elif defined(__IBMCPP__)
 | 
			
		||||
//  IBM Visual Age
 | 
			
		||||
#   define BOOST_COMPILER_CONFIG "boost/config/compiler/vacpp.hpp"
 | 
			
		||||
 | 
			
		||||
#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
 | 
			
		||||
 | 
			
		||||
#if 0
 | 
			
		||||
//
 | 
			
		||||
// This section allows dependency scanners to find all the headers we *might* include:
 | 
			
		||||
//
 | 
			
		||||
#include "boost/config/compiler/gcc_xml.hpp"
 | 
			
		||||
#include "boost/config/compiler/cray.hpp"
 | 
			
		||||
#include "boost/config/compiler/comeau.hpp"
 | 
			
		||||
#include "boost/config/compiler/pathscale.hpp"
 | 
			
		||||
#include "boost/config/compiler/intel.hpp"
 | 
			
		||||
#include "boost/config/compiler/clang.hpp"
 | 
			
		||||
#include "boost/config/compiler/digitalmars.hpp"
 | 
			
		||||
#include "boost/config/compiler/gcc.hpp"
 | 
			
		||||
#include "boost/config/compiler/kai.hpp"
 | 
			
		||||
#include "boost/config/compiler/sgi_mipspro.hpp"
 | 
			
		||||
#include "boost/config/compiler/compaq_cxx.hpp"
 | 
			
		||||
#include "boost/config/compiler/greenhills.hpp"
 | 
			
		||||
#include "boost/config/compiler/codegear.hpp"
 | 
			
		||||
#include "boost/config/compiler/borland.hpp"
 | 
			
		||||
#include "boost/config/compiler/metrowerks.hpp"
 | 
			
		||||
#include "boost/config/compiler/sunpro_cc.hpp"
 | 
			
		||||
#include "boost/config/compiler/hp_acc.hpp"
 | 
			
		||||
#include "boost/config/compiler/mpw.hpp"
 | 
			
		||||
#include "boost/config/compiler/vacpp.hpp"
 | 
			
		||||
#include "boost/config/compiler/pgi.hpp"
 | 
			
		||||
#include "boost/config/compiler/visualc.hpp"
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										129
									
								
								boost/config/select_platform_config.hpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										129
									
								
								boost/config/select_platform_config.hpp
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,129 @@
 | 
			
		|||
//  Boost compiler configuration selection header file
 | 
			
		||||
 | 
			
		||||
//  (C) Copyright John Maddock 2001 - 2002. 
 | 
			
		||||
//  (C) Copyright Jens Maurer 2001. 
 | 
			
		||||
//  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.
 | 
			
		||||
 | 
			
		||||
// 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
 | 
			
		||||
// <header_name> in order to prevent macro expansion within the header
 | 
			
		||||
// name (for example "linux" is a macro on linux systems).
 | 
			
		||||
 | 
			
		||||
#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?
 | 
			
		||||
#  define BOOST_PLATFORM_CONFIG "boost/config/platform/linux.hpp"
 | 
			
		||||
 | 
			
		||||
#elif defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__DragonFly__)
 | 
			
		||||
// BSD:
 | 
			
		||||
#  define BOOST_PLATFORM_CONFIG "boost/config/platform/bsd.hpp"
 | 
			
		||||
 | 
			
		||||
#elif defined(sun) || defined(__sun)
 | 
			
		||||
// solaris:
 | 
			
		||||
#  define BOOST_PLATFORM_CONFIG "boost/config/platform/solaris.hpp"
 | 
			
		||||
 | 
			
		||||
#elif defined(__sgi)
 | 
			
		||||
// SGI Irix:
 | 
			
		||||
#  define BOOST_PLATFORM_CONFIG "boost/config/platform/irix.hpp"
 | 
			
		||||
 | 
			
		||||
#elif defined(__hpux)
 | 
			
		||||
// hp unix:
 | 
			
		||||
#  define BOOST_PLATFORM_CONFIG "boost/config/platform/hpux.hpp"
 | 
			
		||||
 | 
			
		||||
#elif defined(__CYGWIN__)
 | 
			
		||||
// cygwin is not win32:
 | 
			
		||||
#  define BOOST_PLATFORM_CONFIG "boost/config/platform/cygwin.hpp"
 | 
			
		||||
 | 
			
		||||
#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32)
 | 
			
		||||
// win32:
 | 
			
		||||
#  define BOOST_PLATFORM_CONFIG "boost/config/platform/win32.hpp"
 | 
			
		||||
 | 
			
		||||
#elif defined(__BEOS__)
 | 
			
		||||
// BeOS
 | 
			
		||||
#  define BOOST_PLATFORM_CONFIG "boost/config/platform/beos.hpp"
 | 
			
		||||
 | 
			
		||||
#elif defined(macintosh) || defined(__APPLE__) || defined(__APPLE_CC__)
 | 
			
		||||
// MacOS
 | 
			
		||||
#  define BOOST_PLATFORM_CONFIG "boost/config/platform/macos.hpp"
 | 
			
		||||
 | 
			
		||||
#elif defined(__IBMCPP__) || defined(_AIX)
 | 
			
		||||
// IBM
 | 
			
		||||
#  define BOOST_PLATFORM_CONFIG "boost/config/platform/aix.hpp"
 | 
			
		||||
 | 
			
		||||
#elif defined(__amigaos__)
 | 
			
		||||
// AmigaOS
 | 
			
		||||
#  define BOOST_PLATFORM_CONFIG "boost/config/platform/amigaos.hpp"
 | 
			
		||||
 | 
			
		||||
#elif defined(__QNXNTO__)
 | 
			
		||||
// QNX:
 | 
			
		||||
#  define BOOST_PLATFORM_CONFIG "boost/config/platform/qnxnto.hpp"
 | 
			
		||||
 | 
			
		||||
#elif defined(__VXWORKS__)
 | 
			
		||||
// vxWorks:
 | 
			
		||||
#  define BOOST_PLATFORM_CONFIG "boost/config/platform/vxworks.hpp"
 | 
			
		||||
 | 
			
		||||
#elif defined(__SYMBIAN32__) 
 | 
			
		||||
// Symbian: 
 | 
			
		||||
#  define BOOST_PLATFORM_CONFIG "boost/config/platform/symbian.hpp" 
 | 
			
		||||
 | 
			
		||||
#elif defined(_CRAYC)
 | 
			
		||||
// Cray:
 | 
			
		||||
#  define BOOST_PLATFORM_CONFIG "boost/config/platform/cray.hpp" 
 | 
			
		||||
 | 
			
		||||
#elif defined(__VMS) 
 | 
			
		||||
// VMS:
 | 
			
		||||
#  define BOOST_PLATFORM_CONFIG "boost/config/platform/vms.hpp" 
 | 
			
		||||
#else
 | 
			
		||||
 | 
			
		||||
#  if defined(unix) \
 | 
			
		||||
      || defined(__unix) \
 | 
			
		||||
      || defined(_XOPEN_SOURCE) \
 | 
			
		||||
      || defined(_POSIX_SOURCE)
 | 
			
		||||
 | 
			
		||||
   // generic unix platform:
 | 
			
		||||
 | 
			
		||||
#  ifndef BOOST_HAS_UNISTD_H
 | 
			
		||||
#     define BOOST_HAS_UNISTD_H
 | 
			
		||||
#  endif
 | 
			
		||||
 | 
			
		||||
#  include <boost/config/posix_features.hpp>
 | 
			
		||||
 | 
			
		||||
#  endif
 | 
			
		||||
 | 
			
		||||
#  if defined (BOOST_ASSERT_CONFIG)
 | 
			
		||||
      // this must come last - generate an error if we don't
 | 
			
		||||
      // recognise the platform:
 | 
			
		||||
#     error "Unknown platform - please configure and report the results to boost.org"
 | 
			
		||||
#  endif
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if 0
 | 
			
		||||
//
 | 
			
		||||
// This section allows dependency scanners to find all the files we *might* include:
 | 
			
		||||
//
 | 
			
		||||
#  include "boost/config/platform/linux.hpp"
 | 
			
		||||
#  include "boost/config/platform/bsd.hpp"
 | 
			
		||||
#  include "boost/config/platform/solaris.hpp"
 | 
			
		||||
#  include "boost/config/platform/irix.hpp"
 | 
			
		||||
#  include "boost/config/platform/hpux.hpp"
 | 
			
		||||
#  include "boost/config/platform/cygwin.hpp"
 | 
			
		||||
#  include "boost/config/platform/win32.hpp"
 | 
			
		||||
#  include "boost/config/platform/beos.hpp"
 | 
			
		||||
#  include "boost/config/platform/macos.hpp"
 | 
			
		||||
#  include "boost/config/platform/aix.hpp"
 | 
			
		||||
#  include "boost/config/platform/amigaos.hpp"
 | 
			
		||||
#  include "boost/config/platform/qnxnto.hpp"
 | 
			
		||||
#  include "boost/config/platform/vxworks.hpp"
 | 
			
		||||
#  include "boost/config/platform/symbian.hpp" 
 | 
			
		||||
#  include "boost/config/platform/cray.hpp" 
 | 
			
		||||
#  include "boost/config/platform/vms.hpp" 
 | 
			
		||||
#  include <boost/config/posix_features.hpp>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										105
									
								
								boost/config/select_stdlib_config.hpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										105
									
								
								boost/config/select_stdlib_config.hpp
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,105 @@
 | 
			
		|||
//  Boost compiler configuration selection header file
 | 
			
		||||
 | 
			
		||||
//  (C) Copyright John Maddock 2001 - 2003. 
 | 
			
		||||
//  (C) Copyright Jens Maurer 2001 - 2002. 
 | 
			
		||||
//  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.
 | 
			
		||||
 | 
			
		||||
// 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
 | 
			
		||||
// (do not rely on this header being included since users can short-circuit this header 
 | 
			
		||||
//  if they know whose std lib they are using.)
 | 
			
		||||
#ifdef __cplusplus
 | 
			
		||||
#  include <cstddef>
 | 
			
		||||
#else
 | 
			
		||||
#  include <stddef.h>
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION)
 | 
			
		||||
// STLPort library; this _must_ come first, otherwise since
 | 
			
		||||
// STLport typically sits on top of some other library, we
 | 
			
		||||
// can end up detecting that first rather than STLport:
 | 
			
		||||
#  define BOOST_STDLIB_CONFIG "boost/config/stdlib/stlport.hpp"
 | 
			
		||||
 | 
			
		||||
#else
 | 
			
		||||
 | 
			
		||||
// If our std lib was not some version of STLport, and has not otherwise
 | 
			
		||||
// been detected, then include <utility> as it is about 
 | 
			
		||||
// 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 we get those definitions.
 | 
			
		||||
// Note: do not rely on this header being included since users can short-circuit this 
 | 
			
		||||
// #include if they know whose std lib they are using.
 | 
			
		||||
#if !defined(__LIBCOMO__) && !defined(__STD_RWCOMPILER_H__) && !defined(_RWSTD_VER)\
 | 
			
		||||
   && !defined(_LIBCPP_VERSION) && !defined(__GLIBCPP__) && !defined(__GLIBCXX__)\
 | 
			
		||||
   && !defined(__STL_CONFIG_H) && !defined(__MSL_CPP__) && !defined(__IBMCPP__)\
 | 
			
		||||
   && !defined(MSIPL_COMPILE_H) && !defined(_YVALS) && !defined(_CPPLIB_VER)
 | 
			
		||||
#include <utility>
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if defined(__LIBCOMO__)
 | 
			
		||||
// Comeau STL:
 | 
			
		||||
#define BOOST_STDLIB_CONFIG "boost/config/stdlib/libcomo.hpp"
 | 
			
		||||
 | 
			
		||||
#elif defined(__STD_RWCOMPILER_H__) || defined(_RWSTD_VER)
 | 
			
		||||
// Rogue Wave library:
 | 
			
		||||
#  define BOOST_STDLIB_CONFIG "boost/config/stdlib/roguewave.hpp"
 | 
			
		||||
 | 
			
		||||
#elif defined(_LIBCPP_VERSION)
 | 
			
		||||
// libc++
 | 
			
		||||
#  define BOOST_STDLIB_CONFIG "boost/config/stdlib/libcpp.hpp"
 | 
			
		||||
 | 
			
		||||
#elif defined(__GLIBCPP__) || defined(__GLIBCXX__)
 | 
			
		||||
// GNU libstdc++ 3
 | 
			
		||||
#  define BOOST_STDLIB_CONFIG "boost/config/stdlib/libstdcpp3.hpp"
 | 
			
		||||
 | 
			
		||||
#elif defined(__STL_CONFIG_H)
 | 
			
		||||
// generic SGI STL
 | 
			
		||||
#  define BOOST_STDLIB_CONFIG "boost/config/stdlib/sgi.hpp"
 | 
			
		||||
 | 
			
		||||
#elif defined(__MSL_CPP__)
 | 
			
		||||
// MSL standard lib:
 | 
			
		||||
#  define BOOST_STDLIB_CONFIG "boost/config/stdlib/msl.hpp"
 | 
			
		||||
 | 
			
		||||
#elif defined(__IBMCPP__)
 | 
			
		||||
// take the default VACPP std lib
 | 
			
		||||
#  define BOOST_STDLIB_CONFIG "boost/config/stdlib/vacpp.hpp"
 | 
			
		||||
 | 
			
		||||
#elif defined(MSIPL_COMPILE_H)
 | 
			
		||||
// Modena C++ standard library
 | 
			
		||||
#  define BOOST_STDLIB_CONFIG "boost/config/stdlib/modena.hpp"
 | 
			
		||||
 | 
			
		||||
#elif (defined(_YVALS) && !defined(__IBMCPP__)) || defined(_CPPLIB_VER)
 | 
			
		||||
// Dinkumware Library (this has to appear after any possible replacement libraries):
 | 
			
		||||
#  define BOOST_STDLIB_CONFIG "boost/config/stdlib/dinkumware.hpp"
 | 
			
		||||
 | 
			
		||||
#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
 | 
			
		||||
 | 
			
		||||
#if 0
 | 
			
		||||
//
 | 
			
		||||
// This section allows dependency scanners to find all the files we *might* include:
 | 
			
		||||
//
 | 
			
		||||
#  include "boost/config/stdlib/stlport.hpp"
 | 
			
		||||
#  include "boost/config/stdlib/libcomo.hpp"
 | 
			
		||||
#  include "boost/config/stdlib/roguewave.hpp"
 | 
			
		||||
#  include "boost/config/stdlib/libcpp.hpp"
 | 
			
		||||
#  include "boost/config/stdlib/libstdcpp3.hpp"
 | 
			
		||||
#  include "boost/config/stdlib/sgi.hpp"
 | 
			
		||||
#  include "boost/config/stdlib/msl.hpp"
 | 
			
		||||
#  include "boost/config/stdlib/vacpp.hpp"
 | 
			
		||||
#  include "boost/config/stdlib/modena.hpp"
 | 
			
		||||
#  include "boost/config/stdlib/dinkumware.hpp"
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										170
									
								
								boost/config/stdlib/dinkumware.hpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										170
									
								
								boost/config/stdlib/dinkumware.hpp
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,170 @@
 | 
			
		|||
//  (C) Copyright John Maddock 2001 - 2003.
 | 
			
		||||
//  (C) Copyright Jens Maurer 2001.
 | 
			
		||||
//  (C) Copyright Peter Dimov 2001.
 | 
			
		||||
//  (C) Copyright David Abrahams 2002.
 | 
			
		||||
//  (C) Copyright Guillaume Melquiond 2003.
 | 
			
		||||
//  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.
 | 
			
		||||
 | 
			
		||||
//  Dinkumware standard library config:
 | 
			
		||||
 | 
			
		||||
#if !defined(_YVALS) && !defined(_CPPLIB_VER)
 | 
			
		||||
#include <boost/config/no_tr1/utility.hpp>
 | 
			
		||||
#if !defined(_YVALS) && !defined(_CPPLIB_VER)
 | 
			
		||||
#error This is not the Dinkumware lib!
 | 
			
		||||
#endif
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#if defined(_CPPLIB_VER) && (_CPPLIB_VER >= 306)
 | 
			
		||||
   // full dinkumware 3.06 and above
 | 
			
		||||
   // 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
 | 
			
		||||
#     define BOOST_NO_STDC_NAMESPACE
 | 
			
		||||
#  endif
 | 
			
		||||
#  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
 | 
			
		||||
#  endif
 | 
			
		||||
#  define BOOST_HAS_PARTIAL_STD_ALLOCATOR
 | 
			
		||||
#  if defined(BOOST_MSVC) && (BOOST_MSVC < 1300)
 | 
			
		||||
      // if this lib version is set up for vc6 then there is no std::use_facet:
 | 
			
		||||
#     define BOOST_NO_STD_USE_FACET
 | 
			
		||||
#     define BOOST_HAS_TWO_ARG_USE_FACET
 | 
			
		||||
      // C lib functions aren't in namespace std either:
 | 
			
		||||
#     define BOOST_NO_STDC_NAMESPACE
 | 
			
		||||
      // and nor is <exception>
 | 
			
		||||
#     define BOOST_NO_EXCEPTION_STD_NAMESPACE
 | 
			
		||||
#  endif
 | 
			
		||||
// There's no numeric_limits<long long> support unless _LONGLONG is defined:
 | 
			
		||||
#  if !defined(_LONGLONG) && (_CPPLIB_VER <= 310)
 | 
			
		||||
#     define BOOST_NO_MS_INT64_NUMERIC_LIMITS
 | 
			
		||||
#  endif
 | 
			
		||||
// 3.06 appears to have (non-sgi versions of) <hash_set> & <hash_map>,
 | 
			
		||||
// and no <slist> at all
 | 
			
		||||
#else
 | 
			
		||||
#  define BOOST_MSVC_STD_ITERATOR 1
 | 
			
		||||
#  define BOOST_NO_STD_ITERATOR
 | 
			
		||||
#  define BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS
 | 
			
		||||
#  define BOOST_NO_STD_ALLOCATOR
 | 
			
		||||
#  define BOOST_NO_STDC_NAMESPACE
 | 
			
		||||
#  define BOOST_NO_STD_USE_FACET
 | 
			
		||||
#  define BOOST_NO_STD_OUTPUT_ITERATOR_ASSIGN
 | 
			
		||||
#  define BOOST_HAS_MACRO_USE_FACET
 | 
			
		||||
#  ifndef _CPPLIB_VER
 | 
			
		||||
      // Updated Dinkum library defines this, and provides
 | 
			
		||||
      // its own min and max definitions, as does MTA version.
 | 
			
		||||
#     ifndef __MTA__ 
 | 
			
		||||
#        define BOOST_NO_STD_MIN_MAX
 | 
			
		||||
#     endif
 | 
			
		||||
#     define BOOST_NO_MS_INT64_NUMERIC_LIMITS
 | 
			
		||||
#  endif
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
//
 | 
			
		||||
// std extension namespace is stdext for vc7.1 and later, 
 | 
			
		||||
// the same applies to other compilers that sit on top
 | 
			
		||||
// of vc7.1 (Intel and Comeau):
 | 
			
		||||
//
 | 
			
		||||
#if defined(_MSC_VER) && (_MSC_VER >= 1310) && !defined(__BORLANDC__)
 | 
			
		||||
#  define BOOST_STD_EXTENSION_NAMESPACE stdext
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#if (defined(_MSC_VER) && (_MSC_VER <= 1300) && !defined(__BORLANDC__)) || !defined(_CPPLIB_VER) || (_CPPLIB_VER < 306)
 | 
			
		||||
   // if we're using a dinkum lib that's
 | 
			
		||||
   // been configured for VC6/7 then there is
 | 
			
		||||
   // no iterator traits (true even for icl)
 | 
			
		||||
#  define BOOST_NO_STD_ITERATOR_TRAITS
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if defined(__ICL) && (__ICL < 800) && defined(_CPPLIB_VER) && (_CPPLIB_VER <= 310)
 | 
			
		||||
// Intel C++ chokes over any non-trivial use of <locale>
 | 
			
		||||
// this may be an overly restrictive define, but regex fails without it:
 | 
			
		||||
#  define BOOST_NO_STD_LOCALE
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
// Fix for VC++ 8.0 on up ( I do not have a previous version to test )
 | 
			
		||||
// or clang-cl. If exceptions are off you must manually include the 
 | 
			
		||||
// <exception> header before including the <typeinfo> header. Admittedly 
 | 
			
		||||
// trying to use Boost libraries or the standard C++ libraries without 
 | 
			
		||||
// exception support is not suggested but currently clang-cl ( v 3.4 ) 
 | 
			
		||||
// does not support exceptions and must be compiled with exceptions off.
 | 
			
		||||
#if !_HAS_EXCEPTIONS && ((defined(BOOST_MSVC) && BOOST_MSVC >= 1400) || (defined(__clang__) && defined(_MSC_VER)))
 | 
			
		||||
#include <exception>
 | 
			
		||||
#endif
 | 
			
		||||
#include <typeinfo>
 | 
			
		||||
#if ( (!_HAS_EXCEPTIONS && !defined(__ghs__)) || (!_HAS_NAMESPACE && defined(__ghs__)) ) && !defined(__TI_COMPILER_VERSION__)
 | 
			
		||||
#  define BOOST_NO_STD_TYPEINFO
 | 
			
		||||
#endif  
 | 
			
		||||
 | 
			
		||||
//  C++0x headers implemented in 520 (as shipped by Microsoft)
 | 
			
		||||
//
 | 
			
		||||
#if !defined(_CPPLIB_VER) || _CPPLIB_VER < 520
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_ARRAY
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_CODECVT
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_FORWARD_LIST
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_RANDOM
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_REGEX
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_SYSTEM_ERROR
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_UNORDERED_MAP
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_UNORDERED_SET
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_TUPLE
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_TYPEINDEX
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_FUNCTIONAL
 | 
			
		||||
#  define BOOST_NO_CXX11_NUMERIC_LIMITS
 | 
			
		||||
#  define BOOST_NO_CXX11_SMART_PTR
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if ((!defined(_HAS_TR1_IMPORTS) || (_HAS_TR1_IMPORTS+0 == 0)) && !defined(BOOST_NO_CXX11_HDR_TUPLE)) \
 | 
			
		||||
  && (!defined(_CPPLIB_VER) || _CPPLIB_VER < 610)
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_TUPLE
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
//  C++0x headers implemented in 540 (as shipped by Microsoft)
 | 
			
		||||
//
 | 
			
		||||
#if !defined(_CPPLIB_VER) || _CPPLIB_VER < 540
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_TYPE_TRAITS
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_CHRONO
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_FUTURE
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_MUTEX
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_RATIO
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_THREAD
 | 
			
		||||
#  define BOOST_NO_CXX11_ATOMIC_SMART_PTR
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
//  C++0x headers implemented in 610 (as shipped by Microsoft)
 | 
			
		||||
//
 | 
			
		||||
#if !defined(_CPPLIB_VER) || _CPPLIB_VER < 610
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_ATOMIC
 | 
			
		||||
#  define BOOST_NO_CXX11_ALLOCATOR
 | 
			
		||||
// 540 has std::align but it is not a conforming implementation
 | 
			
		||||
#  define BOOST_NO_CXX11_STD_ALIGN
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if defined(BOOST_INTEL) && (BOOST_INTEL <= 1400)
 | 
			
		||||
// Intel's compiler can't handle this header yet:
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_ATOMIC
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
//  520..610 have std::addressof, but it doesn't support functions
 | 
			
		||||
//
 | 
			
		||||
#  define BOOST_NO_CXX11_ADDRESSOF
 | 
			
		||||
 | 
			
		||||
#ifdef _CPPLIB_VER
 | 
			
		||||
#  define BOOST_DINKUMWARE_STDLIB _CPPLIB_VER
 | 
			
		||||
#else
 | 
			
		||||
#  define BOOST_DINKUMWARE_STDLIB 1
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#ifdef _CPPLIB_VER
 | 
			
		||||
#  define BOOST_STDLIB "Dinkumware standard library version " BOOST_STRINGIZE(_CPPLIB_VER)
 | 
			
		||||
#else
 | 
			
		||||
#  define BOOST_STDLIB "Dinkumware standard library version 1.x"
 | 
			
		||||
#endif
 | 
			
		||||
							
								
								
									
										75
									
								
								boost/config/stdlib/libcomo.hpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										75
									
								
								boost/config/stdlib/libcomo.hpp
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,75 @@
 | 
			
		|||
//  (C) Copyright John Maddock 2002 - 2003. 
 | 
			
		||||
//  (C) Copyright Jens Maurer 2002 - 2003. 
 | 
			
		||||
//  (C) Copyright Beman Dawes 2002 - 2003. 
 | 
			
		||||
//  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.
 | 
			
		||||
 | 
			
		||||
//  Comeau STL:
 | 
			
		||||
 | 
			
		||||
#if !defined(__LIBCOMO__)
 | 
			
		||||
#  include <boost/config/no_tr1/utility.hpp>
 | 
			
		||||
#  if !defined(__LIBCOMO__)
 | 
			
		||||
#      error "This is not the Comeau STL!"
 | 
			
		||||
#  endif
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
//
 | 
			
		||||
// std::streambuf<wchar_t> is non-standard
 | 
			
		||||
// NOTE: versions of libcomo prior to beta28 have octal version numbering,
 | 
			
		||||
// e.g. version 25 is 21 (dec)
 | 
			
		||||
#if __LIBCOMO_VERSION__ <= 22
 | 
			
		||||
#  define BOOST_NO_STD_WSTREAMBUF
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if (__LIBCOMO_VERSION__ <= 31) && defined(_WIN32)
 | 
			
		||||
#define BOOST_NO_SWPRINTF
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if __LIBCOMO_VERSION__ >= 31
 | 
			
		||||
#  define BOOST_HAS_HASH
 | 
			
		||||
#  define BOOST_HAS_SLIST
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
//  C++0x headers not yet implemented
 | 
			
		||||
//
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_ARRAY
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_CHRONO
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_CODECVT
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_FORWARD_LIST
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_FUTURE
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_MUTEX
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_RANDOM
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_RATIO
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_REGEX
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_SYSTEM_ERROR
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_THREAD
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_TUPLE
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_TYPE_TRAITS
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_TYPEINDEX
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_UNORDERED_MAP
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_UNORDERED_SET
 | 
			
		||||
#  define BOOST_NO_CXX11_NUMERIC_LIMITS
 | 
			
		||||
#  define BOOST_NO_CXX11_ALLOCATOR
 | 
			
		||||
#  define BOOST_NO_CXX11_ATOMIC_SMART_PTR
 | 
			
		||||
#  define BOOST_NO_CXX11_SMART_PTR
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_FUNCTIONAL
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_ATOMIC
 | 
			
		||||
#  define BOOST_NO_CXX11_STD_ALIGN
 | 
			
		||||
#  define BOOST_NO_CXX11_ADDRESSOF
 | 
			
		||||
 | 
			
		||||
//
 | 
			
		||||
// Intrinsic type_traits support.
 | 
			
		||||
// 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:
 | 
			
		||||
//
 | 
			
		||||
#define BOOST_HAS_SGI_TYPE_TRAITS
 | 
			
		||||
 | 
			
		||||
#define BOOST_STDLIB "Comeau standard library " BOOST_STRINGIZE(__LIBCOMO_VERSION__)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										70
									
								
								boost/config/stdlib/libcpp.hpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										70
									
								
								boost/config/stdlib/libcpp.hpp
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,70 @@
 | 
			
		|||
//  (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_CXX11_HDR_TUPLE
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
// BOOST_NO_CXX11_ALLOCATOR should imply no support for the C++11
 | 
			
		||||
// allocator model. The C++11 allocator model requires a conforming
 | 
			
		||||
// std::allocator_traits which is only possible with C++11 template
 | 
			
		||||
// aliases since members rebind_alloc and rebind_traits require it.
 | 
			
		||||
#if defined(_LIBCPP_HAS_NO_TEMPLATE_ALIASES)
 | 
			
		||||
#    define BOOST_NO_CXX11_ALLOCATOR
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if __cplusplus < 201103
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_ARRAY
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_CODECVT
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_FORWARD_LIST
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_MUTEX
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_RANDOM
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_RATIO
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_REGEX
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_SYSTEM_ERROR
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_THREAD
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_TUPLE
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_TYPEINDEX
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_UNORDERED_MAP
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_UNORDERED_SET
 | 
			
		||||
#  define BOOST_NO_CXX11_NUMERIC_LIMITS
 | 
			
		||||
#  define BOOST_NO_CXX11_ALLOCATOR
 | 
			
		||||
#  define BOOST_NO_CXX11_SMART_PTR
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_FUNCTIONAL
 | 
			
		||||
#  define BOOST_NO_CXX11_STD_ALIGN
 | 
			
		||||
#  define BOOST_NO_CXX11_ADDRESSOF
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
//
 | 
			
		||||
// These appear to be unusable/incomplete so far:
 | 
			
		||||
//
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_CHRONO
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_FUTURE
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_TYPE_TRAITS
 | 
			
		||||
#  define BOOST_NO_CXX11_ATOMIC_SMART_PTR
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_ATOMIC
 | 
			
		||||
 | 
			
		||||
// libc++ uses a non-standard messages_base
 | 
			
		||||
#define BOOST_NO_STD_MESSAGES
 | 
			
		||||
 | 
			
		||||
//  --- end ---
 | 
			
		||||
							
								
								
									
										243
									
								
								boost/config/stdlib/libstdcpp3.hpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										243
									
								
								boost/config/stdlib/libstdcpp3.hpp
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,243 @@
 | 
			
		|||
//  (C) Copyright John Maddock 2001.
 | 
			
		||||
//  (C) Copyright Jens Maurer 2001.
 | 
			
		||||
//  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 libstdc++ v3
 | 
			
		||||
//  not much to go in here:
 | 
			
		||||
 | 
			
		||||
#define BOOST_GNU_STDLIB 1
 | 
			
		||||
 | 
			
		||||
#ifdef __GLIBCXX__
 | 
			
		||||
#define BOOST_STDLIB "GNU libstdc++ version " BOOST_STRINGIZE(__GLIBCXX__)
 | 
			
		||||
#else
 | 
			
		||||
#define BOOST_STDLIB "GNU libstdc++ version " BOOST_STRINGIZE(__GLIBCPP__)
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if !defined(_GLIBCPP_USE_WCHAR_T) && !defined(_GLIBCXX_USE_WCHAR_T)
 | 
			
		||||
#  define BOOST_NO_CWCHAR
 | 
			
		||||
#  define BOOST_NO_CWCTYPE
 | 
			
		||||
#  define BOOST_NO_STD_WSTRING
 | 
			
		||||
#  define BOOST_NO_STD_WSTREAMBUF
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if defined(__osf__) && !defined(_REENTRANT) \
 | 
			
		||||
  && ( defined(_GLIBCXX_HAVE_GTHR_DEFAULT) || defined(_GLIBCPP_HAVE_GTHR_DEFAULT) )
 | 
			
		||||
// GCC 3 on Tru64 forces the definition of _REENTRANT when any std lib header
 | 
			
		||||
// file is included, therefore for consistency we define it here as well.
 | 
			
		||||
#  define _REENTRANT
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#ifdef __GLIBCXX__ // gcc 3.4 and greater:
 | 
			
		||||
#  if defined(_GLIBCXX_HAVE_GTHR_DEFAULT) \
 | 
			
		||||
        || defined(_GLIBCXX__PTHREADS) \
 | 
			
		||||
        || defined(_GLIBCXX_HAS_GTHREADS) \
 | 
			
		||||
        || defined(_WIN32) \
 | 
			
		||||
        || defined(_AIX)
 | 
			
		||||
      //
 | 
			
		||||
      // If the std lib has thread support turned on, then turn it on in Boost
 | 
			
		||||
      // as well.  We do this because some gcc-3.4 std lib headers define _REENTANT
 | 
			
		||||
      // while others do not...
 | 
			
		||||
      //
 | 
			
		||||
#     define BOOST_HAS_THREADS
 | 
			
		||||
#  else
 | 
			
		||||
#     define BOOST_DISABLE_THREADS
 | 
			
		||||
#  endif
 | 
			
		||||
#elif defined(__GLIBCPP__) \
 | 
			
		||||
        && !defined(_GLIBCPP_HAVE_GTHR_DEFAULT) \
 | 
			
		||||
        && !defined(_GLIBCPP__PTHREADS)
 | 
			
		||||
   // disable thread support if the std lib was built single threaded:
 | 
			
		||||
#  define BOOST_DISABLE_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:
 | 
			
		||||
#  define BOOST_HAS_THREADS
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if !defined(_GLIBCPP_USE_LONG_LONG) \
 | 
			
		||||
    && !defined(_GLIBCXX_USE_LONG_LONG)\
 | 
			
		||||
    && defined(BOOST_HAS_LONG_LONG)
 | 
			
		||||
// May have been set by compiler/*.hpp, but "long long" without library
 | 
			
		||||
// support is useless.
 | 
			
		||||
#  undef BOOST_HAS_LONG_LONG
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
// Apple doesn't seem to reliably defined a *unix* macro
 | 
			
		||||
#if !defined(CYGWIN) && (  defined(__unix__)  \
 | 
			
		||||
                        || defined(__unix)    \
 | 
			
		||||
                        || defined(unix)      \
 | 
			
		||||
                        || defined(__APPLE__) \
 | 
			
		||||
                        || defined(__APPLE)   \
 | 
			
		||||
                        || defined(APPLE))
 | 
			
		||||
#  include <unistd.h>
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if defined(__GLIBCXX__) || (defined(__GLIBCPP__) && __GLIBCPP__>=20020514) // GCC >= 3.1.0
 | 
			
		||||
#  define BOOST_STD_EXTENSION_NAMESPACE __gnu_cxx
 | 
			
		||||
#  define BOOST_HAS_SLIST
 | 
			
		||||
#  define BOOST_HAS_HASH
 | 
			
		||||
#  define BOOST_SLIST_HEADER <ext/slist>
 | 
			
		||||
# if !defined(__GNUC__) || __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 3)
 | 
			
		||||
#   define BOOST_HASH_SET_HEADER <ext/hash_set>
 | 
			
		||||
#   define BOOST_HASH_MAP_HEADER <ext/hash_map>
 | 
			
		||||
# else
 | 
			
		||||
#   define BOOST_HASH_SET_HEADER <backward/hash_set>
 | 
			
		||||
#   define BOOST_HASH_MAP_HEADER <backward/hash_map>
 | 
			
		||||
# endif
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
//
 | 
			
		||||
// Decide whether we have C++11 support turned on:
 | 
			
		||||
//
 | 
			
		||||
#if defined(__GXX_EXPERIMENTAL_CXX0X__) || (__cplusplus >= 201103)
 | 
			
		||||
#  define BOOST_LIBSTDCXX11
 | 
			
		||||
#endif
 | 
			
		||||
//
 | 
			
		||||
//  Decide which version of libstdc++ we have, normally
 | 
			
		||||
//  stdlibc++ C++0x support is detected via __GNUC__, __GNUC_MINOR__, and possibly
 | 
			
		||||
//  __GNUC_PATCHLEVEL__ at the suggestion of Jonathan Wakely, one of the stdlibc++
 | 
			
		||||
//  developers. He also commented:
 | 
			
		||||
//
 | 
			
		||||
//       "I'm not sure how useful __GLIBCXX__ is for your purposes, for instance in
 | 
			
		||||
//       GCC 4.2.4 it is set to 20080519 but in GCC 4.3.0 it is set to 20080305.
 | 
			
		||||
//       Although 4.3.0 was released earlier than 4.2.4, it has better C++0x support
 | 
			
		||||
//       than any release in the 4.2 series."
 | 
			
		||||
//
 | 
			
		||||
//  Another resource for understanding stdlibc++ features is:
 | 
			
		||||
//  http://gcc.gnu.org/onlinedocs/libstdc++/manual/status.html#manual.intro.status.standard.200x
 | 
			
		||||
//
 | 
			
		||||
//  However, using the GCC version number fails when the compiler is clang since this
 | 
			
		||||
//  only ever claims to emulate GCC-4.2, see https://svn.boost.org/trac/boost/ticket/7473
 | 
			
		||||
//  for a long discussion on this issue.  What we can do though is use clang's __has_include
 | 
			
		||||
//  to detect the presence of a C++11 header that was introduced with a specific GCC release.
 | 
			
		||||
//  We still have to be careful though as many such headers were buggy and/or incomplete when
 | 
			
		||||
//  first introduced, so we only check for headers that were fully featured from day 1, and then
 | 
			
		||||
//  use that to infer the underlying GCC version:
 | 
			
		||||
//
 | 
			
		||||
#ifdef __clang__
 | 
			
		||||
 | 
			
		||||
#if __has_include(<experimental/any>)
 | 
			
		||||
#  define BOOST_LIBSTDCXX_VERSION 50000
 | 
			
		||||
#elif __has_include(<shared_mutex>)
 | 
			
		||||
#  define BOOST_LIBSTDCXX_VERSION 40900
 | 
			
		||||
#elif __has_include(<ext/cmath>)
 | 
			
		||||
#  define BOOST_LIBSTDCXX_VERSION 40800
 | 
			
		||||
#elif __has_include(<chrono>)
 | 
			
		||||
#  define BOOST_LIBSTDCXX_VERSION 40700
 | 
			
		||||
#elif __has_include(<typeindex>)
 | 
			
		||||
#  define BOOST_LIBSTDCXX_VERSION 40600
 | 
			
		||||
#elif __has_include(<future>)
 | 
			
		||||
#  define BOOST_LIBSTDCXX_VERSION 40500
 | 
			
		||||
#elif  __has_include(<ratio>)
 | 
			
		||||
#  define BOOST_LIBSTDCXX_VERSION 40400
 | 
			
		||||
#elif __has_include(<array>)
 | 
			
		||||
#  define BOOST_LIBSTDCXX_VERSION 40300
 | 
			
		||||
#endif
 | 
			
		||||
//
 | 
			
		||||
//  GCC 4.8 and 9 add working versions of <atomic> and <regex> respectively.
 | 
			
		||||
//  However, we have no test for these as the headers were present but broken
 | 
			
		||||
//  in early GCC versions.
 | 
			
		||||
//
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if !defined(BOOST_LIBSTDCXX_VERSION)
 | 
			
		||||
#  define BOOST_LIBSTDCXX_VERSION (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__)
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
//  C++0x headers in GCC 4.3.0 and later
 | 
			
		||||
//
 | 
			
		||||
#if (BOOST_LIBSTDCXX_VERSION < 40300) || !defined(BOOST_LIBSTDCXX11)
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_ARRAY
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_TUPLE
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_UNORDERED_MAP
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_UNORDERED_SET
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_FUNCTIONAL
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
//  C++0x headers in GCC 4.4.0 and later
 | 
			
		||||
//
 | 
			
		||||
#if (BOOST_LIBSTDCXX_VERSION < 40400) || !defined(BOOST_LIBSTDCXX11)
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_FORWARD_LIST
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_MUTEX
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_RATIO
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_SYSTEM_ERROR
 | 
			
		||||
#  define BOOST_NO_CXX11_SMART_PTR
 | 
			
		||||
#else
 | 
			
		||||
#  define BOOST_HAS_TR1_COMPLEX_INVERSE_TRIG 
 | 
			
		||||
#  define BOOST_HAS_TR1_COMPLEX_OVERLOADS 
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
//  C++0x features in GCC 4.5.0 and later
 | 
			
		||||
//
 | 
			
		||||
#if (BOOST_LIBSTDCXX_VERSION < 40500) || !defined(BOOST_LIBSTDCXX11)
 | 
			
		||||
#  define BOOST_NO_CXX11_NUMERIC_LIMITS
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_FUTURE
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_RANDOM
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
//  C++0x features in GCC 4.6.0 and later
 | 
			
		||||
//
 | 
			
		||||
#if (BOOST_LIBSTDCXX_VERSION < 40600) || !defined(BOOST_LIBSTDCXX11)
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_TYPEINDEX
 | 
			
		||||
#  define BOOST_NO_CXX11_ADDRESSOF
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
//  C++0x features in GCC 4.7.0 and later
 | 
			
		||||
//
 | 
			
		||||
#if (BOOST_LIBSTDCXX_VERSION < 40700) || !defined(BOOST_LIBSTDCXX11)
 | 
			
		||||
// Note that although <chrono> existed prior to 4.7, "steady_clock" is spelled "monotonic_clock"
 | 
			
		||||
// so 4.7.0 is the first truely conforming one.
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_CHRONO
 | 
			
		||||
#  define BOOST_NO_CXX11_ALLOCATOR
 | 
			
		||||
#endif
 | 
			
		||||
//  C++0x features in GCC 4.8.0 and later
 | 
			
		||||
//
 | 
			
		||||
#if (BOOST_LIBSTDCXX_VERSION < 40800) || !defined(BOOST_LIBSTDCXX11)
 | 
			
		||||
// Note that although <atomic> existed prior to gcc 4.8 it was largely unimplemented for many types:
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_ATOMIC
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_THREAD
 | 
			
		||||
#endif
 | 
			
		||||
#if (BOOST_LIBSTDCXX_VERSION < 40900) || !defined(BOOST_LIBSTDCXX11)
 | 
			
		||||
// Although <regex> is present and compilable against, the actual implementation is not functional
 | 
			
		||||
// even for the simplest patterns such as "\d" or "[0-9]". This is the case at least in gcc up to 4.8, inclusively.
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_REGEX
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if defined(__clang_major__) && ((__clang_major__ < 3) || ((__clang_major__ == 3) && (__clang_minor__ < 7)))
 | 
			
		||||
// As of clang-3.6, libstdc++ header <atomic> throws up errors with clang:
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_ATOMIC
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
//  C++0x headers not yet (fully!) implemented
 | 
			
		||||
//
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_TYPE_TRAITS
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_CODECVT
 | 
			
		||||
#  define BOOST_NO_CXX11_ATOMIC_SMART_PTR
 | 
			
		||||
#  define BOOST_NO_CXX11_STD_ALIGN
 | 
			
		||||
 | 
			
		||||
#if (!defined(_GLIBCXX_HAS_GTHREADS) || !defined(_GLIBCXX_USE_C99_STDINT_TR1))
 | 
			
		||||
   // Headers not always available:
 | 
			
		||||
#  ifndef BOOST_NO_CXX11_HDR_CONDITION_VARIABLE
 | 
			
		||||
#     define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE
 | 
			
		||||
#  endif
 | 
			
		||||
#  ifndef BOOST_NO_CXX11_HDR_MUTEX
 | 
			
		||||
#     define BOOST_NO_CXX11_HDR_MUTEX
 | 
			
		||||
#  endif
 | 
			
		||||
#  ifndef BOOST_NO_CXX11_HDR_THREAD
 | 
			
		||||
#     define BOOST_NO_CXX11_HDR_THREAD
 | 
			
		||||
#  endif
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if (!defined(_GTHREAD_USE_MUTEX_TIMEDLOCK) || (_GTHREAD_USE_MUTEX_TIMEDLOCK == 0)) && !defined(BOOST_NO_CXX11_HDR_MUTEX)
 | 
			
		||||
// Timed mutexes are not always available:
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_MUTEX
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
//  --- end ---
 | 
			
		||||
							
								
								
									
										59
									
								
								boost/config/stdlib/modena.hpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										59
									
								
								boost/config/stdlib/modena.hpp
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,59 @@
 | 
			
		|||
//  (C) Copyright Jens Maurer 2001. 
 | 
			
		||||
//  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.
 | 
			
		||||
 | 
			
		||||
//  Modena C++ standard library (comes with KAI C++)
 | 
			
		||||
 | 
			
		||||
#if !defined(MSIPL_COMPILE_H)
 | 
			
		||||
#  include <boost/config/no_tr1/utility.hpp>
 | 
			
		||||
#  if !defined(__MSIPL_COMPILE_H)
 | 
			
		||||
#      error "This is not the Modena C++ library!"
 | 
			
		||||
#  endif
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#ifndef MSIPL_NL_TYPES
 | 
			
		||||
#define BOOST_NO_STD_MESSAGES
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#ifndef MSIPL_WCHART
 | 
			
		||||
#define BOOST_NO_STD_WSTRING
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
//  C++0x headers not yet implemented
 | 
			
		||||
//
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_ARRAY
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_CHRONO
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_CODECVT
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_FORWARD_LIST
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_FUTURE
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_MUTEX
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_RANDOM
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_RATIO
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_REGEX
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_SYSTEM_ERROR
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_THREAD
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_TUPLE
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_TYPE_TRAITS
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_TYPEINDEX
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_UNORDERED_MAP
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_UNORDERED_SET
 | 
			
		||||
#  define BOOST_NO_CXX11_NUMERIC_LIMITS
 | 
			
		||||
#  define BOOST_NO_CXX11_ALLOCATOR
 | 
			
		||||
#  define BOOST_NO_CXX11_ATOMIC_SMART_PTR
 | 
			
		||||
#  define BOOST_NO_CXX11_SMART_PTR
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_FUNCTIONAL
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_ATOMIC
 | 
			
		||||
#  define BOOST_NO_CXX11_STD_ALIGN
 | 
			
		||||
#  define BOOST_NO_CXX11_ADDRESSOF
 | 
			
		||||
 | 
			
		||||
#define BOOST_STDLIB "Modena C++ standard library"
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										87
									
								
								boost/config/stdlib/msl.hpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										87
									
								
								boost/config/stdlib/msl.hpp
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,87 @@
 | 
			
		|||
//  (C) Copyright John Maddock 2001. 
 | 
			
		||||
//  (C) Copyright Darin Adler 2001. 
 | 
			
		||||
//  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.
 | 
			
		||||
 | 
			
		||||
//  Metrowerks standard library:
 | 
			
		||||
 | 
			
		||||
#ifndef __MSL_CPP__
 | 
			
		||||
#  include <boost/config/no_tr1/utility.hpp>
 | 
			
		||||
#  ifndef __MSL_CPP__
 | 
			
		||||
#     error This is not the MSL standard library!
 | 
			
		||||
#  endif
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if __MSL_CPP__ >= 0x6000  // Pro 6
 | 
			
		||||
#  define BOOST_HAS_HASH
 | 
			
		||||
#  define BOOST_STD_EXTENSION_NAMESPACE Metrowerks
 | 
			
		||||
#endif
 | 
			
		||||
#define BOOST_HAS_SLIST
 | 
			
		||||
 | 
			
		||||
#if __MSL_CPP__ < 0x6209
 | 
			
		||||
#  define BOOST_NO_STD_MESSAGES
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
// check C lib version for <stdint.h>
 | 
			
		||||
#include <cstddef>
 | 
			
		||||
 | 
			
		||||
#if defined(__MSL__) && (__MSL__ >= 0x5000)
 | 
			
		||||
#  define BOOST_HAS_STDINT_H
 | 
			
		||||
#  if !defined(__PALMOS_TRAPS__)
 | 
			
		||||
#    define BOOST_HAS_UNISTD_H
 | 
			
		||||
#  endif
 | 
			
		||||
   // boilerplate code:
 | 
			
		||||
#  include <boost/config/posix_features.hpp>
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if defined(_MWMT) || _MSL_THREADSAFE
 | 
			
		||||
#  define BOOST_HAS_THREADS
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#ifdef _MSL_NO_EXPLICIT_FUNC_TEMPLATE_ARG
 | 
			
		||||
#  define BOOST_NO_STD_USE_FACET
 | 
			
		||||
#  define BOOST_HAS_TWO_ARG_USE_FACET
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
//  C++0x headers not yet implemented
 | 
			
		||||
//
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_ARRAY
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_CHRONO
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_CODECVT
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_FORWARD_LIST
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_FUTURE
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_MUTEX
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_RANDOM
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_RATIO
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_REGEX
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_SYSTEM_ERROR
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_THREAD
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_TUPLE
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_TYPE_TRAITS
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_TYPEINDEX
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_UNORDERED_MAP
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_UNORDERED_SET
 | 
			
		||||
#  define BOOST_NO_CXX11_NUMERIC_LIMITS
 | 
			
		||||
#  define BOOST_NO_CXX11_ALLOCATOR
 | 
			
		||||
#  define BOOST_NO_CXX11_ATOMIC_SMART_PTR
 | 
			
		||||
#  define BOOST_NO_CXX11_SMART_PTR
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_FUNCTIONAL
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_ATOMIC
 | 
			
		||||
#  define BOOST_NO_CXX11_STD_ALIGN
 | 
			
		||||
#  define BOOST_NO_CXX11_ADDRESSOF
 | 
			
		||||
 | 
			
		||||
#define BOOST_STDLIB "Metrowerks Standard Library version " BOOST_STRINGIZE(__MSL_CPP__)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										189
									
								
								boost/config/stdlib/roguewave.hpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										189
									
								
								boost/config/stdlib/roguewave.hpp
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,189 @@
 | 
			
		|||
//  (C) Copyright John Maddock 2001 - 2003. 
 | 
			
		||||
//  (C) Copyright Jens Maurer 2001. 
 | 
			
		||||
//  (C) Copyright David Abrahams 2003. 
 | 
			
		||||
//  (C) Copyright Boris Gubenko 2007. 
 | 
			
		||||
//  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.
 | 
			
		||||
 | 
			
		||||
//  Rogue Wave std lib:
 | 
			
		||||
 | 
			
		||||
#define BOOST_RW_STDLIB 1 
 | 
			
		||||
 | 
			
		||||
#if !defined(__STD_RWCOMPILER_H__) && !defined(_RWSTD_VER)
 | 
			
		||||
#  include <boost/config/no_tr1/utility.hpp>
 | 
			
		||||
#  if !defined(__STD_RWCOMPILER_H__) && !defined(_RWSTD_VER)
 | 
			
		||||
#     error This is not the Rogue Wave standard library
 | 
			
		||||
#  endif
 | 
			
		||||
#endif
 | 
			
		||||
//
 | 
			
		||||
// figure out a consistent version number:
 | 
			
		||||
//
 | 
			
		||||
#ifndef _RWSTD_VER
 | 
			
		||||
#  define BOOST_RWSTD_VER 0x010000
 | 
			
		||||
#elif _RWSTD_VER < 0x010000
 | 
			
		||||
#  define BOOST_RWSTD_VER (_RWSTD_VER << 8)
 | 
			
		||||
#else
 | 
			
		||||
#  define BOOST_RWSTD_VER _RWSTD_VER
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#ifndef _RWSTD_VER
 | 
			
		||||
#  define BOOST_STDLIB "Rogue Wave standard library version (Unknown version)"
 | 
			
		||||
#elif _RWSTD_VER < 0x04010200
 | 
			
		||||
 #  define BOOST_STDLIB "Rogue Wave standard library version " BOOST_STRINGIZE(_RWSTD_VER)
 | 
			
		||||
#else
 | 
			
		||||
#  ifdef _RWSTD_VER_STR
 | 
			
		||||
#    define BOOST_STDLIB "Apache STDCXX standard library version " _RWSTD_VER_STR
 | 
			
		||||
#  else
 | 
			
		||||
#    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:
 | 
			
		||||
//
 | 
			
		||||
#if BOOST_RWSTD_VER < 0x020200
 | 
			
		||||
#  define BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
// Sun CC 5.5 patch 113817-07 adds long long specialization, but does not change the
 | 
			
		||||
// 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))
 | 
			
		||||
#  define BOOST_NO_LONG_LONG_NUMERIC_LIMITS
 | 
			
		||||
# endif
 | 
			
		||||
 | 
			
		||||
//
 | 
			
		||||
// Borland version of numeric_limits lacks __int64 specialisation:
 | 
			
		||||
//
 | 
			
		||||
#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)
 | 
			
		||||
#  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)
 | 
			
		||||
#  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:
 | 
			
		||||
//
 | 
			
		||||
#if (BOOST_RWSTD_VER < 0x020000)
 | 
			
		||||
#  define BOOST_NO_AUTO_PTR
 | 
			
		||||
#  define BOOST_NO_STRINGSTREAM
 | 
			
		||||
#  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)
 | 
			
		||||
#  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):
 | 
			
		||||
//
 | 
			
		||||
#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)
 | 
			
		||||
#  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:
 | 
			
		||||
//
 | 
			
		||||
#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:
 | 
			
		||||
//
 | 
			
		||||
#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)
 | 
			
		||||
#  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)
 | 
			
		||||
#  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)
 | 
			
		||||
#  ifndef __HP_TC1_MAKE_PAIR
 | 
			
		||||
#    define __HP_TC1_MAKE_PAIR
 | 
			
		||||
#  endif
 | 
			
		||||
#  ifndef _HP_INSTANTIATE_STD2_VL
 | 
			
		||||
#    define _HP_INSTANTIATE_STD2_VL
 | 
			
		||||
#  endif
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if _RWSTD_VER < 0x05000000
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_ARRAY
 | 
			
		||||
#endif
 | 
			
		||||
// type_traits header is incomplete:
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_TYPE_TRAITS
 | 
			
		||||
//
 | 
			
		||||
//  C++0x headers not yet implemented
 | 
			
		||||
//
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_CHRONO
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_CODECVT
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_FORWARD_LIST
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_FUTURE
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_MUTEX
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_RANDOM
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_RATIO
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_REGEX
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_SYSTEM_ERROR
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_THREAD
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_TUPLE
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_TYPEINDEX
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_UNORDERED_MAP
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_UNORDERED_SET
 | 
			
		||||
#  define BOOST_NO_CXX11_NUMERIC_LIMITS
 | 
			
		||||
#  define BOOST_NO_CXX11_ALLOCATOR
 | 
			
		||||
#  define BOOST_NO_CXX11_ATOMIC_SMART_PTR
 | 
			
		||||
#  define BOOST_NO_CXX11_SMART_PTR
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_FUNCTIONAL
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_ATOMIC
 | 
			
		||||
#  define BOOST_NO_CXX11_STD_ALIGN
 | 
			
		||||
#  define BOOST_NO_CXX11_ADDRESSOF
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										151
									
								
								boost/config/stdlib/sgi.hpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										151
									
								
								boost/config/stdlib/sgi.hpp
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,151 @@
 | 
			
		|||
//  (C) Copyright John Maddock 2001 - 2003. 
 | 
			
		||||
//  (C) Copyright Darin Adler 2001. 
 | 
			
		||||
//  (C) Copyright Jens Maurer 2001 - 2003. 
 | 
			
		||||
//  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.
 | 
			
		||||
 | 
			
		||||
//  generic SGI STL:
 | 
			
		||||
 | 
			
		||||
#if !defined(__STL_CONFIG_H)
 | 
			
		||||
#  include <boost/config/no_tr1/utility.hpp>
 | 
			
		||||
#  if !defined(__STL_CONFIG_H)
 | 
			
		||||
#      error "This is not the SGI STL!"
 | 
			
		||||
#  endif
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
//
 | 
			
		||||
// No std::iterator traits without partial specialisation:
 | 
			
		||||
//
 | 
			
		||||
#if !defined(__STL_CLASS_PARTIAL_SPECIALIZATION)
 | 
			
		||||
#  define BOOST_NO_STD_ITERATOR_TRAITS
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
//
 | 
			
		||||
// No std::stringstream with gcc < 3
 | 
			
		||||
//
 | 
			
		||||
#if defined(__GNUC__) && (__GNUC__ < 3) && \
 | 
			
		||||
     ((__GNUC_MINOR__ < 95) || (__GNUC_MINOR__ == 96)) && \
 | 
			
		||||
     !defined(__STL_USE_NEW_IOSTREAMS) || \
 | 
			
		||||
   defined(__APPLE_CC__)
 | 
			
		||||
   // 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>
 | 
			
		||||
   // 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
 | 
			
		||||
   // than by running the configure script).
 | 
			
		||||
   // Also, the unofficial GNU C++ 2.96 included in RedHat 7.1 doesn't
 | 
			
		||||
   // have <sstream>.
 | 
			
		||||
#  define BOOST_NO_STRINGSTREAM
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
// Apple doesn't seem to reliably defined a *unix* macro
 | 
			
		||||
#if !defined(CYGWIN) && (  defined(__unix__)  \
 | 
			
		||||
                        || defined(__unix)    \
 | 
			
		||||
                        || defined(unix)      \
 | 
			
		||||
                        || defined(__APPLE__) \
 | 
			
		||||
                        || defined(__APPLE)   \
 | 
			
		||||
                        || defined(APPLE))
 | 
			
		||||
#  include <unistd.h>
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
//
 | 
			
		||||
// Assume no std::locale without own iostreams (this may be an
 | 
			
		||||
// incorrect assumption in some cases):
 | 
			
		||||
//
 | 
			
		||||
#if !defined(__SGI_STL_OWN_IOSTREAMS) && !defined(__STL_USE_NEW_IOSTREAMS)
 | 
			
		||||
#  define BOOST_NO_STD_LOCALE
 | 
			
		||||
#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
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
//
 | 
			
		||||
// SGI's new iostreams have missing "const" in messages<>::open
 | 
			
		||||
//
 | 
			
		||||
#if defined(__sgi) && (_COMPILER_VERSION <= 740) && defined(__STL_USE_NEW_IOSTREAMS)
 | 
			
		||||
#  define BOOST_NO_STD_MESSAGES
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
//
 | 
			
		||||
// No template iterator constructors, or std::allocator
 | 
			
		||||
// without member templates:
 | 
			
		||||
//
 | 
			
		||||
#if !defined(__STL_MEMBER_TEMPLATES)
 | 
			
		||||
#  define BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS
 | 
			
		||||
#  define BOOST_NO_STD_ALLOCATOR
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
//
 | 
			
		||||
// We always have SGI style hash_set, hash_map, and slist:
 | 
			
		||||
//
 | 
			
		||||
#define BOOST_HAS_HASH
 | 
			
		||||
#define BOOST_HAS_SLIST
 | 
			
		||||
 | 
			
		||||
//
 | 
			
		||||
// If this is GNU libstdc++2, then no <limits> and no std::wstring:
 | 
			
		||||
//
 | 
			
		||||
#if (defined(__GNUC__) && (__GNUC__ < 3))
 | 
			
		||||
#  include <string>
 | 
			
		||||
#  if defined(__BASTRING__)
 | 
			
		||||
#     define BOOST_NO_LIMITS
 | 
			
		||||
// Note: <boost/limits.hpp> will provide compile-time constants
 | 
			
		||||
#     undef BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
 | 
			
		||||
#     define BOOST_NO_STD_WSTRING
 | 
			
		||||
#  endif
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
//
 | 
			
		||||
// There is no standard iterator unless we have namespace support:
 | 
			
		||||
//
 | 
			
		||||
#if !defined(__STL_USE_NAMESPACES)
 | 
			
		||||
#  define BOOST_NO_STD_ITERATOR
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
//
 | 
			
		||||
// Intrinsic type_traits support.
 | 
			
		||||
// 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:
 | 
			
		||||
//
 | 
			
		||||
#define BOOST_HAS_SGI_TYPE_TRAITS
 | 
			
		||||
 | 
			
		||||
//  C++0x headers not yet implemented
 | 
			
		||||
//
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_ARRAY
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_CHRONO
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_CODECVT
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_FORWARD_LIST
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_FUTURE
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_MUTEX
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_RANDOM
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_RATIO
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_REGEX
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_SYSTEM_ERROR
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_THREAD
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_TUPLE
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_TYPE_TRAITS
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_TYPEINDEX
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_UNORDERED_MAP
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_UNORDERED_SET
 | 
			
		||||
#  define BOOST_NO_CXX11_NUMERIC_LIMITS
 | 
			
		||||
#  define BOOST_NO_CXX11_ALLOCATOR
 | 
			
		||||
#  define BOOST_NO_CXX11_ATOMIC_SMART_PTR
 | 
			
		||||
#  define BOOST_NO_CXX11_SMART_PTR
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_FUNCTIONAL
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_ATOMIC
 | 
			
		||||
#  define BOOST_NO_CXX11_STD_ALIGN
 | 
			
		||||
#  define BOOST_NO_CXX11_ADDRESSOF
 | 
			
		||||
 | 
			
		||||
#define BOOST_STDLIB "SGI standard library"
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										246
									
								
								boost/config/stdlib/stlport.hpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										246
									
								
								boost/config/stdlib/stlport.hpp
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,246 @@
 | 
			
		|||
//  (C) Copyright John Maddock 2001 - 2002. 
 | 
			
		||||
//  (C) Copyright Darin Adler 2001. 
 | 
			
		||||
//  (C) Copyright Jens Maurer 2001. 
 | 
			
		||||
//  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.
 | 
			
		||||
 | 
			
		||||
//  STLPort standard library config:
 | 
			
		||||
 | 
			
		||||
#if !defined(__SGI_STL_PORT) && !defined(_STLPORT_VERSION)
 | 
			
		||||
#  include <cstddef>
 | 
			
		||||
#  if !defined(__SGI_STL_PORT) && !defined(_STLPORT_VERSION)
 | 
			
		||||
#      error "This is not STLPort!"
 | 
			
		||||
#  endif
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
// Apple doesn't seem to reliably defined a *unix* macro
 | 
			
		||||
#if !defined(CYGWIN) && (  defined(__unix__)  \
 | 
			
		||||
                        || defined(__unix)    \
 | 
			
		||||
                        || defined(unix)      \
 | 
			
		||||
                        || defined(__APPLE__) \
 | 
			
		||||
                        || defined(__APPLE)   \
 | 
			
		||||
                        || defined(APPLE))
 | 
			
		||||
#  include <unistd.h>
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
//
 | 
			
		||||
// __STL_STATIC_CONST_INIT_BUG implies BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
 | 
			
		||||
// for versions prior to 4.1(beta)
 | 
			
		||||
//
 | 
			
		||||
#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
 | 
			
		||||
 | 
			
		||||
//
 | 
			
		||||
// If STLport thinks that there is no partial specialisation, then there is no
 | 
			
		||||
// std::iterator traits:
 | 
			
		||||
//
 | 
			
		||||
#if !(defined(_STLP_CLASS_PARTIAL_SPECIALIZATION) || defined(__STL_CLASS_PARTIAL_SPECIALIZATION))
 | 
			
		||||
#  define BOOST_NO_STD_ITERATOR_TRAITS
 | 
			
		||||
#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))
 | 
			
		||||
#  define BOOST_NO_STRINGSTREAM
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
//
 | 
			
		||||
// No new iostreams implies no std::locale, and no std::stringstream:
 | 
			
		||||
//
 | 
			
		||||
#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_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::
 | 
			
		||||
//
 | 
			
		||||
#ifdef _STLPORT_VERSION
 | 
			
		||||
#  if !(_STLPORT_VERSION >= 0x500) && !defined(_STLP_OWN_IOSTREAMS) && defined(_STLP_USE_NAMESPACES) && defined(BOOST_NO_USING_TEMPLATE) && !defined(__BORLANDC__)
 | 
			
		||||
#     define BOOST_NO_STD_LOCALE
 | 
			
		||||
#  endif
 | 
			
		||||
#else
 | 
			
		||||
#  if !defined(__SGI_STL_OWN_IOSTREAMS) && defined(__STL_USE_NAMESPACES) && defined(BOOST_NO_USING_TEMPLATE) && !defined(__BORLANDC__)
 | 
			
		||||
#     define BOOST_NO_STD_LOCALE
 | 
			
		||||
#  endif
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if defined(_STLPORT_VERSION) && (_STLPORT_VERSION >= 0x520)
 | 
			
		||||
#  define BOOST_HAS_TR1_UNORDERED_SET
 | 
			
		||||
#  define BOOST_HAS_TR1_UNORDERED_MAP
 | 
			
		||||
#endif
 | 
			
		||||
//
 | 
			
		||||
// Without member template support enabled, their are no template
 | 
			
		||||
// iterate constructors, and no std::allocator:
 | 
			
		||||
//
 | 
			
		||||
#if !(defined(__STL_MEMBER_TEMPLATES) || defined(_STLP_MEMBER_TEMPLATES))
 | 
			
		||||
#  define BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS
 | 
			
		||||
#  define BOOST_NO_STD_ALLOCATOR
 | 
			
		||||
#endif
 | 
			
		||||
//
 | 
			
		||||
// however we always have at least a partial allocator:
 | 
			
		||||
//
 | 
			
		||||
#define BOOST_HAS_PARTIAL_STD_ALLOCATOR
 | 
			
		||||
 | 
			
		||||
#if !defined(_STLP_MEMBER_TEMPLATE_CLASSES) || defined(_STLP_DONT_SUPPORT_REBIND_MEMBER_TEMPLATE)
 | 
			
		||||
#  define BOOST_NO_STD_ALLOCATOR
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if defined(_STLP_NO_MEMBER_TEMPLATE_KEYWORD) && defined(BOOST_MSVC) && (BOOST_MSVC <= 1300)
 | 
			
		||||
#  define BOOST_NO_STD_ALLOCATOR
 | 
			
		||||
#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.
 | 
			
		||||
//
 | 
			
		||||
#if !defined(_STLP_HAS_WCHAR_T) && !defined(_STLP_WCHAR_T_IS_USHORT)
 | 
			
		||||
#  ifndef  BOOST_NO_STD_WSTRING
 | 
			
		||||
#     define BOOST_NO_STD_WSTRING
 | 
			
		||||
#  endif
 | 
			
		||||
#  ifndef  BOOST_NO_STD_WSTREAMBUF
 | 
			
		||||
#     define BOOST_NO_STD_WSTREAMBUF
 | 
			
		||||
#  endif
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
//
 | 
			
		||||
// We always have SGI style hash_set, hash_map, and slist:
 | 
			
		||||
//
 | 
			
		||||
#ifndef _STLP_NO_EXTENSIONS
 | 
			
		||||
#define BOOST_HAS_HASH
 | 
			
		||||
#define BOOST_HAS_SLIST
 | 
			
		||||
#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:
 | 
			
		||||
//
 | 
			
		||||
//
 | 
			
		||||
// Harold Howe says:
 | 
			
		||||
// Borland switched to STLport in BCB6. Defining BOOST_NO_STDC_NAMESPACE with
 | 
			
		||||
// BCB6 does cause problems. If we detect C++ Builder, then don't define 
 | 
			
		||||
// BOOST_NO_STDC_NAMESPACE
 | 
			
		||||
//
 | 
			
		||||
#if !defined(__BORLANDC__) && !defined(__DMC__)
 | 
			
		||||
//
 | 
			
		||||
// If STLport is using it's own namespace, and the real names are in
 | 
			
		||||
// 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::
 | 
			
		||||
// 
 | 
			
		||||
#  if (defined(__STL_IMPORT_VENDOR_CSTD) \
 | 
			
		||||
         || defined(__STL_USE_OWN_NAMESPACE) \
 | 
			
		||||
         || defined(_STLP_IMPORT_VENDOR_CSTD) \
 | 
			
		||||
         || defined(_STLP_USE_OWN_NAMESPACE)) \
 | 
			
		||||
      && (defined(__STL_VENDOR_GLOBAL_CSTD) || defined (_STLP_VENDOR_GLOBAL_CSTD))
 | 
			
		||||
#     define BOOST_NO_STDC_NAMESPACE
 | 
			
		||||
#     define BOOST_NO_EXCEPTION_STD_NAMESPACE
 | 
			
		||||
#  endif
 | 
			
		||||
#elif defined(__BORLANDC__) && __BORLANDC__ < 0x560
 | 
			
		||||
// STLport doesn't import std::abs correctly:
 | 
			
		||||
#include <stdlib.h>
 | 
			
		||||
namespace std { using ::abs; }
 | 
			
		||||
// and strcmp/strcpy don't get imported either ('cos they are macros)
 | 
			
		||||
#include <string.h>
 | 
			
		||||
#ifdef strcpy
 | 
			
		||||
#  undef strcpy
 | 
			
		||||
#endif
 | 
			
		||||
#ifdef strcmp
 | 
			
		||||
#  undef strcmp
 | 
			
		||||
#endif
 | 
			
		||||
#ifdef _STLP_VENDOR_CSTD
 | 
			
		||||
namespace std{ using _STLP_VENDOR_CSTD::strcmp; using _STLP_VENDOR_CSTD::strcpy; }
 | 
			
		||||
#endif
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
//
 | 
			
		||||
// std::use_facet may be non-standard, uses a class instead:
 | 
			
		||||
//
 | 
			
		||||
#if defined(__STL_NO_EXPLICIT_FUNCTION_TMPL_ARGS) || defined(_STLP_NO_EXPLICIT_FUNCTION_TMPL_ARGS)
 | 
			
		||||
#  define BOOST_NO_STD_USE_FACET
 | 
			
		||||
#  define BOOST_HAS_STLP_USE_FACET
 | 
			
		||||
#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).
 | 
			
		||||
//
 | 
			
		||||
#if defined(_STLP_NO_NATIVE_WIDE_FUNCTIONS) && !defined(BOOST_NO_STDC_NAMESPACE)
 | 
			
		||||
#  define BOOST_NO_CWCHAR
 | 
			
		||||
#  define BOOST_NO_CWCTYPE
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
//
 | 
			
		||||
// If STLport for some reason was configured so that it thinks that wchar_t
 | 
			
		||||
// 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( _STLP_HAS_WCHAR_T) || defined(_STLP_WCHAR_T_IS_USHORT)
 | 
			
		||||
#  undef  BOOST_NO_INTRINSIC_WCHAR_T
 | 
			
		||||
#  define BOOST_NO_INTRINSIC_WCHAR_T
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
//
 | 
			
		||||
// Borland ships a version of STLport with C++ Builder 6 that lacks
 | 
			
		||||
// hashtables and the like:
 | 
			
		||||
//
 | 
			
		||||
#if defined(__BORLANDC__) && (__BORLANDC__ == 0x560)
 | 
			
		||||
#  undef BOOST_HAS_HASH
 | 
			
		||||
#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)
 | 
			
		||||
#  include <algorithm> // for std::min and std::max
 | 
			
		||||
#  define BOOST_USING_STD_MIN() ((void)0)
 | 
			
		||||
#  define BOOST_USING_STD_MAX() ((void)0)
 | 
			
		||||
namespace boost { using std::min; using std::max; }
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
//  C++0x headers not yet implemented
 | 
			
		||||
//
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_ARRAY
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_CHRONO
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_CODECVT
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_FORWARD_LIST
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_FUTURE
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_MUTEX
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_RANDOM
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_RATIO
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_REGEX
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_SYSTEM_ERROR
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_THREAD
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_TUPLE
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_TYPE_TRAITS
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_TYPEINDEX
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_UNORDERED_MAP
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_UNORDERED_SET
 | 
			
		||||
#  define BOOST_NO_CXX11_NUMERIC_LIMITS
 | 
			
		||||
#  define BOOST_NO_CXX11_ALLOCATOR
 | 
			
		||||
#  define BOOST_NO_CXX11_ATOMIC_SMART_PTR
 | 
			
		||||
#  define BOOST_NO_CXX11_SMART_PTR
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_FUNCTIONAL
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_ATOMIC
 | 
			
		||||
#  define BOOST_NO_CXX11_STD_ALIGN
 | 
			
		||||
#  define BOOST_NO_CXX11_ADDRESSOF
 | 
			
		||||
 | 
			
		||||
#define BOOST_STDLIB "STLPort standard library version " BOOST_STRINGIZE(__SGI_STL_PORT)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										57
									
								
								boost/config/stdlib/vacpp.hpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										57
									
								
								boost/config/stdlib/vacpp.hpp
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,57 @@
 | 
			
		|||
//  (C) Copyright John Maddock 2001 - 2002. 
 | 
			
		||||
//  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.
 | 
			
		||||
 | 
			
		||||
#if __IBMCPP__ <= 501
 | 
			
		||||
#  define BOOST_NO_STD_ALLOCATOR
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#define BOOST_HAS_MACRO_USE_FACET
 | 
			
		||||
#define BOOST_NO_STD_MESSAGES
 | 
			
		||||
 | 
			
		||||
// Apple doesn't seem to reliably defined a *unix* macro
 | 
			
		||||
#if !defined(CYGWIN) && (  defined(__unix__)  \
 | 
			
		||||
                        || defined(__unix)    \
 | 
			
		||||
                        || defined(unix)      \
 | 
			
		||||
                        || defined(__APPLE__) \
 | 
			
		||||
                        || defined(__APPLE)   \
 | 
			
		||||
                        || defined(APPLE))
 | 
			
		||||
#  include <unistd.h>
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
//  C++0x headers not yet implemented
 | 
			
		||||
//
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_ARRAY
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_CHRONO
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_CODECVT
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_FORWARD_LIST
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_FUTURE
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_MUTEX
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_RANDOM
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_RATIO
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_REGEX
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_SYSTEM_ERROR
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_THREAD
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_TUPLE
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_TYPE_TRAITS
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_TYPEINDEX
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_UNORDERED_MAP
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_UNORDERED_SET
 | 
			
		||||
#  define BOOST_NO_CXX11_NUMERIC_LIMITS
 | 
			
		||||
#  define BOOST_NO_CXX11_ALLOCATOR
 | 
			
		||||
#  define BOOST_NO_CXX11_ATOMIC_SMART_PTR
 | 
			
		||||
#  define BOOST_NO_CXX11_SMART_PTR
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_FUNCTIONAL
 | 
			
		||||
#  define BOOST_NO_CXX11_HDR_ATOMIC
 | 
			
		||||
#  define BOOST_NO_CXX11_STD_ALIGN
 | 
			
		||||
#  define BOOST_NO_CXX11_ADDRESSOF
 | 
			
		||||
 | 
			
		||||
#define BOOST_STDLIB "Visual Age default standard library"
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										995
									
								
								boost/config/suffix.hpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										995
									
								
								boost/config/suffix.hpp
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,995 @@
 | 
			
		|||
//  Boost config.hpp configuration header file  ------------------------------//
 | 
			
		||||
//  boostinspect:ndprecated_macros -- tell the inspect tool to ignore this file
 | 
			
		||||
 | 
			
		||||
//  Copyright (c) 2001-2003 John Maddock
 | 
			
		||||
//  Copyright (c) 2001 Darin Adler
 | 
			
		||||
//  Copyright (c) 2001 Peter Dimov
 | 
			
		||||
//  Copyright (c) 2002 Bill Kempf
 | 
			
		||||
//  Copyright (c) 2002 Jens Maurer
 | 
			
		||||
//  Copyright (c) 2002-2003 David Abrahams
 | 
			
		||||
//  Copyright (c) 2003 Gennaro Prota
 | 
			
		||||
//  Copyright (c) 2003 Eric Friedman
 | 
			
		||||
//  Copyright (c) 2010 Eric Jourdanneau, Joel Falcou
 | 
			
		||||
// 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/ for most recent version.
 | 
			
		||||
 | 
			
		||||
//  Boost config.hpp policy and rationale documentation has been moved to
 | 
			
		||||
//  http://www.boost.org/libs/config/
 | 
			
		||||
//
 | 
			
		||||
//  This file is intended to be stable, and relatively unchanging.
 | 
			
		||||
//  It should contain boilerplate code only - no compiler specific
 | 
			
		||||
//  code unless it is unavoidable - no changes unless unavoidable.
 | 
			
		||||
 | 
			
		||||
#ifndef BOOST_CONFIG_SUFFIX_HPP
 | 
			
		||||
#define BOOST_CONFIG_SUFFIX_HPP
 | 
			
		||||
 | 
			
		||||
#if defined(__GNUC__) && (__GNUC__ >= 4)
 | 
			
		||||
//
 | 
			
		||||
// Some GCC-4.x versions issue warnings even when __extension__ is used,
 | 
			
		||||
// so use this as a workaround:
 | 
			
		||||
//
 | 
			
		||||
#pragma GCC system_header
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
//
 | 
			
		||||
// ensure that visibility macros are always defined, thus symplifying use
 | 
			
		||||
//
 | 
			
		||||
#ifndef BOOST_SYMBOL_EXPORT
 | 
			
		||||
# define BOOST_SYMBOL_EXPORT
 | 
			
		||||
#endif
 | 
			
		||||
#ifndef BOOST_SYMBOL_IMPORT
 | 
			
		||||
# define BOOST_SYMBOL_IMPORT
 | 
			
		||||
#endif
 | 
			
		||||
#ifndef BOOST_SYMBOL_VISIBLE
 | 
			
		||||
# define BOOST_SYMBOL_VISIBLE
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
//
 | 
			
		||||
// look for long long by looking for the appropriate macros in <limits.h>.
 | 
			
		||||
// Note that we use limits.h rather than climits for maximal portability,
 | 
			
		||||
// remember that since these just declare a bunch of macros, there should be
 | 
			
		||||
// no namespace issues from this.
 | 
			
		||||
//
 | 
			
		||||
#if !defined(BOOST_HAS_LONG_LONG) && !defined(BOOST_NO_LONG_LONG)                                              \
 | 
			
		||||
   && !defined(BOOST_MSVC) && !defined(__BORLANDC__)
 | 
			
		||||
# include <limits.h>
 | 
			
		||||
# if (defined(ULLONG_MAX) || defined(ULONG_LONG_MAX) || defined(ULONGLONG_MAX))
 | 
			
		||||
#   define BOOST_HAS_LONG_LONG
 | 
			
		||||
# else
 | 
			
		||||
#   define BOOST_NO_LONG_LONG
 | 
			
		||||
# endif
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
// GCC 3.x will clean up all of those nasty macro definitions that
 | 
			
		||||
// BOOST_NO_CTYPE_FUNCTIONS is intended to help work around, so undefine
 | 
			
		||||
// it under GCC 3.x.
 | 
			
		||||
#if defined(__GNUC__) && (__GNUC__ >= 3) && defined(BOOST_NO_CTYPE_FUNCTIONS)
 | 
			
		||||
#  undef BOOST_NO_CTYPE_FUNCTIONS
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
//
 | 
			
		||||
// Assume any extensions are in namespace std:: unless stated otherwise:
 | 
			
		||||
//
 | 
			
		||||
#  ifndef BOOST_STD_EXTENSION_NAMESPACE
 | 
			
		||||
#    define BOOST_STD_EXTENSION_NAMESPACE std
 | 
			
		||||
#  endif
 | 
			
		||||
 | 
			
		||||
//
 | 
			
		||||
// If cv-qualified specializations are not allowed, then neither are cv-void ones:
 | 
			
		||||
//
 | 
			
		||||
#  if defined(BOOST_NO_CV_SPECIALIZATIONS) \
 | 
			
		||||
      && !defined(BOOST_NO_CV_VOID_SPECIALIZATIONS)
 | 
			
		||||
#     define BOOST_NO_CV_VOID_SPECIALIZATIONS
 | 
			
		||||
#  endif
 | 
			
		||||
 | 
			
		||||
//
 | 
			
		||||
// If there is no numeric_limits template, then it can't have any compile time
 | 
			
		||||
// constants either!
 | 
			
		||||
//
 | 
			
		||||
#  if defined(BOOST_NO_LIMITS) \
 | 
			
		||||
      && !defined(BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS)
 | 
			
		||||
#     define BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
 | 
			
		||||
#     define BOOST_NO_MS_INT64_NUMERIC_LIMITS
 | 
			
		||||
#     define BOOST_NO_LONG_LONG_NUMERIC_LIMITS
 | 
			
		||||
#  endif
 | 
			
		||||
 | 
			
		||||
//
 | 
			
		||||
// if there is no long long then there is no specialisation
 | 
			
		||||
// for numeric_limits<long long> either:
 | 
			
		||||
//
 | 
			
		||||
#if !defined(BOOST_HAS_LONG_LONG) && !defined(BOOST_NO_LONG_LONG_NUMERIC_LIMITS)
 | 
			
		||||
#  define BOOST_NO_LONG_LONG_NUMERIC_LIMITS
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
//
 | 
			
		||||
// if there is no __int64 then there is no specialisation
 | 
			
		||||
// for numeric_limits<__int64> either:
 | 
			
		||||
//
 | 
			
		||||
#if !defined(BOOST_HAS_MS_INT64) && !defined(BOOST_NO_MS_INT64_NUMERIC_LIMITS)
 | 
			
		||||
#  define BOOST_NO_MS_INT64_NUMERIC_LIMITS
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
//
 | 
			
		||||
// if member templates are supported then so is the
 | 
			
		||||
// VC6 subset of member templates:
 | 
			
		||||
//
 | 
			
		||||
#  if !defined(BOOST_NO_MEMBER_TEMPLATES) \
 | 
			
		||||
       && !defined(BOOST_MSVC6_MEMBER_TEMPLATES)
 | 
			
		||||
#     define BOOST_MSVC6_MEMBER_TEMPLATES
 | 
			
		||||
#  endif
 | 
			
		||||
 | 
			
		||||
//
 | 
			
		||||
// Without partial specialization, can't test for partial specialisation bugs:
 | 
			
		||||
//
 | 
			
		||||
#  if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \
 | 
			
		||||
      && !defined(BOOST_BCB_PARTIAL_SPECIALIZATION_BUG)
 | 
			
		||||
#     define BOOST_BCB_PARTIAL_SPECIALIZATION_BUG
 | 
			
		||||
#  endif
 | 
			
		||||
 | 
			
		||||
//
 | 
			
		||||
// Without partial specialization, we can't have array-type partial specialisations:
 | 
			
		||||
//
 | 
			
		||||
#  if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \
 | 
			
		||||
      && !defined(BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS)
 | 
			
		||||
#     define BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS
 | 
			
		||||
#  endif
 | 
			
		||||
 | 
			
		||||
//
 | 
			
		||||
// Without partial specialization, std::iterator_traits can't work:
 | 
			
		||||
//
 | 
			
		||||
#  if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \
 | 
			
		||||
      && !defined(BOOST_NO_STD_ITERATOR_TRAITS)
 | 
			
		||||
#     define BOOST_NO_STD_ITERATOR_TRAITS
 | 
			
		||||
#  endif
 | 
			
		||||
 | 
			
		||||
//
 | 
			
		||||
// Without partial specialization, partial
 | 
			
		||||
// specialization with default args won't work either:
 | 
			
		||||
//
 | 
			
		||||
#  if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \
 | 
			
		||||
      && !defined(BOOST_NO_PARTIAL_SPECIALIZATION_IMPLICIT_DEFAULT_ARGS)
 | 
			
		||||
#     define BOOST_NO_PARTIAL_SPECIALIZATION_IMPLICIT_DEFAULT_ARGS
 | 
			
		||||
#  endif
 | 
			
		||||
 | 
			
		||||
//
 | 
			
		||||
// Without member template support, we can't have template constructors
 | 
			
		||||
// in the standard library either:
 | 
			
		||||
//
 | 
			
		||||
#  if defined(BOOST_NO_MEMBER_TEMPLATES) \
 | 
			
		||||
      && !defined(BOOST_MSVC6_MEMBER_TEMPLATES) \
 | 
			
		||||
      && !defined(BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS)
 | 
			
		||||
#     define BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS
 | 
			
		||||
#  endif
 | 
			
		||||
 | 
			
		||||
//
 | 
			
		||||
// Without member template support, we can't have a conforming
 | 
			
		||||
// std::allocator template either:
 | 
			
		||||
//
 | 
			
		||||
#  if defined(BOOST_NO_MEMBER_TEMPLATES) \
 | 
			
		||||
      && !defined(BOOST_MSVC6_MEMBER_TEMPLATES) \
 | 
			
		||||
      && !defined(BOOST_NO_STD_ALLOCATOR)
 | 
			
		||||
#     define BOOST_NO_STD_ALLOCATOR
 | 
			
		||||
#  endif
 | 
			
		||||
 | 
			
		||||
//
 | 
			
		||||
// without ADL support then using declarations will break ADL as well:
 | 
			
		||||
//
 | 
			
		||||
#if defined(BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP) && !defined(BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL)
 | 
			
		||||
#  define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
//
 | 
			
		||||
// Without typeid support we have no dynamic RTTI either:
 | 
			
		||||
//
 | 
			
		||||
#if defined(BOOST_NO_TYPEID) && !defined(BOOST_NO_RTTI)
 | 
			
		||||
#  define BOOST_NO_RTTI
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
//
 | 
			
		||||
// If we have a standard allocator, then we have a partial one as well:
 | 
			
		||||
//
 | 
			
		||||
#if !defined(BOOST_NO_STD_ALLOCATOR)
 | 
			
		||||
#  define BOOST_HAS_PARTIAL_STD_ALLOCATOR
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
//
 | 
			
		||||
// We can't have a working std::use_facet if there is no std::locale:
 | 
			
		||||
//
 | 
			
		||||
#  if defined(BOOST_NO_STD_LOCALE) && !defined(BOOST_NO_STD_USE_FACET)
 | 
			
		||||
#     define BOOST_NO_STD_USE_FACET
 | 
			
		||||
#  endif
 | 
			
		||||
 | 
			
		||||
//
 | 
			
		||||
// We can't have a std::messages facet if there is no std::locale:
 | 
			
		||||
//
 | 
			
		||||
#  if defined(BOOST_NO_STD_LOCALE) && !defined(BOOST_NO_STD_MESSAGES)
 | 
			
		||||
#     define BOOST_NO_STD_MESSAGES
 | 
			
		||||
#  endif
 | 
			
		||||
 | 
			
		||||
//
 | 
			
		||||
// We can't have a working std::wstreambuf if there is no std::locale:
 | 
			
		||||
//
 | 
			
		||||
#  if defined(BOOST_NO_STD_LOCALE) && !defined(BOOST_NO_STD_WSTREAMBUF)
 | 
			
		||||
#     define BOOST_NO_STD_WSTREAMBUF
 | 
			
		||||
#  endif
 | 
			
		||||
 | 
			
		||||
//
 | 
			
		||||
// We can't have a <cwctype> if there is no <cwchar>:
 | 
			
		||||
//
 | 
			
		||||
#  if defined(BOOST_NO_CWCHAR) && !defined(BOOST_NO_CWCTYPE)
 | 
			
		||||
#     define BOOST_NO_CWCTYPE
 | 
			
		||||
#  endif
 | 
			
		||||
 | 
			
		||||
//
 | 
			
		||||
// We can't have a swprintf if there is no <cwchar>:
 | 
			
		||||
//
 | 
			
		||||
#  if defined(BOOST_NO_CWCHAR) && !defined(BOOST_NO_SWPRINTF)
 | 
			
		||||
#     define BOOST_NO_SWPRINTF
 | 
			
		||||
#  endif
 | 
			
		||||
 | 
			
		||||
//
 | 
			
		||||
// If Win32 support is turned off, then we must turn off
 | 
			
		||||
// threading support also, unless there is some other
 | 
			
		||||
// thread API enabled:
 | 
			
		||||
//
 | 
			
		||||
#if defined(BOOST_DISABLE_WIN32) && defined(_WIN32) \
 | 
			
		||||
   && !defined(BOOST_DISABLE_THREADS) && !defined(BOOST_HAS_PTHREADS)
 | 
			
		||||
#  define BOOST_DISABLE_THREADS
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
//
 | 
			
		||||
// Turn on threading support if the compiler thinks that it's in
 | 
			
		||||
// multithreaded mode.  We put this here because there are only a
 | 
			
		||||
// limited number of macros that identify this (if there's any missing
 | 
			
		||||
// from here then add to the appropriate compiler section):
 | 
			
		||||
//
 | 
			
		||||
#if (defined(__MT__) || defined(_MT) || defined(_REENTRANT) \
 | 
			
		||||
    || defined(_PTHREADS) || defined(__APPLE__) || defined(__DragonFly__)) \
 | 
			
		||||
    && !defined(BOOST_HAS_THREADS)
 | 
			
		||||
#  define BOOST_HAS_THREADS
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
//
 | 
			
		||||
// Turn threading support off if BOOST_DISABLE_THREADS is defined:
 | 
			
		||||
//
 | 
			
		||||
#if defined(BOOST_DISABLE_THREADS) && defined(BOOST_HAS_THREADS)
 | 
			
		||||
#  undef BOOST_HAS_THREADS
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
//
 | 
			
		||||
// Turn threading support off if we don't recognise the threading API:
 | 
			
		||||
//
 | 
			
		||||
#if defined(BOOST_HAS_THREADS) && !defined(BOOST_HAS_PTHREADS)\
 | 
			
		||||
      && !defined(BOOST_HAS_WINTHREADS) && !defined(BOOST_HAS_BETHREADS)\
 | 
			
		||||
      && !defined(BOOST_HAS_MPTASKS)
 | 
			
		||||
#  undef BOOST_HAS_THREADS
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
//
 | 
			
		||||
// Turn threading detail macros off if we don't (want to) use threading
 | 
			
		||||
//
 | 
			
		||||
#ifndef BOOST_HAS_THREADS
 | 
			
		||||
#  undef BOOST_HAS_PTHREADS
 | 
			
		||||
#  undef BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
 | 
			
		||||
#  undef BOOST_HAS_PTHREAD_YIELD
 | 
			
		||||
#  undef BOOST_HAS_PTHREAD_DELAY_NP
 | 
			
		||||
#  undef BOOST_HAS_WINTHREADS
 | 
			
		||||
#  undef BOOST_HAS_BETHREADS
 | 
			
		||||
#  undef BOOST_HAS_MPTASKS
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
//
 | 
			
		||||
// If the compiler claims to be C99 conformant, then it had better
 | 
			
		||||
// have a <stdint.h>:
 | 
			
		||||
//
 | 
			
		||||
#  if defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901)
 | 
			
		||||
#     define BOOST_HAS_STDINT_H
 | 
			
		||||
#     ifndef BOOST_HAS_LOG1P
 | 
			
		||||
#        define BOOST_HAS_LOG1P
 | 
			
		||||
#     endif
 | 
			
		||||
#     ifndef BOOST_HAS_EXPM1
 | 
			
		||||
#        define BOOST_HAS_EXPM1
 | 
			
		||||
#     endif
 | 
			
		||||
#  endif
 | 
			
		||||
 | 
			
		||||
//
 | 
			
		||||
// Define BOOST_NO_SLIST and BOOST_NO_HASH if required.
 | 
			
		||||
// Note that this is for backwards compatibility only.
 | 
			
		||||
//
 | 
			
		||||
#  if !defined(BOOST_HAS_SLIST) && !defined(BOOST_NO_SLIST)
 | 
			
		||||
#     define BOOST_NO_SLIST
 | 
			
		||||
#  endif
 | 
			
		||||
 | 
			
		||||
#  if !defined(BOOST_HAS_HASH) && !defined(BOOST_NO_HASH)
 | 
			
		||||
#     define BOOST_NO_HASH
 | 
			
		||||
#  endif
 | 
			
		||||
 | 
			
		||||
//
 | 
			
		||||
// Set BOOST_SLIST_HEADER if not set already:
 | 
			
		||||
//
 | 
			
		||||
#if defined(BOOST_HAS_SLIST) && !defined(BOOST_SLIST_HEADER)
 | 
			
		||||
#  define BOOST_SLIST_HEADER <slist>
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
//
 | 
			
		||||
// Set BOOST_HASH_SET_HEADER if not set already:
 | 
			
		||||
//
 | 
			
		||||
#if defined(BOOST_HAS_HASH) && !defined(BOOST_HASH_SET_HEADER)
 | 
			
		||||
#  define BOOST_HASH_SET_HEADER <hash_set>
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
//
 | 
			
		||||
// Set BOOST_HASH_MAP_HEADER if not set already:
 | 
			
		||||
//
 | 
			
		||||
#if defined(BOOST_HAS_HASH) && !defined(BOOST_HASH_MAP_HEADER)
 | 
			
		||||
#  define BOOST_HASH_MAP_HEADER <hash_map>
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
//  BOOST_HAS_ABI_HEADERS
 | 
			
		||||
//  This macro gets set if we have headers that fix the ABI,
 | 
			
		||||
//  and prevent ODR violations when linking to external libraries:
 | 
			
		||||
#if defined(BOOST_ABI_PREFIX) && defined(BOOST_ABI_SUFFIX) && !defined(BOOST_HAS_ABI_HEADERS)
 | 
			
		||||
#  define BOOST_HAS_ABI_HEADERS
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if defined(BOOST_HAS_ABI_HEADERS) && defined(BOOST_DISABLE_ABI_HEADERS)
 | 
			
		||||
#  undef BOOST_HAS_ABI_HEADERS
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
//  BOOST_NO_STDC_NAMESPACE workaround  --------------------------------------//
 | 
			
		||||
//  Because std::size_t usage is so common, even in boost headers which do not
 | 
			
		||||
//  otherwise use the C library, the <cstddef> workaround is included here so
 | 
			
		||||
//  that ugly workaround code need not appear in many other boost headers.
 | 
			
		||||
//  NOTE WELL: This is a workaround for non-conforming compilers; <cstddef>
 | 
			
		||||
//  must still be #included in the usual places so that <cstddef> inclusion
 | 
			
		||||
//  works as expected with standard conforming compilers.  The resulting
 | 
			
		||||
//  double inclusion of <cstddef> is harmless.
 | 
			
		||||
 | 
			
		||||
# if defined(BOOST_NO_STDC_NAMESPACE) && defined(__cplusplus)
 | 
			
		||||
#   include <cstddef>
 | 
			
		||||
    namespace std { using ::ptrdiff_t; using ::size_t; }
 | 
			
		||||
# endif
 | 
			
		||||
 | 
			
		||||
//  Workaround for the unfortunate min/max macros defined by some platform headers
 | 
			
		||||
 | 
			
		||||
#define BOOST_PREVENT_MACRO_SUBSTITUTION
 | 
			
		||||
 | 
			
		||||
#ifndef BOOST_USING_STD_MIN
 | 
			
		||||
#  define BOOST_USING_STD_MIN() using std::min
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#ifndef BOOST_USING_STD_MAX
 | 
			
		||||
#  define BOOST_USING_STD_MAX() using std::max
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
//  BOOST_NO_STD_MIN_MAX workaround  -----------------------------------------//
 | 
			
		||||
 | 
			
		||||
#  if defined(BOOST_NO_STD_MIN_MAX) && defined(__cplusplus)
 | 
			
		||||
 | 
			
		||||
namespace std {
 | 
			
		||||
  template <class _Tp>
 | 
			
		||||
  inline const _Tp& min BOOST_PREVENT_MACRO_SUBSTITUTION (const _Tp& __a, const _Tp& __b) {
 | 
			
		||||
    return __b < __a ? __b : __a;
 | 
			
		||||
  }
 | 
			
		||||
  template <class _Tp>
 | 
			
		||||
  inline const _Tp& max BOOST_PREVENT_MACRO_SUBSTITUTION (const _Tp& __a, const _Tp& __b) {
 | 
			
		||||
    return  __a < __b ? __b : __a;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#  endif
 | 
			
		||||
 | 
			
		||||
// BOOST_STATIC_CONSTANT workaround --------------------------------------- //
 | 
			
		||||
// On compilers which don't allow in-class initialization of static integral
 | 
			
		||||
// constant members, we must use enums as a workaround if we want the constants
 | 
			
		||||
// to be available at compile-time. This macro gives us a convenient way to
 | 
			
		||||
// declare such constants.
 | 
			
		||||
 | 
			
		||||
#  ifdef BOOST_NO_INCLASS_MEMBER_INITIALIZATION
 | 
			
		||||
#       define BOOST_STATIC_CONSTANT(type, assignment) enum { assignment }
 | 
			
		||||
#  else
 | 
			
		||||
#     define BOOST_STATIC_CONSTANT(type, assignment) static const type assignment
 | 
			
		||||
#  endif
 | 
			
		||||
 | 
			
		||||
// BOOST_USE_FACET / HAS_FACET workaround ----------------------------------//
 | 
			
		||||
// When the standard library does not have a conforming std::use_facet there
 | 
			
		||||
// are various workarounds available, but they differ from library to library.
 | 
			
		||||
// The same problem occurs with has_facet.
 | 
			
		||||
// These macros provide a consistent way to access a locale's facets.
 | 
			
		||||
// Usage:
 | 
			
		||||
//    replace
 | 
			
		||||
//       std::use_facet<Type>(loc);
 | 
			
		||||
//    with
 | 
			
		||||
//       BOOST_USE_FACET(Type, loc);
 | 
			
		||||
//    Note do not add a std:: prefix to the front of BOOST_USE_FACET!
 | 
			
		||||
//  Use for BOOST_HAS_FACET is analogous.
 | 
			
		||||
 | 
			
		||||
#if defined(BOOST_NO_STD_USE_FACET)
 | 
			
		||||
#  ifdef BOOST_HAS_TWO_ARG_USE_FACET
 | 
			
		||||
#     define BOOST_USE_FACET(Type, loc) std::use_facet(loc, static_cast<Type*>(0))
 | 
			
		||||
#     define BOOST_HAS_FACET(Type, loc) std::has_facet(loc, static_cast<Type*>(0))
 | 
			
		||||
#  elif defined(BOOST_HAS_MACRO_USE_FACET)
 | 
			
		||||
#     define BOOST_USE_FACET(Type, loc) std::_USE(loc, Type)
 | 
			
		||||
#     define BOOST_HAS_FACET(Type, loc) std::_HAS(loc, Type)
 | 
			
		||||
#  elif defined(BOOST_HAS_STLP_USE_FACET)
 | 
			
		||||
#     define BOOST_USE_FACET(Type, loc) (*std::_Use_facet<Type >(loc))
 | 
			
		||||
#     define BOOST_HAS_FACET(Type, loc) std::has_facet< Type >(loc)
 | 
			
		||||
#  endif
 | 
			
		||||
#else
 | 
			
		||||
#  define BOOST_USE_FACET(Type, loc) std::use_facet< Type >(loc)
 | 
			
		||||
#  define BOOST_HAS_FACET(Type, loc) std::has_facet< Type >(loc)
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
// BOOST_NESTED_TEMPLATE workaround ------------------------------------------//
 | 
			
		||||
// Member templates are supported by some compilers even though they can't use
 | 
			
		||||
// the A::template member<U> syntax, as a workaround replace:
 | 
			
		||||
//
 | 
			
		||||
// typedef typename A::template rebind<U> binder;
 | 
			
		||||
//
 | 
			
		||||
// with:
 | 
			
		||||
//
 | 
			
		||||
// typedef typename A::BOOST_NESTED_TEMPLATE rebind<U> binder;
 | 
			
		||||
 | 
			
		||||
#ifndef BOOST_NO_MEMBER_TEMPLATE_KEYWORD
 | 
			
		||||
#  define BOOST_NESTED_TEMPLATE template
 | 
			
		||||
#else
 | 
			
		||||
#  define BOOST_NESTED_TEMPLATE
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
// BOOST_UNREACHABLE_RETURN(x) workaround -------------------------------------//
 | 
			
		||||
// Normally evaluates to nothing, unless BOOST_NO_UNREACHABLE_RETURN_DETECTION
 | 
			
		||||
// is defined, in which case it evaluates to return x; Use when you have a return
 | 
			
		||||
// statement that can never be reached.
 | 
			
		||||
 | 
			
		||||
#ifdef BOOST_NO_UNREACHABLE_RETURN_DETECTION
 | 
			
		||||
#  define BOOST_UNREACHABLE_RETURN(x) return x;
 | 
			
		||||
#else
 | 
			
		||||
#  define BOOST_UNREACHABLE_RETURN(x)
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
// BOOST_DEDUCED_TYPENAME workaround ------------------------------------------//
 | 
			
		||||
//
 | 
			
		||||
// Some compilers don't support the use of `typename' for dependent
 | 
			
		||||
// types in deduced contexts, e.g.
 | 
			
		||||
//
 | 
			
		||||
//     template <class T> void f(T, typename T::type);
 | 
			
		||||
//                                  ^^^^^^^^
 | 
			
		||||
// Replace these declarations with:
 | 
			
		||||
//
 | 
			
		||||
//     template <class T> void f(T, BOOST_DEDUCED_TYPENAME T::type);
 | 
			
		||||
 | 
			
		||||
#ifndef BOOST_NO_DEDUCED_TYPENAME
 | 
			
		||||
#  define BOOST_DEDUCED_TYPENAME typename
 | 
			
		||||
#else
 | 
			
		||||
#  define BOOST_DEDUCED_TYPENAME
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#ifndef BOOST_NO_TYPENAME_WITH_CTOR
 | 
			
		||||
#  define BOOST_CTOR_TYPENAME typename
 | 
			
		||||
#else
 | 
			
		||||
#  define BOOST_CTOR_TYPENAME
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
// long long workaround ------------------------------------------//
 | 
			
		||||
// On gcc (and maybe other compilers?) long long is alway supported
 | 
			
		||||
// but it's use may generate either warnings (with -ansi), or errors
 | 
			
		||||
// (with -pedantic -ansi) unless it's use is prefixed by __extension__
 | 
			
		||||
//
 | 
			
		||||
#if defined(BOOST_HAS_LONG_LONG) && defined(__cplusplus)
 | 
			
		||||
namespace boost{
 | 
			
		||||
#  ifdef __GNUC__
 | 
			
		||||
   __extension__ typedef long long long_long_type;
 | 
			
		||||
   __extension__ typedef unsigned long long ulong_long_type;
 | 
			
		||||
#  else
 | 
			
		||||
   typedef long long long_long_type;
 | 
			
		||||
   typedef unsigned long long ulong_long_type;
 | 
			
		||||
#  endif
 | 
			
		||||
}
 | 
			
		||||
#endif
 | 
			
		||||
// same again for __int128:
 | 
			
		||||
#if defined(BOOST_HAS_INT128) && defined(__cplusplus)
 | 
			
		||||
namespace boost{
 | 
			
		||||
#  ifdef __GNUC__
 | 
			
		||||
   __extension__ typedef __int128 int128_type;
 | 
			
		||||
   __extension__ typedef unsigned __int128 uint128_type;
 | 
			
		||||
#  else
 | 
			
		||||
   typedef __int128 int128_type;
 | 
			
		||||
   typedef unsigned __int128 uint128_type;
 | 
			
		||||
#  endif
 | 
			
		||||
}
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
// BOOST_[APPEND_]EXPLICIT_TEMPLATE_[NON_]TYPE macros --------------------------//
 | 
			
		||||
 | 
			
		||||
// These macros are obsolete. Port away and remove.
 | 
			
		||||
 | 
			
		||||
#  define BOOST_EXPLICIT_TEMPLATE_TYPE(t)
 | 
			
		||||
#  define BOOST_EXPLICIT_TEMPLATE_TYPE_SPEC(t)
 | 
			
		||||
#  define BOOST_EXPLICIT_TEMPLATE_NON_TYPE(t, v)
 | 
			
		||||
#  define BOOST_EXPLICIT_TEMPLATE_NON_TYPE_SPEC(t, v)
 | 
			
		||||
 | 
			
		||||
#  define BOOST_APPEND_EXPLICIT_TEMPLATE_TYPE(t)
 | 
			
		||||
#  define BOOST_APPEND_EXPLICIT_TEMPLATE_TYPE_SPEC(t)
 | 
			
		||||
#  define BOOST_APPEND_EXPLICIT_TEMPLATE_NON_TYPE(t, v)
 | 
			
		||||
#  define BOOST_APPEND_EXPLICIT_TEMPLATE_NON_TYPE_SPEC(t, v)
 | 
			
		||||
 | 
			
		||||
// When BOOST_NO_STD_TYPEINFO is defined, we can just import
 | 
			
		||||
// the global definition into std namespace:
 | 
			
		||||
#if defined(BOOST_NO_STD_TYPEINFO) && defined(__cplusplus)
 | 
			
		||||
#include <typeinfo>
 | 
			
		||||
namespace std{ using ::type_info; }
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
// ---------------------------------------------------------------------------//
 | 
			
		||||
 | 
			
		||||
//
 | 
			
		||||
// Helper macro BOOST_STRINGIZE:
 | 
			
		||||
// Converts the parameter X to a string after macro replacement
 | 
			
		||||
// on X has been performed.
 | 
			
		||||
//
 | 
			
		||||
#define BOOST_STRINGIZE(X) BOOST_DO_STRINGIZE(X)
 | 
			
		||||
#define BOOST_DO_STRINGIZE(X) #X
 | 
			
		||||
 | 
			
		||||
//
 | 
			
		||||
// Helper macro BOOST_JOIN:
 | 
			
		||||
// The following piece of macro magic joins the two
 | 
			
		||||
// arguments together, even when one of the arguments is
 | 
			
		||||
// itself a macro (see 16.3.1 in C++ standard).  The key
 | 
			
		||||
// is that macro expansion of macro arguments does not
 | 
			
		||||
// occur in BOOST_DO_JOIN2 but does in BOOST_DO_JOIN.
 | 
			
		||||
//
 | 
			
		||||
#define BOOST_JOIN( X, Y ) BOOST_DO_JOIN( X, Y )
 | 
			
		||||
#define BOOST_DO_JOIN( X, Y ) BOOST_DO_JOIN2(X,Y)
 | 
			
		||||
#define BOOST_DO_JOIN2( X, Y ) X##Y
 | 
			
		||||
 | 
			
		||||
//
 | 
			
		||||
// Set some default values for compiler/library/platform names.
 | 
			
		||||
// These are for debugging config setup only:
 | 
			
		||||
//
 | 
			
		||||
#  ifndef BOOST_COMPILER
 | 
			
		||||
#     define BOOST_COMPILER "Unknown ISO C++ Compiler"
 | 
			
		||||
#  endif
 | 
			
		||||
#  ifndef BOOST_STDLIB
 | 
			
		||||
#     define BOOST_STDLIB "Unknown ISO standard library"
 | 
			
		||||
#  endif
 | 
			
		||||
#  ifndef BOOST_PLATFORM
 | 
			
		||||
#     if defined(unix) || defined(__unix) || defined(_XOPEN_SOURCE) \
 | 
			
		||||
         || defined(_POSIX_SOURCE)
 | 
			
		||||
#        define BOOST_PLATFORM "Generic Unix"
 | 
			
		||||
#     else
 | 
			
		||||
#        define BOOST_PLATFORM "Unknown"
 | 
			
		||||
#     endif
 | 
			
		||||
#  endif
 | 
			
		||||
 | 
			
		||||
//
 | 
			
		||||
// Set some default values GPU support
 | 
			
		||||
//
 | 
			
		||||
#  ifndef BOOST_GPU_ENABLED
 | 
			
		||||
#  define BOOST_GPU_ENABLED
 | 
			
		||||
#  endif
 | 
			
		||||
 | 
			
		||||
// BOOST_FORCEINLINE ---------------------------------------------//
 | 
			
		||||
// Macro to use in place of 'inline' to force a function to be inline
 | 
			
		||||
#if !defined(BOOST_FORCEINLINE)
 | 
			
		||||
#  if defined(_MSC_VER)
 | 
			
		||||
#    define BOOST_FORCEINLINE __forceinline
 | 
			
		||||
#  elif defined(__GNUC__) && __GNUC__ > 3
 | 
			
		||||
     // Clang also defines __GNUC__ (as 4)
 | 
			
		||||
#    define BOOST_FORCEINLINE inline __attribute__ ((__always_inline__))
 | 
			
		||||
#  else
 | 
			
		||||
#    define BOOST_FORCEINLINE inline
 | 
			
		||||
#  endif
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
// BOOST_NOINLINE ---------------------------------------------//
 | 
			
		||||
// Macro to use in place of 'inline' to prevent a function to be inlined
 | 
			
		||||
#if !defined(BOOST_NOINLINE)
 | 
			
		||||
#  if defined(_MSC_VER)
 | 
			
		||||
#    define BOOST_NOINLINE __declspec(noinline)
 | 
			
		||||
#  elif defined(__GNUC__) && __GNUC__ > 3
 | 
			
		||||
     // Clang also defines __GNUC__ (as 4)
 | 
			
		||||
#    if defined(__CUDACC__)
 | 
			
		||||
       // nvcc doesn't always parse __noinline__, 
 | 
			
		||||
       // see: https://svn.boost.org/trac/boost/ticket/9392
 | 
			
		||||
#      define BOOST_NOINLINE __attribute__ ((noinline))
 | 
			
		||||
#    else
 | 
			
		||||
#      define BOOST_NOINLINE __attribute__ ((__noinline__))
 | 
			
		||||
#    endif
 | 
			
		||||
#  else
 | 
			
		||||
#    define BOOST_NOINLINE
 | 
			
		||||
#  endif
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
// BOOST_NORETURN ---------------------------------------------//
 | 
			
		||||
// Macro to use before a function declaration/definition to designate
 | 
			
		||||
// the function as not returning normally (i.e. with a return statement
 | 
			
		||||
// or by leaving the function scope, if the function return type is void).
 | 
			
		||||
#if !defined(BOOST_NORETURN)
 | 
			
		||||
#  if defined(_MSC_VER)
 | 
			
		||||
#    define BOOST_NORETURN __declspec(noreturn)
 | 
			
		||||
#  elif defined(__GNUC__)
 | 
			
		||||
#    define BOOST_NORETURN __attribute__ ((__noreturn__))
 | 
			
		||||
#  else
 | 
			
		||||
#    define BOOST_NO_NORETURN
 | 
			
		||||
#    define BOOST_NORETURN
 | 
			
		||||
#  endif
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
// Branch prediction hints
 | 
			
		||||
// These macros are intended to wrap conditional expressions that yield true or false
 | 
			
		||||
//
 | 
			
		||||
//  if (BOOST_LIKELY(var == 10))
 | 
			
		||||
//  {
 | 
			
		||||
//     // the most probable code here
 | 
			
		||||
//  }
 | 
			
		||||
//
 | 
			
		||||
#if !defined(BOOST_LIKELY)
 | 
			
		||||
#  define BOOST_LIKELY(x) x
 | 
			
		||||
#endif
 | 
			
		||||
#if !defined(BOOST_UNLIKELY)
 | 
			
		||||
#  define BOOST_UNLIKELY(x) x
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
// Type and data alignment specification
 | 
			
		||||
//
 | 
			
		||||
#if !defined(BOOST_NO_CXX11_ALIGNAS)
 | 
			
		||||
#  define BOOST_ALIGNMENT(x) alignas(x)
 | 
			
		||||
#elif defined(_MSC_VER)
 | 
			
		||||
#  define BOOST_ALIGNMENT(x) __declspec(align(x))
 | 
			
		||||
#elif defined(__GNUC__)
 | 
			
		||||
#  define BOOST_ALIGNMENT(x) __attribute__ ((__aligned__(x)))
 | 
			
		||||
#else
 | 
			
		||||
#  define BOOST_NO_ALIGNMENT
 | 
			
		||||
#  define BOOST_ALIGNMENT(x)
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
// Lack of non-public defaulted functions is implied by the lack of any defaulted functions
 | 
			
		||||
#if !defined(BOOST_NO_CXX11_NON_PUBLIC_DEFAULTED_FUNCTIONS) && defined(BOOST_NO_CXX11_DEFAULTED_FUNCTIONS)
 | 
			
		||||
#  define BOOST_NO_CXX11_NON_PUBLIC_DEFAULTED_FUNCTIONS
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
// Defaulted and deleted function declaration helpers
 | 
			
		||||
// These macros are intended to be inside a class definition.
 | 
			
		||||
// BOOST_DEFAULTED_FUNCTION accepts the function declaration and its
 | 
			
		||||
// body, which will be used if the compiler doesn't support defaulted functions.
 | 
			
		||||
// BOOST_DELETED_FUNCTION only accepts the function declaration. It
 | 
			
		||||
// will expand to a private function declaration, if the compiler doesn't support
 | 
			
		||||
// deleted functions. Because of this it is recommended to use BOOST_DELETED_FUNCTION
 | 
			
		||||
// in the end of the class definition.
 | 
			
		||||
//
 | 
			
		||||
//  class my_class
 | 
			
		||||
//  {
 | 
			
		||||
//  public:
 | 
			
		||||
//      // Default-constructible
 | 
			
		||||
//      BOOST_DEFAULTED_FUNCTION(my_class(), {})
 | 
			
		||||
//      // Copying prohibited
 | 
			
		||||
//      BOOST_DELETED_FUNCTION(my_class(my_class const&))
 | 
			
		||||
//      BOOST_DELETED_FUNCTION(my_class& operator= (my_class const&))
 | 
			
		||||
//  };
 | 
			
		||||
//
 | 
			
		||||
#if !(defined(BOOST_NO_CXX11_DEFAULTED_FUNCTIONS) || defined(BOOST_NO_CXX11_NON_PUBLIC_DEFAULTED_FUNCTIONS))
 | 
			
		||||
#   define BOOST_DEFAULTED_FUNCTION(fun, body) fun = default;
 | 
			
		||||
#else
 | 
			
		||||
#   define BOOST_DEFAULTED_FUNCTION(fun, body) fun body
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if !defined(BOOST_NO_CXX11_DELETED_FUNCTIONS)
 | 
			
		||||
#   define BOOST_DELETED_FUNCTION(fun) fun = delete;
 | 
			
		||||
#else
 | 
			
		||||
#   define BOOST_DELETED_FUNCTION(fun) private: fun;
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
//
 | 
			
		||||
// Set BOOST_NO_DECLTYPE_N3276 when BOOST_NO_DECLTYPE is defined
 | 
			
		||||
//
 | 
			
		||||
#if defined(BOOST_NO_CXX11_DECLTYPE) && !defined(BOOST_NO_CXX11_DECLTYPE_N3276)
 | 
			
		||||
#define BOOST_NO_CXX11_DECLTYPE_N3276 BOOST_NO_CXX11_DECLTYPE
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
//  -------------------- Deprecated macros for 1.50 ---------------------------
 | 
			
		||||
//  These will go away in a future release
 | 
			
		||||
 | 
			
		||||
//  Use BOOST_NO_CXX11_HDR_UNORDERED_SET or BOOST_NO_CXX11_HDR_UNORDERED_MAP
 | 
			
		||||
//           instead of BOOST_NO_STD_UNORDERED
 | 
			
		||||
#if defined(BOOST_NO_CXX11_HDR_UNORDERED_MAP) || defined (BOOST_NO_CXX11_HDR_UNORDERED_SET)
 | 
			
		||||
# ifndef BOOST_NO_CXX11_STD_UNORDERED
 | 
			
		||||
#  define BOOST_NO_CXX11_STD_UNORDERED
 | 
			
		||||
# endif
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
//  Use BOOST_NO_CXX11_HDR_INITIALIZER_LIST instead of BOOST_NO_INITIALIZER_LISTS
 | 
			
		||||
#if defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST) && !defined(BOOST_NO_INITIALIZER_LISTS)
 | 
			
		||||
#  define BOOST_NO_INITIALIZER_LISTS
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
//  Use BOOST_NO_CXX11_HDR_ARRAY instead of BOOST_NO_0X_HDR_ARRAY
 | 
			
		||||
#if defined(BOOST_NO_CXX11_HDR_ARRAY) && !defined(BOOST_NO_0X_HDR_ARRAY)
 | 
			
		||||
#  define BOOST_NO_0X_HDR_ARRAY
 | 
			
		||||
#endif
 | 
			
		||||
//  Use BOOST_NO_CXX11_HDR_CHRONO instead of BOOST_NO_0X_HDR_CHRONO
 | 
			
		||||
#if defined(BOOST_NO_CXX11_HDR_CHRONO) && !defined(BOOST_NO_0X_HDR_CHRONO)
 | 
			
		||||
#  define BOOST_NO_0X_HDR_CHRONO
 | 
			
		||||
#endif
 | 
			
		||||
//  Use BOOST_NO_CXX11_HDR_CODECVT instead of BOOST_NO_0X_HDR_CODECVT
 | 
			
		||||
#if defined(BOOST_NO_CXX11_HDR_CODECVT) && !defined(BOOST_NO_0X_HDR_CODECVT)
 | 
			
		||||
#  define BOOST_NO_0X_HDR_CODECVT
 | 
			
		||||
#endif
 | 
			
		||||
//  Use BOOST_NO_CXX11_HDR_CONDITION_VARIABLE instead of BOOST_NO_0X_HDR_CONDITION_VARIABLE
 | 
			
		||||
#if defined(BOOST_NO_CXX11_HDR_CONDITION_VARIABLE) && !defined(BOOST_NO_0X_HDR_CONDITION_VARIABLE)
 | 
			
		||||
#  define BOOST_NO_0X_HDR_CONDITION_VARIABLE
 | 
			
		||||
#endif
 | 
			
		||||
//  Use BOOST_NO_CXX11_HDR_FORWARD_LIST instead of BOOST_NO_0X_HDR_FORWARD_LIST
 | 
			
		||||
#if defined(BOOST_NO_CXX11_HDR_FORWARD_LIST) && !defined(BOOST_NO_0X_HDR_FORWARD_LIST)
 | 
			
		||||
#  define BOOST_NO_0X_HDR_FORWARD_LIST
 | 
			
		||||
#endif
 | 
			
		||||
//  Use BOOST_NO_CXX11_HDR_FUTURE instead of BOOST_NO_0X_HDR_FUTURE
 | 
			
		||||
#if defined(BOOST_NO_CXX11_HDR_FUTURE) && !defined(BOOST_NO_0X_HDR_FUTURE)
 | 
			
		||||
#  define BOOST_NO_0X_HDR_FUTURE
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
//  Use BOOST_NO_CXX11_HDR_INITIALIZER_LIST
 | 
			
		||||
//  instead of BOOST_NO_0X_HDR_INITIALIZER_LIST or BOOST_NO_INITIALIZER_LISTS
 | 
			
		||||
#ifdef BOOST_NO_CXX11_HDR_INITIALIZER_LIST
 | 
			
		||||
# ifndef BOOST_NO_0X_HDR_INITIALIZER_LIST
 | 
			
		||||
#  define BOOST_NO_0X_HDR_INITIALIZER_LIST
 | 
			
		||||
# endif
 | 
			
		||||
# ifndef BOOST_NO_INITIALIZER_LISTS
 | 
			
		||||
#  define BOOST_NO_INITIALIZER_LISTS
 | 
			
		||||
# endif
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
//  Use BOOST_NO_CXX11_HDR_MUTEX instead of BOOST_NO_0X_HDR_MUTEX
 | 
			
		||||
#if defined(BOOST_NO_CXX11_HDR_MUTEX) && !defined(BOOST_NO_0X_HDR_MUTEX)
 | 
			
		||||
#  define BOOST_NO_0X_HDR_MUTEX
 | 
			
		||||
#endif
 | 
			
		||||
//  Use BOOST_NO_CXX11_HDR_RANDOM instead of BOOST_NO_0X_HDR_RANDOM
 | 
			
		||||
#if defined(BOOST_NO_CXX11_HDR_RANDOM) && !defined(BOOST_NO_0X_HDR_RANDOM)
 | 
			
		||||
#  define BOOST_NO_0X_HDR_RANDOM
 | 
			
		||||
#endif
 | 
			
		||||
//  Use BOOST_NO_CXX11_HDR_RATIO instead of BOOST_NO_0X_HDR_RATIO
 | 
			
		||||
#if defined(BOOST_NO_CXX11_HDR_RATIO) && !defined(BOOST_NO_0X_HDR_RATIO)
 | 
			
		||||
#  define BOOST_NO_0X_HDR_RATIO
 | 
			
		||||
#endif
 | 
			
		||||
//  Use BOOST_NO_CXX11_HDR_REGEX instead of BOOST_NO_0X_HDR_REGEX
 | 
			
		||||
#if defined(BOOST_NO_CXX11_HDR_REGEX) && !defined(BOOST_NO_0X_HDR_REGEX)
 | 
			
		||||
#  define BOOST_NO_0X_HDR_REGEX
 | 
			
		||||
#endif
 | 
			
		||||
//  Use BOOST_NO_CXX11_HDR_SYSTEM_ERROR instead of BOOST_NO_0X_HDR_SYSTEM_ERROR
 | 
			
		||||
#if defined(BOOST_NO_CXX11_HDR_SYSTEM_ERROR) && !defined(BOOST_NO_0X_HDR_SYSTEM_ERROR)
 | 
			
		||||
#  define BOOST_NO_0X_HDR_SYSTEM_ERROR
 | 
			
		||||
#endif
 | 
			
		||||
//  Use BOOST_NO_CXX11_HDR_THREAD instead of BOOST_NO_0X_HDR_THREAD
 | 
			
		||||
#if defined(BOOST_NO_CXX11_HDR_THREAD) && !defined(BOOST_NO_0X_HDR_THREAD)
 | 
			
		||||
#  define BOOST_NO_0X_HDR_THREAD
 | 
			
		||||
#endif
 | 
			
		||||
//  Use BOOST_NO_CXX11_HDR_TUPLE instead of BOOST_NO_0X_HDR_TUPLE
 | 
			
		||||
#if defined(BOOST_NO_CXX11_HDR_TUPLE) && !defined(BOOST_NO_0X_HDR_TUPLE)
 | 
			
		||||
#  define BOOST_NO_0X_HDR_TUPLE
 | 
			
		||||
#endif
 | 
			
		||||
//  Use BOOST_NO_CXX11_HDR_TYPE_TRAITS instead of BOOST_NO_0X_HDR_TYPE_TRAITS
 | 
			
		||||
#if defined(BOOST_NO_CXX11_HDR_TYPE_TRAITS) && !defined(BOOST_NO_0X_HDR_TYPE_TRAITS)
 | 
			
		||||
#  define BOOST_NO_0X_HDR_TYPE_TRAITS
 | 
			
		||||
#endif
 | 
			
		||||
//  Use BOOST_NO_CXX11_HDR_TYPEINDEX instead of BOOST_NO_0X_HDR_TYPEINDEX
 | 
			
		||||
#if defined(BOOST_NO_CXX11_HDR_TYPEINDEX) && !defined(BOOST_NO_0X_HDR_TYPEINDEX)
 | 
			
		||||
#  define BOOST_NO_0X_HDR_TYPEINDEX
 | 
			
		||||
#endif
 | 
			
		||||
//  Use BOOST_NO_CXX11_HDR_UNORDERED_MAP instead of BOOST_NO_0X_HDR_UNORDERED_MAP
 | 
			
		||||
#if defined(BOOST_NO_CXX11_HDR_UNORDERED_MAP) && !defined(BOOST_NO_0X_HDR_UNORDERED_MAP)
 | 
			
		||||
#  define BOOST_NO_0X_HDR_UNORDERED_MAP
 | 
			
		||||
#endif
 | 
			
		||||
//  Use BOOST_NO_CXX11_HDR_UNORDERED_SET instead of BOOST_NO_0X_HDR_UNORDERED_SET
 | 
			
		||||
#if defined(BOOST_NO_CXX11_HDR_UNORDERED_SET) && !defined(BOOST_NO_0X_HDR_UNORDERED_SET)
 | 
			
		||||
#  define BOOST_NO_0X_HDR_UNORDERED_SET
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
//  ------------------ End of deprecated macros for 1.50 ---------------------------
 | 
			
		||||
 | 
			
		||||
//  -------------------- Deprecated macros for 1.51 ---------------------------
 | 
			
		||||
//  These will go away in a future release
 | 
			
		||||
 | 
			
		||||
//  Use     BOOST_NO_CXX11_AUTO_DECLARATIONS instead of   BOOST_NO_AUTO_DECLARATIONS
 | 
			
		||||
#if defined(BOOST_NO_CXX11_AUTO_DECLARATIONS) && !defined(BOOST_NO_AUTO_DECLARATIONS)
 | 
			
		||||
#  define BOOST_NO_AUTO_DECLARATIONS
 | 
			
		||||
#endif
 | 
			
		||||
//  Use     BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS instead of   BOOST_NO_AUTO_MULTIDECLARATIONS
 | 
			
		||||
#if defined(BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS) && !defined(BOOST_NO_AUTO_MULTIDECLARATIONS)
 | 
			
		||||
#  define BOOST_NO_AUTO_MULTIDECLARATIONS
 | 
			
		||||
#endif
 | 
			
		||||
//  Use     BOOST_NO_CXX11_CHAR16_T instead of   BOOST_NO_CHAR16_T
 | 
			
		||||
#if defined(BOOST_NO_CXX11_CHAR16_T) && !defined(BOOST_NO_CHAR16_T)
 | 
			
		||||
#  define BOOST_NO_CHAR16_T
 | 
			
		||||
#endif
 | 
			
		||||
//  Use     BOOST_NO_CXX11_CHAR32_T instead of   BOOST_NO_CHAR32_T
 | 
			
		||||
#if defined(BOOST_NO_CXX11_CHAR32_T) && !defined(BOOST_NO_CHAR32_T)
 | 
			
		||||
#  define BOOST_NO_CHAR32_T
 | 
			
		||||
#endif
 | 
			
		||||
//  Use     BOOST_NO_CXX11_TEMPLATE_ALIASES instead of   BOOST_NO_TEMPLATE_ALIASES
 | 
			
		||||
#if defined(BOOST_NO_CXX11_TEMPLATE_ALIASES) && !defined(BOOST_NO_TEMPLATE_ALIASES)
 | 
			
		||||
#  define BOOST_NO_TEMPLATE_ALIASES
 | 
			
		||||
#endif
 | 
			
		||||
//  Use     BOOST_NO_CXX11_CONSTEXPR instead of   BOOST_NO_CONSTEXPR
 | 
			
		||||
#if defined(BOOST_NO_CXX11_CONSTEXPR) && !defined(BOOST_NO_CONSTEXPR)
 | 
			
		||||
#  define BOOST_NO_CONSTEXPR
 | 
			
		||||
#endif
 | 
			
		||||
//  Use     BOOST_NO_CXX11_DECLTYPE_N3276 instead of   BOOST_NO_DECLTYPE_N3276
 | 
			
		||||
#if defined(BOOST_NO_CXX11_DECLTYPE_N3276) && !defined(BOOST_NO_DECLTYPE_N3276)
 | 
			
		||||
#  define BOOST_NO_DECLTYPE_N3276
 | 
			
		||||
#endif
 | 
			
		||||
//  Use     BOOST_NO_CXX11_DECLTYPE instead of   BOOST_NO_DECLTYPE
 | 
			
		||||
#if defined(BOOST_NO_CXX11_DECLTYPE) && !defined(BOOST_NO_DECLTYPE)
 | 
			
		||||
#  define BOOST_NO_DECLTYPE
 | 
			
		||||
#endif
 | 
			
		||||
//  Use     BOOST_NO_CXX11_DEFAULTED_FUNCTIONS instead of   BOOST_NO_DEFAULTED_FUNCTIONS
 | 
			
		||||
#if defined(BOOST_NO_CXX11_DEFAULTED_FUNCTIONS) && !defined(BOOST_NO_DEFAULTED_FUNCTIONS)
 | 
			
		||||
#  define BOOST_NO_DEFAULTED_FUNCTIONS
 | 
			
		||||
#endif
 | 
			
		||||
//  Use     BOOST_NO_CXX11_DELETED_FUNCTIONS instead of   BOOST_NO_DELETED_FUNCTIONS
 | 
			
		||||
#if defined(BOOST_NO_CXX11_DELETED_FUNCTIONS) && !defined(BOOST_NO_DELETED_FUNCTIONS)
 | 
			
		||||
#  define BOOST_NO_DELETED_FUNCTIONS
 | 
			
		||||
#endif
 | 
			
		||||
//  Use     BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS instead of   BOOST_NO_EXPLICIT_CONVERSION_OPERATORS
 | 
			
		||||
#if defined(BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS) && !defined(BOOST_NO_EXPLICIT_CONVERSION_OPERATORS)
 | 
			
		||||
#  define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS
 | 
			
		||||
#endif
 | 
			
		||||
//  Use     BOOST_NO_CXX11_EXTERN_TEMPLATE instead of   BOOST_NO_EXTERN_TEMPLATE
 | 
			
		||||
#if defined(BOOST_NO_CXX11_EXTERN_TEMPLATE) && !defined(BOOST_NO_EXTERN_TEMPLATE)
 | 
			
		||||
#  define BOOST_NO_EXTERN_TEMPLATE
 | 
			
		||||
#endif
 | 
			
		||||
//  Use     BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS instead of   BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS
 | 
			
		||||
#if defined(BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS) && !defined(BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS)
 | 
			
		||||
#  define BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS
 | 
			
		||||
#endif
 | 
			
		||||
//  Use     BOOST_NO_CXX11_LAMBDAS instead of   BOOST_NO_LAMBDAS
 | 
			
		||||
#if defined(BOOST_NO_CXX11_LAMBDAS) && !defined(BOOST_NO_LAMBDAS)
 | 
			
		||||
#  define BOOST_NO_LAMBDAS
 | 
			
		||||
#endif
 | 
			
		||||
//  Use     BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS instead of   BOOST_NO_LOCAL_CLASS_TEMPLATE_PARAMETERS
 | 
			
		||||
#if defined(BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS) && !defined(BOOST_NO_LOCAL_CLASS_TEMPLATE_PARAMETERS)
 | 
			
		||||
#  define BOOST_NO_LOCAL_CLASS_TEMPLATE_PARAMETERS
 | 
			
		||||
#endif
 | 
			
		||||
//  Use     BOOST_NO_CXX11_NOEXCEPT instead of   BOOST_NO_NOEXCEPT
 | 
			
		||||
#if defined(BOOST_NO_CXX11_NOEXCEPT) && !defined(BOOST_NO_NOEXCEPT)
 | 
			
		||||
#  define BOOST_NO_NOEXCEPT
 | 
			
		||||
#endif
 | 
			
		||||
//  Use     BOOST_NO_CXX11_NULLPTR instead of   BOOST_NO_NULLPTR
 | 
			
		||||
#if defined(BOOST_NO_CXX11_NULLPTR) && !defined(BOOST_NO_NULLPTR)
 | 
			
		||||
#  define BOOST_NO_NULLPTR
 | 
			
		||||
#endif
 | 
			
		||||
//  Use     BOOST_NO_CXX11_RAW_LITERALS instead of   BOOST_NO_RAW_LITERALS
 | 
			
		||||
#if defined(BOOST_NO_CXX11_RAW_LITERALS) && !defined(BOOST_NO_RAW_LITERALS)
 | 
			
		||||
#  define BOOST_NO_RAW_LITERALS
 | 
			
		||||
#endif
 | 
			
		||||
//  Use     BOOST_NO_CXX11_RVALUE_REFERENCES instead of   BOOST_NO_RVALUE_REFERENCES
 | 
			
		||||
#if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) && !defined(BOOST_NO_RVALUE_REFERENCES)
 | 
			
		||||
#  define BOOST_NO_RVALUE_REFERENCES
 | 
			
		||||
#endif
 | 
			
		||||
//  Use     BOOST_NO_CXX11_SCOPED_ENUMS instead of   BOOST_NO_SCOPED_ENUMS
 | 
			
		||||
#if defined(BOOST_NO_CXX11_SCOPED_ENUMS) && !defined(BOOST_NO_SCOPED_ENUMS)
 | 
			
		||||
#  define BOOST_NO_SCOPED_ENUMS
 | 
			
		||||
#endif
 | 
			
		||||
//  Use     BOOST_NO_CXX11_STATIC_ASSERT instead of   BOOST_NO_STATIC_ASSERT
 | 
			
		||||
#if defined(BOOST_NO_CXX11_STATIC_ASSERT) && !defined(BOOST_NO_STATIC_ASSERT)
 | 
			
		||||
#  define BOOST_NO_STATIC_ASSERT
 | 
			
		||||
#endif
 | 
			
		||||
//  Use     BOOST_NO_CXX11_STD_UNORDERED instead of   BOOST_NO_STD_UNORDERED
 | 
			
		||||
#if defined(BOOST_NO_CXX11_STD_UNORDERED) && !defined(BOOST_NO_STD_UNORDERED)
 | 
			
		||||
#  define BOOST_NO_STD_UNORDERED
 | 
			
		||||
#endif
 | 
			
		||||
//  Use     BOOST_NO_CXX11_UNICODE_LITERALS instead of   BOOST_NO_UNICODE_LITERALS
 | 
			
		||||
#if defined(BOOST_NO_CXX11_UNICODE_LITERALS) && !defined(BOOST_NO_UNICODE_LITERALS)
 | 
			
		||||
#  define BOOST_NO_UNICODE_LITERALS
 | 
			
		||||
#endif
 | 
			
		||||
//  Use     BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX instead of   BOOST_NO_UNIFIED_INITIALIZATION_SYNTAX
 | 
			
		||||
#if defined(BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX) && !defined(BOOST_NO_UNIFIED_INITIALIZATION_SYNTAX)
 | 
			
		||||
#  define BOOST_NO_UNIFIED_INITIALIZATION_SYNTAX
 | 
			
		||||
#endif
 | 
			
		||||
//  Use     BOOST_NO_CXX11_VARIADIC_TEMPLATES instead of   BOOST_NO_VARIADIC_TEMPLATES
 | 
			
		||||
#if defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) && !defined(BOOST_NO_VARIADIC_TEMPLATES)
 | 
			
		||||
#  define BOOST_NO_VARIADIC_TEMPLATES
 | 
			
		||||
#endif
 | 
			
		||||
//  Use     BOOST_NO_CXX11_VARIADIC_MACROS instead of   BOOST_NO_VARIADIC_MACROS
 | 
			
		||||
#if defined(BOOST_NO_CXX11_VARIADIC_MACROS) && !defined(BOOST_NO_VARIADIC_MACROS)
 | 
			
		||||
#  define BOOST_NO_VARIADIC_MACROS
 | 
			
		||||
#endif
 | 
			
		||||
//  Use     BOOST_NO_CXX11_NUMERIC_LIMITS instead of   BOOST_NO_NUMERIC_LIMITS_LOWEST
 | 
			
		||||
#if defined(BOOST_NO_CXX11_NUMERIC_LIMITS) && !defined(BOOST_NO_NUMERIC_LIMITS_LOWEST)
 | 
			
		||||
#  define BOOST_NO_NUMERIC_LIMITS_LOWEST
 | 
			
		||||
#endif
 | 
			
		||||
//  ------------------ End of deprecated macros for 1.51 ---------------------------
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
//
 | 
			
		||||
// Helper macros BOOST_NOEXCEPT, BOOST_NOEXCEPT_IF, BOOST_NOEXCEPT_EXPR
 | 
			
		||||
// These aid the transition to C++11 while still supporting C++03 compilers
 | 
			
		||||
//
 | 
			
		||||
#ifdef BOOST_NO_CXX11_NOEXCEPT
 | 
			
		||||
#  define BOOST_NOEXCEPT
 | 
			
		||||
#  define BOOST_NOEXCEPT_OR_NOTHROW throw()
 | 
			
		||||
#  define BOOST_NOEXCEPT_IF(Predicate)
 | 
			
		||||
#  define BOOST_NOEXCEPT_EXPR(Expression) false
 | 
			
		||||
#else
 | 
			
		||||
#  define BOOST_NOEXCEPT noexcept
 | 
			
		||||
#  define BOOST_NOEXCEPT_OR_NOTHROW noexcept
 | 
			
		||||
#  define BOOST_NOEXCEPT_IF(Predicate) noexcept((Predicate))
 | 
			
		||||
#  define BOOST_NOEXCEPT_EXPR(Expression) noexcept((Expression))
 | 
			
		||||
#endif
 | 
			
		||||
//
 | 
			
		||||
// Helper macro BOOST_FALLTHROUGH
 | 
			
		||||
// Fallback definition of BOOST_FALLTHROUGH macro used to mark intended
 | 
			
		||||
// fall-through between case labels in a switch statement. We use a definition
 | 
			
		||||
// that requires a semicolon after it to avoid at least one type of misuse even
 | 
			
		||||
// on unsupported compilers.
 | 
			
		||||
//
 | 
			
		||||
#ifndef BOOST_FALLTHROUGH
 | 
			
		||||
#  define BOOST_FALLTHROUGH ((void)0)
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
//
 | 
			
		||||
// constexpr workarounds
 | 
			
		||||
//
 | 
			
		||||
#if defined(BOOST_NO_CXX11_CONSTEXPR)
 | 
			
		||||
#define BOOST_CONSTEXPR
 | 
			
		||||
#define BOOST_CONSTEXPR_OR_CONST const
 | 
			
		||||
#else
 | 
			
		||||
#define BOOST_CONSTEXPR constexpr
 | 
			
		||||
#define BOOST_CONSTEXPR_OR_CONST constexpr
 | 
			
		||||
#endif
 | 
			
		||||
#if defined(BOOST_NO_CXX14_CONSTEXPR)
 | 
			
		||||
#define BOOST_CXX14_CONSTEXPR
 | 
			
		||||
#else
 | 
			
		||||
#define BOOST_CXX14_CONSTEXPR constexpr
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
//
 | 
			
		||||
// Unused variable/typedef workarounds:
 | 
			
		||||
//
 | 
			
		||||
#ifndef BOOST_ATTRIBUTE_UNUSED
 | 
			
		||||
#  define BOOST_ATTRIBUTE_UNUSED
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#define BOOST_STATIC_CONSTEXPR  static BOOST_CONSTEXPR_OR_CONST
 | 
			
		||||
 | 
			
		||||
//
 | 
			
		||||
// Set BOOST_HAS_STATIC_ASSERT when BOOST_NO_CXX11_STATIC_ASSERT is not defined
 | 
			
		||||
//
 | 
			
		||||
#if !defined(BOOST_NO_CXX11_STATIC_ASSERT) && !defined(BOOST_HAS_STATIC_ASSERT)
 | 
			
		||||
#  define BOOST_HAS_STATIC_ASSERT
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
//
 | 
			
		||||
// Set BOOST_HAS_RVALUE_REFS when BOOST_NO_CXX11_RVALUE_REFERENCES is not defined
 | 
			
		||||
//
 | 
			
		||||
#if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) && !defined(BOOST_HAS_RVALUE_REFS)
 | 
			
		||||
#define BOOST_HAS_RVALUE_REFS
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
//
 | 
			
		||||
// Set BOOST_HAS_VARIADIC_TMPL when BOOST_NO_CXX11_VARIADIC_TEMPLATES is not defined
 | 
			
		||||
//
 | 
			
		||||
#if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) && !defined(BOOST_HAS_VARIADIC_TMPL)
 | 
			
		||||
#define BOOST_HAS_VARIADIC_TMPL
 | 
			
		||||
#endif
 | 
			
		||||
//
 | 
			
		||||
// Set BOOST_NO_CXX11_FIXED_LENGTH_VARIADIC_TEMPLATE_EXPANSION_PACKS when
 | 
			
		||||
// BOOST_NO_CXX11_VARIADIC_TEMPLATES is set:
 | 
			
		||||
//
 | 
			
		||||
#if defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) && !defined(BOOST_NO_CXX11_FIXED_LENGTH_VARIADIC_TEMPLATE_EXPANSION_PACKS)
 | 
			
		||||
#  define BOOST_NO_CXX11_FIXED_LENGTH_VARIADIC_TEMPLATE_EXPANSION_PACKS
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
//
 | 
			
		||||
// Finish off with checks for macros that are depricated / no longer supported,
 | 
			
		||||
// if any of these are set then it's very likely that much of Boost will no
 | 
			
		||||
// longer work.  So stop with a #error for now, but give the user a chance
 | 
			
		||||
// to continue at their own risk if they really want to:
 | 
			
		||||
//
 | 
			
		||||
#if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) && !defined(BOOST_CONFIG_ALLOW_DEPRECATED)
 | 
			
		||||
#  error "You are using a compiler which lacks features which are now a minimum requirement in order to use Boost, define BOOST_CONFIG_ALLOW_DEPRECATED if you want to continue at your own risk!!!"
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
Some files were not shown because too many files have changed in this diff Show more
		Loading…
	
		Reference in a new issue