[Boostheaders-commits] r34 - in pkg/BH/inst/include/boost: format/detail fusion/adapted fusion/algorithm fusion/container fusion/include fusion/iterator fusion/mpl fusion/sequence fusion/support fusion/tuple fusion/view math/distributions/detail tr1/detail

noreply at r-forge.r-project.org noreply at r-forge.r-project.org
Sat May 4 02:57:24 CEST 2013


Author: edd
Date: 2013-05-04 02:57:24 +0200 (Sat, 04 May 2013)
New Revision: 34

Added:
   pkg/BH/inst/include/boost/format/detail/compat_workarounds.hpp
   pkg/BH/inst/include/boost/format/detail/config_macros.hpp
   pkg/BH/inst/include/boost/format/detail/msvc_disambiguater.hpp
   pkg/BH/inst/include/boost/format/detail/unset_macros.hpp
   pkg/BH/inst/include/boost/format/detail/workarounds_gcc-2_95.hpp
   pkg/BH/inst/include/boost/format/detail/workarounds_stlport.hpp
   pkg/BH/inst/include/boost/fusion/adapted/mpl/
   pkg/BH/inst/include/boost/fusion/adapted/std_pair.hpp
   pkg/BH/inst/include/boost/fusion/adapted/struct/
   pkg/BH/inst/include/boost/fusion/algorithm/transformation/
   pkg/BH/inst/include/boost/fusion/container/generation/
   pkg/BH/inst/include/boost/fusion/container/list/
   pkg/BH/inst/include/boost/fusion/container/vector/
   pkg/BH/inst/include/boost/fusion/include/std_pair.hpp
   pkg/BH/inst/include/boost/fusion/include/tuple.hpp
   pkg/BH/inst/include/boost/fusion/iterator/advance.hpp
   pkg/BH/inst/include/boost/fusion/iterator/basic_iterator.hpp
   pkg/BH/inst/include/boost/fusion/iterator/deref.hpp
   pkg/BH/inst/include/boost/fusion/iterator/deref_data.hpp
   pkg/BH/inst/include/boost/fusion/iterator/detail/
   pkg/BH/inst/include/boost/fusion/iterator/distance.hpp
   pkg/BH/inst/include/boost/fusion/iterator/equal_to.hpp
   pkg/BH/inst/include/boost/fusion/iterator/iterator_facade.hpp
   pkg/BH/inst/include/boost/fusion/iterator/key_of.hpp
   pkg/BH/inst/include/boost/fusion/iterator/mpl/
   pkg/BH/inst/include/boost/fusion/iterator/next.hpp
   pkg/BH/inst/include/boost/fusion/iterator/prior.hpp
   pkg/BH/inst/include/boost/fusion/iterator/segmented_iterator.hpp
   pkg/BH/inst/include/boost/fusion/iterator/value_of.hpp
   pkg/BH/inst/include/boost/fusion/iterator/value_of_data.hpp
   pkg/BH/inst/include/boost/fusion/mpl/begin.hpp
   pkg/BH/inst/include/boost/fusion/mpl/end.hpp
   pkg/BH/inst/include/boost/fusion/sequence/comparison.hpp
   pkg/BH/inst/include/boost/fusion/sequence/comparison/
   pkg/BH/inst/include/boost/fusion/sequence/intrinsic/
   pkg/BH/inst/include/boost/fusion/sequence/intrinsic_fwd.hpp
   pkg/BH/inst/include/boost/fusion/sequence/io.hpp
   pkg/BH/inst/include/boost/fusion/sequence/io/
   pkg/BH/inst/include/boost/fusion/support/as_const.hpp
   pkg/BH/inst/include/boost/fusion/support/category_of.hpp
   pkg/BH/inst/include/boost/fusion/support/detail/
   pkg/BH/inst/include/boost/fusion/support/is_iterator.hpp
   pkg/BH/inst/include/boost/fusion/support/is_segmented.hpp
   pkg/BH/inst/include/boost/fusion/support/is_sequence.hpp
   pkg/BH/inst/include/boost/fusion/support/is_view.hpp
   pkg/BH/inst/include/boost/fusion/support/iterator_base.hpp
   pkg/BH/inst/include/boost/fusion/support/sequence_base.hpp
   pkg/BH/inst/include/boost/fusion/support/tag_of.hpp
   pkg/BH/inst/include/boost/fusion/support/tag_of_fwd.hpp
   pkg/BH/inst/include/boost/fusion/support/void.hpp
   pkg/BH/inst/include/boost/fusion/tuple/detail/
   pkg/BH/inst/include/boost/fusion/tuple/make_tuple.hpp
   pkg/BH/inst/include/boost/fusion/tuple/tuple.hpp
   pkg/BH/inst/include/boost/fusion/tuple/tuple_fwd.hpp
   pkg/BH/inst/include/boost/fusion/tuple/tuple_tie.hpp
   pkg/BH/inst/include/boost/fusion/view/iterator_range.hpp
   pkg/BH/inst/include/boost/fusion/view/iterator_range/
   pkg/BH/inst/include/boost/fusion/view/joint_view/
   pkg/BH/inst/include/boost/fusion/view/single_view/
   pkg/BH/inst/include/boost/math/distributions/detail/common_error_handling.hpp
   pkg/BH/inst/include/boost/math/distributions/detail/derived_accessors.hpp
   pkg/BH/inst/include/boost/math/distributions/detail/generic_mode.hpp
   pkg/BH/inst/include/boost/math/distributions/detail/generic_quantile.hpp
   pkg/BH/inst/include/boost/math/distributions/detail/hypergeometric_cdf.hpp
   pkg/BH/inst/include/boost/math/distributions/detail/hypergeometric_pdf.hpp
   pkg/BH/inst/include/boost/math/distributions/detail/hypergeometric_quantile.hpp
   pkg/BH/inst/include/boost/math/distributions/detail/inv_discrete_quantile.hpp
   pkg/BH/inst/include/boost/tr1/detail/config.hpp
   pkg/BH/inst/include/boost/tr1/detail/config_all.hpp
