Merged revisions 42180-42235 via svnmerge from

https://svn.boost.org/svn/boost/trunk

........
  r42194 | anthonyw | 2007-12-19 23:46:00 -0800 (Wed, 19 Dec 2007) | 1 line
  
  added missing parentheses
........
  r42195 | anthonyw | 2007-12-20 00:37:02 -0800 (Thu, 20 Dec 2007) | 1 line
  
  added hardware_concurrency support for apple, freebsd and sun platforms
........
  r42196 | niels_dekker | 2007-12-20 01:09:44 -0800 (Thu, 20 Dec 2007) | 1 line
  
  Removed "mark-expected-failures" from value_init_test, for both Borland and GCC, as value_init.hpp changeset [41942] provides a workaround for them.
........
  r42202 | fmhess | 2007-12-20 06:39:53 -0800 (Thu, 20 Dec 2007) | 6 lines
  
  Made putting the name of a typedef inside
  a "classname" element successfully produce a link to the typedef's
  reference documentation, or to the typedef's synopsis if that is
  all it has.
........
  r42217 | vladimir_prus | 2007-12-20 13:18:47 -0800 (Thu, 20 Dec 2007) | 1 line
  
  Explain a couple of gcc limitations with precompiled headers
........
  r42220 | matias | 2007-12-20 13:56:39 -0800 (Thu, 20 Dec 2007) | 1 line
  
  add explicit std::string initialization
........
  r42221 | matias | 2007-12-20 13:59:18 -0800 (Thu, 20 Dec 2007) | 1 line
  
  add license to each html page
........
  r42222 | matias | 2007-12-20 14:15:11 -0800 (Thu, 20 Dec 2007) | 1 line
  
  Time out: test_bimap_property_map @ gcc-3.4.6_linux_x86_64
........
  r42223 | djowel | 2007-12-20 15:24:28 -0800 (Thu, 20 Dec 2007) | 1 line
  
  Removing fusion variant adapter
........
  r42224 | djowel | 2007-12-20 15:28:26 -0800 (Thu, 20 Dec 2007) | 1 line
  
  Removing fusion variant adapter
........
  r42227 | nmusatti | 2007-12-20 23:03:44 -0800 (Thu, 20 Dec 2007) | 1 line
  
  Increased the latest supported version to 5.9.3, corresponding to the December 2007 update.
........
  r42228 | anthonyw | 2007-12-21 02:54:59 -0800 (Fri, 21 Dec 2007) | 1 line
  
  Updated thread ID test
........
  r42229 | anthonyw | 2007-12-21 03:05:37 -0800 (Fri, 21 Dec 2007) | 1 line
  
  Markup hardware_concurrency failure as expected on tru64 platforms, as support is not implemented
........
  r42234 | dgregor | 2007-12-21 13:18:17 -0800 (Fri, 21 Dec 2007) | 1 line
  
  Reduce header dependencies, from Shunsuke Sogame. Fixes #1535
........