Log:
steps towards BH 1.51.0-1 with foreach and math distributions


Added: pkg/BH/inst/include/boost/format/detail/compat_workarounds.hpp
===================================================================
--- pkg/BH/inst/include/boost/format/detail/compat_workarounds.hpp	                        (rev 0)
+++ pkg/BH/inst/include/boost/format/detail/compat_workarounds.hpp	2013-05-04 00:57:24 UTC (rev 34)
@@ -0,0 +1,86 @@
+// ----------------------------------------------------------------------------
+//  compat_workarounds : general framework for non-conformance workarounds
+// ----------------------------------------------------------------------------
+
+//  Copyright Samuel Krempp 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/libs/format for library home page
+
+// ----------------------------------------------------------------------------
+
+
+//  this file defines  wrapper classes to hide non-conforming 
+// std::char_traits<>  and std::allocator<> traits
+//  and Includes : config_macros.hpp (defines config macros
+//  and compiler-specific switches)
+
+// Non-conformant Std-libs fail to supply conformant traits (std::char_traits,
+//  std::allocator) and/or  the std::string doesnt support them.
+// We don't want to have hundreds of #ifdef workarounds, so we define 
+// replacement traits.
+// But both char_traits and allocator traits are visible in the interface, 
+// (inside the final string type),  thus we need to keep both 
+// the replacement type (typedefed to 'compatible_type') for real use,
+// and the original stdlib type (typedef to 'type_for_string') for interface
+//  visibility. This is what Compat* classes do (as well as be transparent 
+// when good allocator and char traits are present)
+
+#ifndef BOOST_FORMAT_COMPAT_WORKAROUNDS_HPP
+#define BOOST_FORMAT_COMPAT_WORKAROUNDS_HPP
+
+namespace boost {
+    namespace io {
+
+        // gcc-2.95 char traits (non-conformantly named string_char_traits) 
+        // lack several functions so we extend them in a replacement class.
+        template<class Tr>
+        class CompatTraits; 
+
+        // std::allocator<Ch> in gcc-2.95 is ok, but basic_string only works 
+        // with plain 'std::alloc' still, alt_stringbuf requires a functionnal
+        // alloc template argument, so we need a replacement allocator
+        template<class Alloc>
+        class CompatAlloc; 
+    } // N.S. io
+}// N.S. boost
+
+
+#include <boost/format/detail/config_macros.hpp>
+   // sets-up macros and load compiler-specific workarounds headers.
+
+#if !defined(BOOST_FORMAT_STREAMBUF_DEFINED)
+// workarounds-gcc-2.95 might have defined own streambuf
+#include <streambuf>
+#endif
+
+#if !defined(BOOST_FORMAT_OSTREAM_DEFINED)
+// workarounds-gcc-2.95 might already have included <iostream>
+#include <ostream>
+#endif
+
+
+
+namespace boost {
+    namespace io {
+
+        // **** CompatTraits general definitions : ----------------------------
+        template<class Tr>
+        class CompatTraits
+        {        // general case : be transparent
+        public:
+            typedef Tr  compatible_type;
+        };
+
+        // **** CompatAlloc general definitions : -----------------------------
+        template<class Alloc>
+        class CompatAlloc
+        {        // general case : be transparent
+        public:
+            typedef Alloc  compatible_type;
+        };
+
+    } //N.S. io
+} // N.S. boost
+#endif // include guard

Added: pkg/BH/inst/include/boost/format/detail/config_macros.hpp
===================================================================
--- pkg/BH/inst/include/boost/format/detail/config_macros.hpp	                        (rev 0)
+++ pkg/BH/inst/include/boost/format/detail/config_macros.hpp	2013-05-04 00:57:24 UTC (rev 34)
@@ -0,0 +1,97 @@
+// -*- C++ -*-
+// ----------------------------------------------------------------------------
+// config_macros.hpp : configuration macros for the format library
+// only BOOST_IO_STD is absolutely needed (it should be 'std::' in general)
+// others are compiler-specific workaround macros used in #ifdef switches
+// ----------------------------------------------------------------------------
+
+//  Copyright Samuel Krempp 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/libs/format for library home page
+
+
+// ----------------------------------------------------------------------------
+
+#ifndef BOOST_FORMAT_CONFIG_MACROS_HPP
+#define BOOST_FORMAT_CONFIG_MACROS_HPP
+
+#include <boost/config.hpp>
+#include <boost/detail/workaround.hpp>
+
+// make sure our local macros wont override something :
+#if defined(BOOST_NO_LOCALE_ISDIGIT) || defined(BOOST_OVERLOAD_FOR_NON_CONST) \
+  || defined(BOOST_IO_STD) || defined( BOOST_IO_NEEDS_USING_DECLARATION ) \
+    || defined(BOOST_NO_TEMPLATE_STD_STREAM) \
+    || defined(BOOST_FORMAT_STREAMBUF_DEFINED) || defined(BOOST_FORMAT_OSTREAM_DEFINED)
+#error "boost::format uses a local macro that is already defined."
+#endif
+
+// specific workarounds. each header can define BOOS_IO_STD if it 
+// needs. (e.g. because of IO_NEEDS_USING_DECLARATION)
+#include <boost/format/detail/workarounds_gcc-2_95.hpp>
+#include <boost/format/detail/workarounds_stlport.hpp>
+
+#ifndef BOOST_IO_STD
+#  define BOOST_IO_STD ::std::
+#endif
+
+#if defined(BOOST_NO_STD_LOCALE) || \
+ ( BOOST_WORKAROUND(__BORLANDC__, <= 0x564) \
+   || BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT( 0x570 ) )  )
+// some future __BORLANDC__ >0x564  versions might not need this
+// 0x570 is Borland's kylix branch
+#define BOOST_NO_LOCALE_ISDIGIT
+#endif
+
+#if  BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x570) ) || BOOST_WORKAROUND( BOOST_MSVC, BOOST_TESTED_AT(1300))
+#define BOOST_NO_OVERLOAD_FOR_NON_CONST
+#endif
+
+// gcc-2.95's native stringstream is not usable
+#if BOOST_WORKAROUND(__GNUC__, < 3) && !defined(__SGI_STL_PORT) && !defined(_STLPORT_VERSION)
+#define BOOST_FORMAT_IGNORE_STRINGSTREAM  
+#endif
+
+
+// **** Workaround for io streams, stlport and msvc.
+#ifdef BOOST_IO_NEEDS_USING_DECLARATION
+namespace boost {
+  using std::char_traits;
+  using std::basic_ostream;
+  namespace io {
+    using std::basic_ostream;
+    namespace detail {
+      using std::basic_ios;
+      using std::basic_ostream;
+    }
+  }
+#if ! defined(BOOST_NO_STD_LOCALE)
+    using std::locale;
+    namespace io {
+        using std::locale;
+        namespace detail {
+            using std::locale;
+        }
+    }
+#endif // locale
+}
+  // -end N.S. boost
+#endif // needs_using_declaration
+
+
+// ***  hide std::locale if it doesnt exist. 
+// this typedef is either std::locale or int, avoids placing ifdefs everywhere
+namespace boost { namespace io { namespace detail {
+#if ! defined(BOOST_NO_STD_LOCALE)
+    typedef BOOST_IO_STD locale locale_t;
+#else 
+    typedef int          locale_t;
+#endif
+} } }
+
+
+// ----------------------------------------------------------------------------
+
+#endif // BOOST_FORMAT_MACROS_DEFAULT_HPP

Added: pkg/BH/inst/include/boost/format/detail/msvc_disambiguater.hpp
===================================================================
--- pkg/BH/inst/include/boost/format/detail/msvc_disambiguater.hpp	                        (rev 0)
+++ pkg/BH/inst/include/boost/format/detail/msvc_disambiguater.hpp	2013-05-04 00:57:24 UTC (rev 34)
@@ -0,0 +1,56 @@
+// ----------------------------------------------------------------------------
+// msvc_disambiguater.hpp : msvc workarounds. (for put_{head|last} overloads)
+//               the trick was described in boost's list  by Aleksey Gurtovoy
+// ----------------------------------------------------------------------------
+
+//  Copyright Samuel Krempp 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/libs/format for library home page
+
+// ----------------------------------------------------------------------------
+
+#ifndef BOOST_MSVC_DISAMBIGUATER_HPP
+#define BOOST_MSVC_DISAMBIGUATER_HPP
+
+#if BOOST_WORKAROUND( BOOST_MSVC, <= 1300) || \
+    BOOST_WORKAROUND(__DECCXX_VER, BOOST_TESTED_AT(60590042))
+   // this whole header is specifically for msvc up to 7.0
+
+#include <boost/format/group.hpp>
+#include <ostream>
+
+namespace boost {
+namespace io {
+namespace detail {
+
+template< class Ch, class Tr, class T >
+struct disambiguater
+{
+   template< typename U >
+   static void put_head(BOOST_IO_STD basic_ostream<Ch, Tr>& os, group1<U> const& x, long)
+   {
+       os << group_head(x.a1_); 
+   }
+   static void put_head(BOOST_IO_STD basic_ostream<Ch, Tr>& os, T const& x, int)
+   {
+   }
+   template< typename U >
+   static void put_last(BOOST_IO_STD basic_ostream<Ch, Tr>& os, group1<U> const& x, long)
+   {
+       os << group_last(x.a1_); 
+   }
+   static void put_last(BOOST_IO_STD basic_ostream<Ch, Tr>& os, T const& x, int)
+   {
+     os << x;
+   }
+};
+
+} // namespace detail
+} // namespace io
+} // namespace boost
+
+#endif // -BOOST_MSVC
+
+#endif // -BOOST_MSVC_DISAMBIGUATER_HPP