[SVN r42236]
This commit is contained in:
Eric Niebler
2007-12-21 22:19:06 +00:00
parent 48b5e30df8
commit b0a18ff5c1
135 changed files with 1011 additions and 1561 deletions
+2 -2
View File
@@ -2,7 +2,7 @@
Copyright (c) 2001-2006 Joel de Guzman
Copyright (c) 2005-2006 Dan Marsden
Distributed under the Boost Software License, Version 1.0. (See accompanying
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(BOOST_FUSION_ADAPTED_30122005_1420)
@@ -12,6 +12,6 @@
#include <boost/fusion/adapted/std_pair.hpp>
#include <boost/fusion/adapted/array.hpp>
#include <boost/fusion/adapted/mpl.hpp>
#include <boost/fusion/adapted/variant.hpp>
#include <boost/fusion/adapted/struct.hpp>
#endif
+11 -6
View File
@@ -10,14 +10,19 @@
#include <boost/fusion/adapted/struct/extension.hpp>
#include <boost/fusion/adapted/struct/adapt_struct.hpp>
#include <boost/fusion/adapted/struct/adapt_assoc_struct.hpp>
#include <boost/fusion/adapted/struct/struct_iterator.hpp>
#include <boost/fusion/adapted/struct/detail/is_view_impl.hpp>
#include <boost/fusion/adapted/struct/detail/is_sequence_impl.hpp>
#include <boost/fusion/adapted/struct/detail/category_of_impl.hpp>
#include <boost/fusion/adapted/struct/detail/begin_impl.hpp>
#include <boost/fusion/adapted/struct/detail/end_impl.hpp>
#include <boost/fusion/adapted/struct/detail/size_impl.hpp>
#include <boost/fusion/adapted/struct/detail/at_impl.hpp>
#include <boost/fusion/adapted/struct/detail/at_key_impl.hpp>
#include <boost/fusion/adapted/struct/detail/begin_impl.hpp>
#include <boost/fusion/adapted/struct/detail/category_of_impl.hpp>
#include <boost/fusion/adapted/struct/detail/end_impl.hpp>
#include <boost/fusion/adapted/struct/detail/has_key_impl.hpp>
#include <boost/fusion/adapted/struct/detail/is_sequence_impl.hpp>
#include <boost/fusion/adapted/struct/detail/is_view_impl.hpp>
#include <boost/fusion/adapted/struct/detail/size_impl.hpp>
#include <boost/fusion/adapted/struct/detail/value_at_impl.hpp>
#include <boost/fusion/adapted/struct/detail/value_at_key_impl.hpp>
#endif
@@ -50,7 +50,7 @@ namespace boost { namespace fusion { namespace extension
struct struct_assoc_member<Struct const, Key>
{
typedef typename
add_const<typename struct_assoc_member<Struct, Key>::type>::type
add_const<typename struct_assoc_member<Struct, Key>::type>::type
type;
static type&
-20
View File
@@ -1,20 +0,0 @@
/*=============================================================================
Copyright (c) 2001-2006 Joel de Guzman
Copyright (c) 2005-2006 Dan Marsden
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(BOOST_FUSION_VARIANT_12112006_1614)
#define BOOST_FUSION_VARIANT_12112006_1614
#include <boost/fusion/adapted/variant/variant_iterator.hpp>
#include <boost/fusion/adapted/variant/detail/is_view_impl.hpp>
#include <boost/fusion/adapted/variant/detail/is_sequence_impl.hpp>
#include <boost/fusion/adapted/variant/detail/category_of_impl.hpp>
#include <boost/fusion/adapted/variant/tag_of.hpp>
#include <boost/fusion/adapted/variant/detail/size_impl.hpp>
#include <boost/fusion/adapted/variant/detail/begin_impl.hpp>
#include <boost/fusion/adapted/variant/detail/end_impl.hpp>
#endif
@@ -1,45 +0,0 @@
/*=============================================================================
Copyright (c) 2001-2006 Joel de Guzman
Copyright (c) 2005-2006 Dan Marsden
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(BOOST_FUSION_VARIANT_BEGIN_IMPL_12112006_2137)
#define BOOST_FUSION_VARIANT_BEGIN_IMPL_12112006_2137
#include <boost/mpl/begin.hpp>
namespace boost { namespace fusion {
struct variant_tag;
template<typename Seq, typename Iterator>
struct variant_iterator;
namespace extension
{
template<typename T>
struct begin_impl;
template <>
struct begin_impl<variant_tag>
{
template <typename Seq>
struct apply
{
typedef variant_iterator<
Seq,
typename mpl::begin<typename Seq::types>::type> type;
static type
call(Seq& v)
{
return type(v);
}
};
};
}
}}
#endif
@@ -1,33 +0,0 @@
/*=============================================================================
Copyright (c) 2001-2006 Joel de Guzman
Copyright (c) 2005-2006 Dan Marsden
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(BOOST_FUSION_VARIANT_CATEGORY_OF_IMPL_13112006_0802)
#define BOOST_FUSION_VARIANT_CATEGORY_OF_IMPL_13112006_0802
namespace boost { namespace fusion {
struct variant_tag;
struct forward_traversal_tag;
namespace extension
{
template<typename T>
struct category_of_impl;
template<>
struct category_of_impl<variant_tag>
{
template<typename T>
struct apply
{
typedef forward_traversal_tag type;
};
};
}
}}
#endif
@@ -1,45 +0,0 @@
/*=============================================================================
Copyright (c) 2001-2006 Joel de Guzman
Copyright (c) 2005-2006 Dan Marsden
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(BOOST_FUSION_VARIANT_END_IMPL_12112006_2137)
#define BOOST_FUSION_VARIANT_END_IMPL_12112006_2137
#include <boost/mpl/end.hpp>
namespace boost { namespace fusion {
struct variant_tag;
template<typename Seq, typename Iterator>
struct variant_iterator;
namespace extension
{
template<typename T>
struct end_impl;
template <>
struct end_impl<variant_tag>
{
template <typename Seq>
struct apply
{
typedef variant_iterator<
Seq,
typename mpl::end<typename Seq::types>::type> type;
static type
call(Seq& v)
{
return type(v);
}
};
};
}
}}
#endif
@@ -1,31 +0,0 @@
/*=============================================================================
Copyright (c) 2001-2006 Joel de Guzman
Copyright (c) 2005-2006 Dan Marsden
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(BOOST_FUSION_VARIANT_IS_SEQUENCE_IMPL_13112006_0748)
#define BOOST_FUSION_VARIANT_IS_SEQUENCE_IMPL_13112006_0748
#include <boost/mpl/bool.hpp>
namespace boost { namespace fusion {
struct variant_tag;
namespace extension
{
template<typename Tag>
struct is_sequence_impl;
template<>
struct is_sequence_impl<variant_tag>
{
template<typename Sequence>
struct apply : mpl::true_ {};
};
}
}}
#endif
@@ -1,31 +0,0 @@
/*=============================================================================
Copyright (c) 2001-2006 Joel de Guzman
Copyright (c) 2005-2006 Dan Marsden
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(BOOST_FUSION_VARIANT_IS_VIEW_IMPL_13112006_0749)
#define BOOST_FUSION_VARIANT_IS_VIEW_IMPL_13112006_0749
#include <boost/mpl/bool.hpp>
namespace boost { namespace fusion {
struct variant_tag;
namespace extension
{
template<typename Tag>
struct is_view_impl;
template<>
struct is_view_impl<variant_tag>
{
template<typename Sequence>
struct apply : mpl::false_ {};
};
}
}}
#endif
@@ -1,32 +0,0 @@
/*=============================================================================
Copyright (c) 2001-2006 Joel de Guzman
Copyright (c) 2005-2006 Dan Marsden
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(BOOST_FUSION_VARIANT_SIZE_IMPL_12112006_2115)
#define BOOST_FUSION_VARIANT_SIZE_IMPL_12112006_2115
#include <boost/mpl/size.hpp>
namespace boost { namespace fusion {
struct variant_tag;
namespace extension
{
template<typename T>
struct size_impl;
template<>
struct size_impl<variant_tag>
{
template<typename Sequence>
struct apply : mpl::size<typename Sequence::types>
{};
};
}
}}
#endif
@@ -1,32 +0,0 @@
/*=============================================================================
Copyright (c) 2001-2006 Joel de Guzman
Copyright (c) 2005-2006 Dan Marsden
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(BOOST_FUSION_VARIANT_TAG_OF_12112006_1704)
#define BOOST_FUSION_VARIANT_TAG_OF_12112006_1704
#include <boost/fusion/support/tag_of_fwd.hpp>
#include <boost/variant/variant_fwd.hpp>
namespace boost { namespace fusion
{
struct variant_tag;
namespace traits
{
template<BOOST_VARIANT_ENUM_PARAMS(typename T)>
#if defined(BOOST_PARTIAL_SPECIALIZATION_EXPLICT_ARGS)
struct tag_of<boost::variant<BOOST_VARIANT_ENUM_PARAMS(T)>, void >
#else
struct tag_of<boost::variant<BOOST_VARIANT_ENUM_PARAMS(T)> >
#endif
{
typedef variant_tag type;
};
}
}}
#endif
@@ -1,117 +0,0 @@
/*=============================================================================
Copyright (c) 2001-2006 Joel de Guzman
Copyright (c) 2005-2006 Dan Marsden
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(BOOST_FUSION_VARIANT_ITERATOR_12112006_1617)
#define BOOST_FUSION_VARIANT_ITERATOR_12112006_1617
#include <boost/fusion/iterator/iterator_facade.hpp>
#include <boost/mpl/next.hpp>
#include <boost/mpl/int.hpp>
#include <boost/mpl/distance.hpp>
#include <boost/mpl/deref.hpp>
#include <boost/mpl/eval_if.hpp>
#include <boost/type_traits/is_const.hpp>
#include <boost/type_traits/add_const.hpp>
#include <boost/type_traits/add_reference.hpp>
#include <boost/variant/get.hpp>
#include <boost/detail/workaround.hpp>
namespace boost { namespace fusion
{
struct forward_traversal_tag;
template<typename Variant, typename MPLIterator>
struct variant_iterator
: iterator_facade<variant_iterator<Variant, MPLIterator>, forward_traversal_tag>
{
typedef Variant variant_type;
typedef MPLIterator iterator;
variant_iterator(Variant& var)
: var_(var) {}
Variant& var_;
template<typename Iterator>
struct next
{
typedef variant_iterator<
typename Iterator::variant_type,
typename mpl::next<typename Iterator::iterator>::type> type;
static type
call(Iterator const& i)
{
return type(i.var_);
}
};
template<typename I1, typename I2>
struct distance
: mpl::distance<
typename I1::iterator,
typename I2::iterator>
{
typedef typename mpl::distance<
typename I1::iterator,
typename I2::iterator>::type type;
static type call(I1 const& i1, I2 const& i2)
{
return type();
}
};
template<typename Iterator>
struct value_of
: mpl::deref<typename Iterator::iterator>
{};
template <typename Iterator>
struct deref
{
typedef typename
mpl::eval_if<
is_const<typename Iterator::variant_type>
, add_const<typename mpl::deref<typename Iterator::iterator>::type>
, mpl::deref<typename Iterator::iterator>
>::type
value_type;
typedef typename
add_reference<value_type>::type
type;
#if BOOST_WORKAROUND(BOOST_MSVC, < 1400)
// for some unknown reason (compiler bug) VC7.1 gets confused with
// variant and optional get functions.
static type
call(Iterator const & it)
{
boost::detail::variant::get_visitor<type> v;
typedef typename mpl::deref<typename Iterator::iterator>::type type;
if (type* result = it.var_.apply_visitor(v))
return *result;
it.var_ = type(); // prime the variant
return *it.var_.apply_visitor(v); // no-throw!
}
#else
static type
call(Iterator const & it)
{
typedef typename mpl::deref<typename Iterator::iterator>::type type;
if (type* result = boost::get<type>(&it.var_))
return *result;
it.var_ = type(); // prime the variant
return *boost::get<type>(&it.var_); // no-throw!
}
#endif
};
};
}}
#endif
-12
View File
@@ -1,12 +0,0 @@
/*=============================================================================
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_VARIANT)
#define FUSION_INCLUDE_VARIANT
#include <boost/fusion/adapted/variant.hpp>
#endif