Added: pkg/BH/inst/include/boost/format/detail/unset_macros.hpp
===================================================================
--- pkg/BH/inst/include/boost/format/detail/unset_macros.hpp	                        (rev 0)
+++ pkg/BH/inst/include/boost/format/detail/unset_macros.hpp	2013-05-04 00:57:24 UTC (rev 34)
@@ -0,0 +1,34 @@
+// ----------------------------------------------------------------------------
+// unset_macros.hpp
+// ----------------------------------------------------------------------------
+
+//  Copyright Samuel Krempp 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/libs/format for library home page
+
+// ----------------------------------------------------------------------------
+
+// *** Undefine 'local' macros :
+#ifdef BOOST_NO_OVERLOAD_FOR_NON_CONST
+#undef BOOST_NO_OVERLOAD_FOR_NON_CONST
+#endif
+#ifdef BOOST_NO_LOCALE_ISDIGIT
+#undef BOOST_NO_LOCALE_ISDIGIT
+#endif
+#ifdef BOOST_IO_STD
+#undef BOOST_IO_STD
+#endif
+#ifdef BOOST_IO_NEEDS_USING_DECLARATION
+#undef BOOST_IO_NEEDS_USING_DECLARATION
+#endif
+#ifdef BOOST_NO_TEMPLATE_STD_STREAM
+#undef BOOST_NO_TEMPLATE_STD_STREAM
+#endif
+#ifdef BOOST_FORMAT_STREAMBUF_DEFINED
+#undef BOOST_FORMAT_STREAMBUF_DEFINED
+#endif
+#ifdef BOOST_FORMAT_OSTREAM_DEFINED
+#undef BOOST_FORMAT_OSTREAM_DEFINED
+#endif

Added: pkg/BH/inst/include/boost/format/detail/workarounds_gcc-2_95.hpp
===================================================================
--- pkg/BH/inst/include/boost/format/detail/workarounds_gcc-2_95.hpp	                        (rev 0)
+++ pkg/BH/inst/include/boost/format/detail/workarounds_gcc-2_95.hpp	2013-05-04 00:57:24 UTC (rev 34)
@@ -0,0 +1,162 @@
+// ----------------------------------------------------------------------------
+//  workarounds for gcc < 3.0. 
+// ----------------------------------------------------------------------------
+
+//  Copyright Samuel Krempp 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/libs/format for library home page
+
+
+// ----------------------------------------------------------------------------
+
+// There's a lot to do, the stdlib shipped with gcc prior to 3.x 
+// was terribly non-conforming. 
+// . defines macros switches
+// . supplies template classes basic_foo<char,Tr> where gcc only supplies foo.
+//  i.e :
+//     -  basic_ios<char, Tr>        from ios
+//     -  basic_ostream<char, Tr>    from ostream
+//     -  basic_srteambuf<char, Tr>  from streambuf
+// these can be used transparently. (it obviously does not work for wchar_t)
+// . specialise CompatAlloc and CompatTraits to wrap gcc-2.95's 
+//    string_char_traits and std::alloc 
+
+#if  BOOST_WORKAROUND(__GNUC__, < 3) && !defined(__SGI_STL_PORT) && !defined(_STLPORT_VERSION)
+   // only for gcc-2.95's native stdlib
+
+#ifndef BOOST_FORMAT_WORKAROUNDS_GCC295_H
+#define BOOST_FORMAT_WORKAROUNDS_GCC295_H
+
+// SGI STL doesnt have <ostream> and others, so we need iostream.
+#include <iostream> 
+#define BOOST_FORMAT_OSTREAM_DEFINED
+
+#include <streambuf.h>
+#define BOOST_FORMAT_STREAMBUF_DEFINED
+
+#define BOOST_NO_TEMPLATE_STD_STREAM
+
+#ifndef BOOST_IO_STD
+#  define BOOST_IO_STD std::
+#endif
+
+
+
+// *** 
+// gcc's simple classes turned into standard-like template classes :
+
+namespace std {
+
+
+    // gcc has string_char_traits, it's incomplete.
+    // we declare a std::char_traits, and specialize CompatTraits<..> on it
+    // to do what is required
+    template<class Ch>
+    class char_traits; // no definition here, we will just use it as a tag.
+
+    template <class Ch, class Tr>
+    class basic_streambuf;
+
+    template <class Tr> 
+    class basic_streambuf<char, Tr> : public streambuf {
+    };
+
+    template <class Ch, class Tr=::std::char_traits<Ch> >
+    class basic_ios;
+
+    template <class Tr>
+    class basic_ios<char, Tr> : public ostream {
+    public:
+        basic_ios(streambuf * p) : ostream(p) {};
+         char fill()  const { return ios::fill(); } // gcc returns wchar..
+         char fill(char c)  { return ios::fill(c); } // gcc takes wchar..
+         char widen(char c) { return c; }
+         char narrow(char c, char def) { return c; }
+        basic_ios& copyfmt(const ios& right) {
+            fill(right.fill());
+            flags(right.flags() );
+            exceptions(right.exceptions());
+            width(right.width());
+            precision(right.precision());
+            return *this;
+        }
+     };
+
+
+    typedef ios ios_base;
+
+    template <class Ch, class Tr>
+    class basic_ostream;
+
+     template <class Tr> 
+     class basic_ostream<char, Tr> : public basic_ios<char, Tr>
+     {
+     public:
+         basic_ostream(streambuf * p) : basic_ios<char,Tr> (p) {}
+     };
+
+} // namespace std
+
+
+namespace boost {
+    namespace io {
+
+
+        // ** CompatTraits gcc2.95 specialisations ----------------------------
+        template<class Ch>
+        class CompatTraits< ::std::string_char_traits<Ch> >
+            : public ::std::string_char_traits<Ch> 
+        {
+        public:
+            typedef CompatTraits                compatible_type;
+
+            typedef Ch char_type;
+            typedef int int_type;
+            typedef ::std::streampos pos_type;
+            typedef ::std::streamoff off_type;
+        
+            static char_type 
+            to_char_type(const int_type& meta) {
+                return static_cast<char_type>(meta); }
+            static int_type 
+            to_int_type(const char_type& ch) {
+                return static_cast<int_type>(static_cast<unsigned char>(ch) );}
+            static bool 
+            eq_int_type(const int_type& left, const int_type& right) {
+                return left == right; }
+            static int_type 
+            eof() {
+                return static_cast<int_type>(EOF);
+            }
+            static int_type 
+            not_eof(const int_type& meta) {
+                return (meta == eof()) ? 0 : meta;
+            }
+        };
+
+        template<class Ch>
+        class CompatTraits< ::std::char_traits<Ch> > {
+        public:
+            typedef CompatTraits< ::std::string_char_traits<Ch> >  compatible_type;
+        };
+
+        // ** CompatAlloc gcc-2.95  specialisations ---------------------------
+        template<>
+        class CompatAlloc< ::std::alloc>
+        {
+        public:
+            typedef ::std::allocator<char> compatible_type;
+        };
+
+    } // N.S. io
+} // N.S. boost
+
+
+
+
+
+#endif // include guard
+
+#endif // if workaround

Added: pkg/BH/inst/include/boost/format/detail/workarounds_stlport.hpp
===================================================================
--- pkg/BH/inst/include/boost/format/detail/workarounds_stlport.hpp	                        (rev 0)
+++ pkg/BH/inst/include/boost/format/detail/workarounds_stlport.hpp	2013-05-04 00:57:24 UTC (rev 34)
@@ -0,0 +1,42 @@
+// ----------------------------------------------------------------------------
+// workarounds_stlport.hpp : workaround STLport issues
+// ----------------------------------------------------------------------------
+
+//  Copyright Samuel Krempp 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/libs/format for library home page
+
+// ----------------------------------------------------------------------------
+
+#ifndef BOOST_MACROS_STLPORT_HPP
+#define BOOST_MACROS_STLPORT_HPP
+
+#if defined(_STLPORT_VERSION) && BOOST_WORKAROUND( BOOST_MSVC, <= 1300)
+// msvc-6-stlport fails to find basic_string::append( iterator, iterator) when linking
+// might affect other MSwindows compilers 
+#define BOOST_NO_STRING_APPEND
+#endif
+
+// *** This should go to "boost/config/stdlib/stlport.hpp".
+
+// If the streams are not native and there are problems with using templates
+// accross namespaces, we define some macros to enable a workaround for this.
+
+// STLport 4.5
+#if !defined(_STLP_OWN_IOSTREAMS) && defined(_STLP_USE_NAMESPACES) && defined(BOOST_NO_USING_TEMPLATE)
+#  define BOOST_IO_STD 
+#  define BOOST_IO_NEEDS_USING_DECLARATION
+#endif
+
+// STLport 4.0
+#if !defined(__SGI_STL_OWN_IOSTREAMS) && defined(__STL_USE_OWN_NAMESPACE) && defined(BOOST_NO_USING_TEMPLATE)
+#  define BOOST_IO_STD 
+#  define BOOST_IO_NEEDS_USING_DECLARATION
+#endif
+
+
+// ----------------------------------------------------------------------------
+
+#endif // BOOST_MACROS_STLPORT_HPP

Added: pkg/BH/inst/include/boost/fusion/adapted/std_pair.hpp
===================================================================
--- pkg/BH/inst/include/boost/fusion/adapted/std_pair.hpp	                        (rev 0)
+++ pkg/BH/inst/include/boost/fusion/adapted/std_pair.hpp	2013-05-04 00:57:24 UTC (rev 34)
@@ -0,0 +1,19 @@
+/*=============================================================================
+    Copyright (c) 2001-2011 Joel de Guzman
+    Copyright (c) 2005-2006 Dan Marsden
+    Copyright (c) 2009-2010 Christopher Schmidt
+
+    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_FUSION_ADAPTED_STD_PAIR_HPP
+#define BOOST_FUSION_ADAPTED_STD_PAIR_HPP
+
+#include <boost/fusion/adapted/struct/adapt_struct.hpp>
+#include <utility>
+
+BOOST_FUSION_ADAPT_TPL_STRUCT(
+    (T1)(T2),(std::pair)(T1)(T2),(T1, first)(T2, second))
+
+#endif

Added: pkg/BH/inst/include/boost/fusion/include/std_pair.hpp
===================================================================
--- pkg/BH/inst/include/boost/fusion/include/std_pair.hpp	                        (rev 0)
+++ pkg/BH/inst/include/boost/fusion/include/std_pair.hpp	2013-05-04 00:57:24 UTC (rev 34)
@@ -0,0 +1,12 @@
+/*=============================================================================
+    Copyright (c) 2001-2007 Joel de Guzman
+
+    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)
+==============================================================================*/
+#if !defined(FUSION_INCLUDE_STD_PAIR)
+#define FUSION_INCLUDE_STD_PAIR
+
+#include <boost/fusion/adapted/std_pair.hpp>
+
+#endif

Added: pkg/BH/inst/include/boost/fusion/include/tuple.hpp
===================================================================
--- pkg/BH/inst/include/boost/fusion/include/tuple.hpp	                        (rev 0)
+++ pkg/BH/inst/include/boost/fusion/include/tuple.hpp	2013-05-04 00:57:24 UTC (rev 34)
@@ -0,0 +1,12 @@
+/*=============================================================================
+    Copyright (c) 2001-2007 Joel de Guzman
+
+    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)
+==============================================================================*/
+#if !defined(FUSION_INCLUDE_TUPLE)
+#define FUSION_INCLUDE_TUPLE
+
+#include <boost/fusion/tuple.hpp>
+
+#endif

Added: pkg/BH/inst/include/boost/fusion/iterator/advance.hpp
===================================================================
--- pkg/BH/inst/include/boost/fusion/iterator/advance.hpp	                        (rev 0)
+++ pkg/BH/inst/include/boost/fusion/iterator/advance.hpp	2013-05-04 00:57:24 UTC (rev 34)
@@ -0,0 +1,92 @@
+/*=============================================================================
+    Copyright (c) 2001-2011 Joel de Guzman
+
+    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)
+==============================================================================*/
+#if !defined(FUSION_ADVANCE_09172005_1146)
+#define FUSION_ADVANCE_09172005_1146
+
+#include <boost/fusion/iterator/detail/advance.hpp>
+#include <boost/fusion/support/category_of.hpp>
+
+#include <boost/mpl/int.hpp>
+#include <boost/mpl/assert.hpp>
+#include <boost/type_traits/is_same.hpp>
+#include <boost/fusion/support/tag_of.hpp>
+
+namespace boost { namespace fusion
+{
+    struct random_access_traversal_tag;
+
+    // Special tags:
+    struct iterator_facade_tag; // iterator facade tag
+    struct boost_array_iterator_tag; // boost::array iterator tag
+    struct mpl_iterator_tag; // mpl sequence iterator tag
+    struct std_pair_iterator_tag; // std::pair iterator tag
+
+    namespace extension
+    {
+        template <typename Tag>
+        struct advance_impl
+        {
+            // default implementation
+            template <typename Iterator, typename N>
+            struct apply :
+                mpl::if_c<
+                    (N::value > 0)
+                  , advance_detail::forward<Iterator, N::value>
+                  , advance_detail::backward<Iterator, N::value>
+                >::type
+            {
+                BOOST_MPL_ASSERT_NOT((traits::is_random_access<Iterator>));
+            };
+        };
+
+        template <>
+        struct advance_impl<iterator_facade_tag>
+        {
+            template <typename Iterator, typename N>
+            struct apply : Iterator::template advance<Iterator, N> {};
+        };
+
+        template <>
+        struct advance_impl<boost_array_iterator_tag>;
+
+        template <>
+        struct advance_impl<mpl_iterator_tag>;
+
+        template <>
+        struct advance_impl<std_pair_iterator_tag>;
+    }
+
+    namespace result_of
+    {
+        template <typename Iterator, int N>
+        struct advance_c
+            : extension::advance_impl<typename detail::tag_of<Iterator>::type>::template apply<Iterator, mpl::int_<N> >
+        {};
+
+        template <typename Iterator, typename N>
+        struct advance
+            : extension::advance_impl<typename detail::tag_of<Iterator>::type>::template apply<Iterator, N>
+        {};
+    }
+
+    template <int N, typename Iterator>
+    inline typename result_of::advance_c<Iterator, N>::type const
+    advance_c(Iterator const& i)
+    {
+        return result_of::advance_c<Iterator, N>::call(i);
+    }
+
+    template<typename N, typename Iterator>
+    inline typename result_of::advance<Iterator, N>::type const
+    advance(Iterator const& i)
+    {
+        return result_of::advance<Iterator, N>::call(i);
+    }
+
+}} // namespace boost::fusion
+
+#endif

Added: pkg/BH/inst/include/boost/fusion/iterator/basic_iterator.hpp
===================================================================
--- pkg/BH/inst/include/boost/fusion/iterator/basic_iterator.hpp	                        (rev 0)
+++ pkg/BH/inst/include/boost/fusion/iterator/basic_iterator.hpp	2013-05-04 00:57:24 UTC (rev 34)
@@ -0,0 +1,141 @@
+/*=============================================================================
+    Copyright (c) 2009 Christopher Schmidt
+
+    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_FUSION_ITERATOR_BASIC_ITERATOR_HPP
+#define BOOST_FUSION_ITERATOR_BASIC_ITERATOR_HPP
+
+#include <boost/fusion/iterator/iterator_facade.hpp>
+
+#include <boost/mpl/and.hpp>
+#include <boost/mpl/equal_to.hpp>
+#include <boost/mpl/minus.hpp>
+#include <boost/mpl/int.hpp>
+#include <boost/type_traits/is_same.hpp>
+#include <boost/type_traits/remove_const.hpp>
+
+namespace boost { namespace fusion
+{
+    namespace extension
+    {
+        template <typename>
+        struct value_of_impl;
+
+        template <typename>
+        struct deref_impl;
+
+        template <typename>
+        struct value_of_data_impl;
+
+        template <typename>
+        struct key_of_impl;
+
+        template <typename>
+        struct deref_data_impl;
+    }
+
+    template<typename Tag, typename Category, typename Seq, int Index>
+    struct basic_iterator
+      : iterator_facade<basic_iterator<Tag,Category,Seq,Index>, Category>
+    {
+        typedef mpl::int_<Index> index;
+        typedef Seq seq_type;
+
+        template <typename It>
+        struct value_of
+          : extension::value_of_impl<Tag>::template apply<It>
+        {};
+
+        template <typename It>
+        struct deref
+          : extension::deref_impl<Tag>::template apply<It>
+        {};
+
+        template <typename It>
+        struct value_of_data
+          : extension::value_of_data_impl<Tag>::template apply<It>
+        {};
+
+        template <typename It>
+        struct key_of
+          : extension::key_of_impl<Tag>::template apply<It>
+        {};
+
+        template <typename It>
+        struct deref_data
+          : extension::deref_data_impl<Tag>::template apply<It>
+        {};
+
+        template <typename It, typename N>
+        struct advance
+        {
+            typedef
+                basic_iterator<Tag, Category, Seq, Index + N::value>
+            type;
+
+            static type
+            call(It const& it)
+            {
+                return type(*it.seq,0);
+            }
+        };
+
+        template <typename It>
+        struct next
+          : advance<It, mpl::int_<1> >
+        {};
+
+        template <typename It>
+        struct prior
+          : advance<It, mpl::int_<-1> >
+        {};
+
+        template <typename It1, typename It2>
+        struct distance
+        {
+            typedef mpl::minus<typename It2::index, typename It1::index> type;
+
+            static
+            type
+            call(It1 const&, It2 const&)
+            {
+                return type();
+            }
+        };
+
+        template <typename It1, typename It2>
+        struct equal_to
+          : mpl::and_<
+                is_same<
+                    typename remove_const<typename It1::seq_type>::type
+                  , typename remove_const<typename It2::seq_type>::type
+                >
+              , mpl::equal_to<typename It1::index,typename It2::index>
+            >
+        {};
+
+        template<typename OtherSeq>
+        basic_iterator(basic_iterator<Tag,Category,OtherSeq,Index> const& it)
+          : seq(it.seq)
+        {}
+
+        basic_iterator(Seq& in_seq, int)
+          : seq(&in_seq)
+        {}
+
+        template<typename OtherSeq>
+        basic_iterator&
+        operator=(basic_iterator<Tag,Category,OtherSeq,Index> const& it)
+        {
+            seq=it.seq;
+            return *this;
+        }
+
+        Seq* seq;
+    };
+}}
+
+#endif

Added: pkg/BH/inst/include/boost/fusion/iterator/deref.hpp
===================================================================
--- pkg/BH/inst/include/boost/fusion/iterator/deref.hpp	                        (rev 0)
+++ pkg/BH/inst/include/boost/fusion/iterator/deref.hpp	2013-05-04 00:57:24 UTC (rev 34)
@@ -0,0 +1,72 @@
+/*=============================================================================
+    Copyright (c) 2001-2011 Joel de Guzman
+
+    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)
+==============================================================================*/
+#if !defined(FUSION_DEREF_05042005_1019)
+#define FUSION_DEREF_05042005_1019
+
+#include <boost/fusion/support/iterator_base.hpp>
+#include <boost/fusion/support/tag_of.hpp>
+
+namespace boost { namespace fusion
+{
+    // Special tags:
+    struct iterator_facade_tag; // iterator facade tag
+    struct boost_array_iterator_tag; // boost::array iterator tag
+    struct mpl_iterator_tag; // mpl sequence iterator tag
+    struct std_pair_iterator_tag; // std::pair iterator tag
+
+    namespace extension
+    {
+        template <typename Tag>
+        struct deref_impl
+        {
+            template <typename Iterator>
+            struct apply {};
+        };
+
+        template <>
+        struct deref_impl<iterator_facade_tag>
+        {
+            template <typename Iterator>
+            struct apply : Iterator::template deref<Iterator> {};
+       };
+
+        template <>
+        struct deref_impl<boost_array_iterator_tag>;
+
+        template <>
+        struct deref_impl<mpl_iterator_tag>;
+
+        template <>
+        struct deref_impl<std_pair_iterator_tag>;
+    }
+
+    namespace result_of
+    {
+        template <typename Iterator>
+        struct deref
+            : extension::deref_impl<typename detail::tag_of<Iterator>::type>::
+                template apply<Iterator>
+        {};
+    }
+
+    template <typename Iterator>
+    typename result_of::deref<Iterator>::type
+    deref(Iterator const& i)
+    {
+        typedef result_of::deref<Iterator> deref_meta;
+        return deref_meta::call(i);
+    }
+
+    template <typename Iterator>
+    typename result_of::deref<Iterator>::type
+    operator*(iterator_base<Iterator> const& i)
+    {
+        return fusion::deref(i.cast());
+    }
+}}
+
+#endif

Added: pkg/BH/inst/include/boost/fusion/iterator/deref_data.hpp
===================================================================
--- pkg/BH/inst/include/boost/fusion/iterator/deref_data.hpp	                        (rev 0)
+++ pkg/BH/inst/include/boost/fusion/iterator/deref_data.hpp	2013-05-04 00:57:24 UTC (rev 34)
@@ -0,0 +1,49 @@
+/*=============================================================================
+    Copyright (c) 2009 Christopher Schmidt
+
+    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_FUSION_ITERATOR_DEREF_DATA_HPP
+#define BOOST_FUSION_ITERATOR_DEREF_DATA_HPP
+
+#include <boost/fusion/support/tag_of.hpp>
+
+namespace boost { namespace fusion
+{
+    struct iterator_facade_tag;
+
+    namespace extension
+    {
+        template <typename>
+        struct deref_data_impl;
+
+        template <>
+        struct deref_data_impl<iterator_facade_tag>
+        {
+            template <typename It>
+            struct apply
+              : It::template deref_data<It>
+            {};
+       };
+    }
+
+    namespace result_of
+    {
+        template <typename It>
+        struct deref_data
+          : extension::deref_data_impl<typename traits::tag_of<It>::type>::
+                template apply<It>
+        {};
+    }
+
+    template <typename It>
+    typename result_of::deref_data<It>::type
+    deref_data(It const& it)
+    {
+        return result_of::deref_data<It>::call(it);
+    }
+}}
+
+#endif

Added: pkg/BH/inst/include/boost/fusion/iterator/distance.hpp
===================================================================
--- pkg/BH/inst/include/boost/fusion/iterator/distance.hpp	                        (rev 0)
+++ pkg/BH/inst/include/boost/fusion/iterator/distance.hpp	2013-05-04 00:57:24 UTC (rev 34)
@@ -0,0 +1,78 @@
+/*=============================================================================
+    Copyright (c) 2001-2011 Joel de Guzman
+
+    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)
+==============================================================================*/
+#if !defined(FUSION_DISTANCE_09172005_0721)
+#define FUSION_DISTANCE_09172005_0721
+
+#include <boost/fusion/iterator/detail/distance.hpp>
+#include <boost/fusion/support/category_of.hpp>
+
+#include <boost/mpl/int.hpp>
+#include <boost/mpl/assert.hpp>
+#include <boost/type_traits/is_same.hpp>
+
+#include <boost/fusion/support/tag_of.hpp>
+
+namespace boost { namespace fusion
+{
+    struct random_access_traversal_tag;
+
+    // Special tags:
[TRUNCATED]

To get the complete diff run:
    svnlook diff /svnroot/boostheaders -r 34


More information about the Boostheaders-commits mailing list