|
Boost-Commit : |
Subject: [Boost-commit] svn:boost r55632 - in sandbox/SOC/2009/fusion: . boost/fusion/adapted boost/fusion/adapted/detail/mpl boost/fusion/algorithm/iteration boost/fusion/algorithm/query boost/fusion/algorithm/query/detail boost/fusion/algorithm/transformation boost/fusion/container/detail/variadic_templates boost/fusion/container/generation/detail/variadic_templates boost/fusion/container/list boost/fusion/container/map boost/fusion/include boost/fusion/iterator boost/fusion/sequence boost/fusion/sequence/comparison boost/fusion/sequence/intrinsic boost/fusion/sequence/io boost/fusion/support boost/fusion/view/filter_view boost/fusion/view/iterator_range boost/fusion/view/joint_view boost/fusion/view/reverse_view boost/fusion/view/transform_view boost/fusion/view/zip_view libs/fusion/example/test
From: mr.chr.schmidt_at_[hidden]
Date: 2009-08-17 18:07:38
Author: cschmidt
Date: 2009-08-17 18:07:31 EDT (Mon, 17 Aug 2009)
New Revision: 55632
URL: http://svn.boost.org/trac/boost/changeset/55632
Log:
final cleanup
Added:
sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/is_iterator_impl.hpp (contents, props changed)
sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/tag_of.hpp (contents, props changed)
Removed:
sandbox/SOC/2009/fusion/boost/fusion/include/sequence_assign.hpp
Text files modified:
sandbox/SOC/2009/fusion/boost/fusion/adapted/mpl.hpp | 2 +
sandbox/SOC/2009/fusion/boost/fusion/adapted/std_pair.hpp | 1
sandbox/SOC/2009/fusion/boost/fusion/algorithm/iteration/accumulate.hpp | 2
sandbox/SOC/2009/fusion/boost/fusion/algorithm/iteration/fold.hpp | 2
sandbox/SOC/2009/fusion/boost/fusion/algorithm/iteration/for_each.hpp | 2
sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/all.hpp | 2
sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/any.hpp | 2
sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/count.hpp | 2
sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/count_if.hpp | 2
sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/detail/count.hpp | 2
sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/find.hpp | 2
sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/find_if.hpp | 2
sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/find_key.hpp | 2
sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/none.hpp | 2
sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/clear.hpp | 3 +
sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/erase.hpp | 16 ++++++----
sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/erase_key.hpp | 2
sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/filter.hpp | 2
sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/filter_if.hpp | 2
sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/insert.hpp | 3 +
sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/insert_range.hpp | 5 ++-
sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/join.hpp | 4 +-
sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/pop_back.hpp | 2
sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/pop_front.hpp | 2
sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/push_back.hpp | 2
sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/push_front.hpp | 2
sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/remove.hpp | 2
sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/remove_if.hpp | 2
sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/replace.hpp | 2
sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/replace_if.hpp | 2
sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/reverse.hpp | 2
sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/transform.hpp | 6 ++--
sandbox/SOC/2009/fusion/boost/fusion/container/detail/variadic_templates/as_seq.hpp | 32 ++++++++++++++++++++--
sandbox/SOC/2009/fusion/boost/fusion/container/generation/detail/variadic_templates/make_map.hpp | 21 ++++++-------
sandbox/SOC/2009/fusion/boost/fusion/container/generation/detail/variadic_templates/map_tie.hpp | 6 ++-
sandbox/SOC/2009/fusion/boost/fusion/container/list/convert.hpp | 3 ++
sandbox/SOC/2009/fusion/boost/fusion/container/map/map.hpp | 3 --
sandbox/SOC/2009/fusion/boost/fusion/iterator/advance.hpp | 6 +--
sandbox/SOC/2009/fusion/boost/fusion/iterator/deref.hpp | 3 -
sandbox/SOC/2009/fusion/boost/fusion/iterator/deref_data.hpp | 2
sandbox/SOC/2009/fusion/boost/fusion/iterator/distance.hpp | 6 +--
sandbox/SOC/2009/fusion/boost/fusion/iterator/equal_to.hpp | 13 +++++---
sandbox/SOC/2009/fusion/boost/fusion/iterator/key_of.hpp | 2
sandbox/SOC/2009/fusion/boost/fusion/iterator/next.hpp | 3 -
sandbox/SOC/2009/fusion/boost/fusion/iterator/prior.hpp | 3 -
sandbox/SOC/2009/fusion/boost/fusion/iterator/value_of.hpp | 3 -
sandbox/SOC/2009/fusion/boost/fusion/iterator/value_of_data.hpp | 2
sandbox/SOC/2009/fusion/boost/fusion/sequence/comparison/equal_to.hpp | 8 ++--
sandbox/SOC/2009/fusion/boost/fusion/sequence/comparison/greater.hpp | 8 ++--
sandbox/SOC/2009/fusion/boost/fusion/sequence/comparison/greater_equal.hpp | 8 ++--
sandbox/SOC/2009/fusion/boost/fusion/sequence/comparison/less.hpp | 8 ++--
sandbox/SOC/2009/fusion/boost/fusion/sequence/comparison/less_equal.hpp | 8 ++--
sandbox/SOC/2009/fusion/boost/fusion/sequence/comparison/not_equal_to.hpp | 8 ++--
sandbox/SOC/2009/fusion/boost/fusion/sequence/convert.hpp | 8 ----
sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/at.hpp | 4 +-
sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/at_key.hpp | 2
sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/back.hpp | 2
sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/begin.hpp | 2
sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/empty.hpp | 2
sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/front.hpp | 2
sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/has_key.hpp | 2
sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/size.hpp | 2
sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/swap.hpp | 4 +-
sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/value_at.hpp | 4 +-
sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/value_at_key.hpp | 2
sandbox/SOC/2009/fusion/boost/fusion/sequence/io/in.hpp | 4 +-
sandbox/SOC/2009/fusion/boost/fusion/sequence/io/out.hpp | 4 +-
sandbox/SOC/2009/fusion/boost/fusion/support/sequence_base.hpp | 58 +++++++++++++++++++++------------------
sandbox/SOC/2009/fusion/boost/fusion/support/tag_of.hpp | 38 ++++++++++---------------
sandbox/SOC/2009/fusion/boost/fusion/support/tag_of_fwd.hpp | 2
sandbox/SOC/2009/fusion/boost/fusion/view/filter_view/filter_view.hpp | 2
sandbox/SOC/2009/fusion/boost/fusion/view/iterator_range/iterator_range.hpp | 7 +++-
sandbox/SOC/2009/fusion/boost/fusion/view/joint_view/joint_view.hpp | 4 +-
sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/reverse_view.hpp | 2
sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/transform_view.hpp | 15 +++++----
sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/zip_view.hpp | 2
sandbox/SOC/2009/fusion/build.bat | 6 ++--
sandbox/SOC/2009/fusion/libs/fusion/example/test/main.cpp | 9 ++++++
78 files changed, 233 insertions(+), 200 deletions(-)
Added: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/is_iterator_impl.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/is_iterator_impl.hpp 2009-08-17 18:07:31 EDT (Mon, 17 Aug 2009)
@@ -0,0 +1,29 @@
+/*=============================================================================
+ 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)
+==============================================================================*/
+
+#ifndef BOOST_FUSION_ADAPTED_DETAIL_MPL_IS_ITERATOR_IMPL_HPP
+#define BOOST_FUSION_ADAPTED_DETAIL_MPL_IS_ITERATOR_IMPL_HPP
+
+#include <boost/mpl/bool.hpp>
+
+namespace boost { namespace fusion { namespace extension
+{
+ template<typename Tag>
+ struct is_iterator_impl;
+
+ template<>
+ struct is_iterator_impl<mpl_iterator_tag>
+ {
+ template<typename SeqRef>
+ struct apply
+ : mpl::true_
+ {};
+ };
+}}}
+
+#endif
Added: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/tag_of.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/tag_of.hpp 2009-08-17 18:07:31 EDT (Mon, 17 Aug 2009)
@@ -0,0 +1,83 @@
+// Copyright Christopher Schmidt 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_FUSION_ADAPTED_DETAIL_MPL_TAG_OF_HPP
+#define BOOST_FUSION_ADAPTED_DETAIL_MPL_TAG_OF_HPP
+
+#include <boost/fusion/support/tag_of.hpp>
+
+#include <boost/mpl/iterator_tags.hpp>
+#include <boost/mpl/or.hpp>
+#include <boost/mpl/and.hpp>
+#include <boost/mpl/identity.hpp>
+#include <boost/mpl/eval_if.hpp>
+#include <boost/mpl/equal_to.hpp>
+#include <boost/mpl/is_sequence.hpp>
+#include <boost/utility/enable_if.hpp>
+
+namespace boost
+{
+ namespace fusion
+ {
+ struct mpl_sequence_tag;
+ struct mpl_iterator_tag;
+
+ namespace detail
+ {
+ BOOST_MPL_HAS_XXX_TRAIT_DEF(category);
+
+ template<typename T, typename Category>
+ struct category_is
+ : mpl::equal_to<typename T::category, Category>
+ {};
+ }
+
+ namespace traits
+ {
+ template<typename T>
+ struct tag_of<
+ T
+ , typename disable_if<
+ typename detail::has_fusion_tag<
+ typename detail::identity<T>::type
+ >::type
+ >::type
+ >
+ {
+ typedef typename detail::identity<T>::type identity_t;
+
+ typedef typename
+ mpl::eval_if<
+ mpl::is_sequence<identity_t>
+ , mpl::identity<mpl_sequence_tag>
+ , mpl::eval_if<
+ mpl::and_<
+ detail::has_category<identity_t>
+ , mpl::or_<
+ detail::category_is<
+ identity_t
+ , mpl::forward_iterator_tag
+ >
+ , detail::category_is<
+ identity_t
+ , mpl::bidirectional_iterator_tag
+ >
+ , detail::category_is<
+ identity_t
+ , mpl::random_access_iterator_tag
+ >
+ >
+ >
+ , mpl::identity<mpl_iterator_tag>
+ , tag_of<T, bool>
+ >
+ >::type
+ type;
+ };
+ }
+ }
+}
+
+#endif
Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/mpl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/mpl.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/mpl.hpp 2009-08-17 18:07:31 EDT (Mon, 17 Aug 2009)
@@ -22,11 +22,13 @@
#include <boost/fusion/adapted/detail/mpl/end_impl.hpp>
#include <boost/fusion/adapted/detail/mpl/equal_to_impl.hpp>
#include <boost/fusion/adapted/detail/mpl/has_key_impl.hpp>
+#include <boost/fusion/adapted/detail/mpl/is_iterator_impl.hpp>
#include <boost/fusion/adapted/detail/mpl/is_view_impl.hpp>
#include <boost/fusion/adapted/detail/mpl/is_sequence_impl.hpp>
#include <boost/fusion/adapted/detail/mpl/next_impl.hpp>
#include <boost/fusion/adapted/detail/mpl/prior_impl.hpp>
#include <boost/fusion/adapted/detail/mpl/size_impl.hpp>
+#include <boost/fusion/adapted/detail/mpl/tag_of.hpp>
#include <boost/fusion/adapted/detail/mpl/value_at_impl.hpp>
#include <boost/fusion/adapted/detail/mpl/value_of_impl.hpp>
Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/std_pair.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/std_pair.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/std_pair.hpp 2009-08-17 18:07:31 EDT (Mon, 17 Aug 2009)
@@ -7,6 +7,7 @@
#define BOOST_FUSION_ADAPTED_STD_PAIR_HPP
#include <boost/fusion/adapted/struct.hpp>
+#include <boost/fusion/support/tag_of_fwd.hpp>
#include <boost/fusion/support/internal/ref.hpp>
#include <boost/mpl/int.hpp>
Modified: sandbox/SOC/2009/fusion/boost/fusion/algorithm/iteration/accumulate.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/algorithm/iteration/accumulate.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/algorithm/iteration/accumulate.hpp 2009-08-17 18:07:31 EDT (Mon, 17 Aug 2009)
@@ -20,7 +20,7 @@
struct accumulate
: fold<Seq, State, F>
{
- //BOOST_FUSION_MPL_ASSERT((traits_is_sequence<Seq>));
+ BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq>));
BOOST_FUSION_MPL_ASSERT((traits::is_forward<Seq>));
};
}
Modified: sandbox/SOC/2009/fusion/boost/fusion/algorithm/iteration/fold.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/algorithm/iteration/fold.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/algorithm/iteration/fold.hpp 2009-08-17 18:07:31 EDT (Mon, 17 Aug 2009)
@@ -24,7 +24,7 @@
template <typename Seq, typename State, typename F>
struct fold
{
- //BOOST_FUSION_MPL_ASSERT((traits_is_sequence<Seq>));
+ BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq>));
BOOST_FUSION_MPL_ASSERT((traits::is_forward<Seq>));
typedef
Modified: sandbox/SOC/2009/fusion/boost/fusion/algorithm/iteration/for_each.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/algorithm/iteration/for_each.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/algorithm/iteration/for_each.hpp 2009-08-17 18:07:31 EDT (Mon, 17 Aug 2009)
@@ -24,7 +24,7 @@
template <typename Seq, typename>
struct for_each
{
- //BOOST_FUSION_MPL_ASSERT((traits_is_sequence<Seq>));
+ BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq>));
BOOST_FUSION_MPL_ASSERT((traits::is_forward<Seq>));
typedef void type;
Modified: sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/all.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/all.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/all.hpp 2009-08-17 18:07:31 EDT (Mon, 17 Aug 2009)
@@ -23,7 +23,7 @@
template <typename Seq, typename>
struct all
{
- //BOOST_FUSION_MPL_ASSERT((traits_is_sequence<Seq>));
+ BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq>));
BOOST_FUSION_MPL_ASSERT((traits::is_forward<Seq>));
typedef bool type;
Modified: sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/any.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/any.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/any.hpp 2009-08-17 18:07:31 EDT (Mon, 17 Aug 2009)
@@ -43,7 +43,7 @@
template <typename Seq, typename>
struct any
{
- //BOOST_FUSION_MPL_ASSERT((traits_is_sequence<Seq>));
+ BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq>));
BOOST_FUSION_MPL_ASSERT((traits::is_forward<Seq>));
typedef bool type;
Modified: sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/count.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/count.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/count.hpp 2009-08-17 18:07:31 EDT (Mon, 17 Aug 2009)
@@ -22,7 +22,7 @@
template <typename Seq, typename>
struct count
{
- //BOOST_FUSION_MPL_ASSERT((traits_is_sequence<Seq>));
+ BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq>));
BOOST_FUSION_MPL_ASSERT((traits::is_forward<Seq>));
typedef int type;
Modified: sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/count_if.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/count_if.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/count_if.hpp 2009-08-17 18:07:31 EDT (Mon, 17 Aug 2009)
@@ -42,7 +42,7 @@
template <typename Seq, typename>
struct count_if
{
- //BOOST_FUSION_MPL_ASSERT((traits_is_sequence<Seq>));
+ BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq>));
BOOST_FUSION_MPL_ASSERT((traits::is_forward<Seq>));
typedef int type;
Modified: sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/detail/count.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/detail/count.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/detail/count.hpp 2009-08-17 18:07:31 EDT (Mon, 17 Aug 2009)
@@ -34,7 +34,7 @@
{
template <typename T1, typename T2>
static bool
- call(BOOST_FUSION_R_ELSE_CLREF(T1), BOOST_FUSION_R_ELSE_CLREF(T2))
+ call(BOOST_FUSION_R_ELSE_CLREF(T1) x, BOOST_FUSION_R_ELSE_CLREF(T2) y)
{
return false;
}
Modified: sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/find.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/find.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/find.hpp 2009-08-17 18:07:31 EDT (Mon, 17 Aug 2009)
@@ -27,7 +27,7 @@
template <typename Seq, typename T>
struct find
{
- //BOOST_FUSION_MPL_ASSERT((traits_is_sequence<Seq>));
+ BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq>));
BOOST_FUSION_MPL_ASSERT((traits::is_forward<Seq>));
typedef
Modified: sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/find_if.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/find_if.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/find_if.hpp 2009-08-17 18:07:31 EDT (Mon, 17 Aug 2009)
@@ -29,7 +29,7 @@
template <typename Seq, typename Pred>
struct find_if
{
- //BOOST_FUSION_MPL_ASSERT((traits_is_sequence<Seq>));
+ BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq>));
BOOST_FUSION_MPL_ASSERT((traits::is_forward<Seq>));
typedef
Modified: sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/find_key.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/find_key.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/find_key.hpp 2009-08-17 18:07:31 EDT (Mon, 17 Aug 2009)
@@ -26,7 +26,7 @@
template <typename Seq, typename T>
struct find_key
{
- //BOOST_FUSION_MPL_ASSERT((traits_is_sequence<Seq>));
+ BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq>));
BOOST_FUSION_MPL_ASSERT((traits::is_forward<Seq>));
typedef
Modified: sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/none.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/none.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/algorithm/query/none.hpp 2009-08-17 18:07:31 EDT (Mon, 17 Aug 2009)
@@ -20,7 +20,7 @@
template <typename Seq, typename F>
struct none
{
- //BOOST_FUSION_MPL_ASSERT((traits_is_sequence<Seq>));
+ BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq>));
BOOST_FUSION_MPL_ASSERT((traits::is_forward<Seq>));
typedef bool type;
Modified: sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/clear.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/clear.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/clear.hpp 2009-08-17 18:07:31 EDT (Mon, 17 Aug 2009)
@@ -14,6 +14,7 @@
#else
# include <boost/fusion/container/vector/vector10.hpp>
#endif
+#include <boost/fusion/container/vector/convert.hpp>
#include <boost/fusion/support/tag_of.hpp>
#include <boost/fusion/support/internal/ref.hpp>
#include <boost/fusion/support/internal/assert.hpp>
@@ -31,7 +32,7 @@
: convert<typename traits::tag_of<Seq>::type, vector<> >
#endif
{
- //BOOST_FUSION_MPL_ASSERT((traits_is_sequence<Seq>));
+ BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq>));
BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq>));
};
}
Modified: sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/erase.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/erase.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/erase.hpp 2009-08-17 18:07:31 EDT (Mon, 17 Aug 2009)
@@ -72,17 +72,19 @@
>
struct erase
{
- //BOOST_FUSION_MPL_ASSERT((traits_is_sequence<Seq>));
+ BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq>));
BOOST_FUSION_MPL_ASSERT((traits::is_forward<Seq>));
+ BOOST_FUSION_MPL_ASSERT((traits::is_iterator<First>));
+ BOOST_FUSION_MPL_ASSERT((detail::is_in_seq<First, Seq>));
+ BOOST_FUSION_MPL_ASSERT((
+ detail::is_in_range<
+ Last
+ , First
+ , typename result_of::end<Seq>::type
+ >));
typedef typename begin<Seq>::type seq_first_type;
typedef typename end<Seq>::type seq_last_type;
-
- BOOST_FUSION_MPL_ASSERT(
- (detail::is_in_range<First,seq_first_type,seq_last_type>));
- BOOST_FUSION_MPL_ASSERT(
- (detail::is_in_range<Last,First,seq_last_type>));
-
typedef
iterator_range<
seq_first_type
Modified: sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/erase_key.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/erase_key.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/erase_key.hpp 2009-08-17 18:07:31 EDT (Mon, 17 Aug 2009)
@@ -31,7 +31,7 @@
template <typename Seq, typename Key>
struct erase_key
{
- //BOOST_FUSION_MPL_ASSERT((traits_is_sequence<Seq>));
+ BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq>));
BOOST_FUSION_MPL_ASSERT((traits::is_associative<Seq>));
BOOST_FUSION_MPL_ASSERT((has_key<Seq,Key>));
Modified: sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/filter.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/filter.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/filter.hpp 2009-08-17 18:07:31 EDT (Mon, 17 Aug 2009)
@@ -25,7 +25,7 @@
struct filter
: filter_if<Seq, is_same<mpl::_1, T> >
{
- //BOOST_FUSION_MPL_ASSERT((traits_is_sequence<Seq>));
+ BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq>));
BOOST_FUSION_MPL_ASSERT((traits::is_forward<Seq>));
};
}
Modified: sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/filter_if.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/filter_if.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/filter_if.hpp 2009-08-17 18:07:31 EDT (Mon, 17 Aug 2009)
@@ -20,7 +20,7 @@
template <typename Seq, typename Pred>
struct filter_if
{
- //BOOST_FUSION_MPL_ASSERT((traits_is_sequence<Seq>));
+ BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq>));
BOOST_FUSION_MPL_ASSERT((traits::is_forward<Seq>));
typedef filter_view<Seq, Pred> type;
Modified: sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/insert.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/insert.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/insert.hpp 2009-08-17 18:07:31 EDT (Mon, 17 Aug 2009)
@@ -27,8 +27,9 @@
single_view<typename detail::as_fusion_element<T>::type>)
>
{
- //BOOST_FUSION_MPL_ASSERT((traits_is_sequence<Seq>));
+ BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq>));
BOOST_FUSION_MPL_ASSERT((traits::is_forward<Seq>));
+ BOOST_FUSION_MPL_ASSERT((traits::is_iterator<Pos>));
BOOST_FUSION_MPL_ASSERT((detail::is_in_seq<Pos, Seq>));
};
}
Modified: sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/insert_range.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/insert_range.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/insert_range.hpp 2009-08-17 18:07:31 EDT (Mon, 17 Aug 2009)
@@ -26,10 +26,11 @@
template <typename Seq, typename Pos, typename Range>
struct insert_range
{
- //BOOST_FUSION_MPL_ASSERT((traits_is_sequence<Seq>));
+ BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq>));
BOOST_FUSION_MPL_ASSERT((traits::is_forward<Seq>));
+ BOOST_FUSION_MPL_ASSERT((traits::is_iterator<Pos>));
BOOST_FUSION_MPL_ASSERT((detail::is_in_seq<Pos, Seq>));
- //BOOST_FUSION_MPL_ASSERT((traits_is_sequence<Range>));
+ BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Range>));
BOOST_FUSION_MPL_ASSERT((traits::is_forward<Range>));
typedef
Modified: sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/join.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/join.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/join.hpp 2009-08-17 18:07:31 EDT (Mon, 17 Aug 2009)
@@ -22,9 +22,9 @@
template<typename Seq1, typename Seq2>
struct join
{
- //BOOST_FUSION_MPL_ASSERT((traits_is_sequence<Seq1>));
+ BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq1>));
BOOST_FUSION_MPL_ASSERT((traits::is_forward<Seq1>));
- //BOOST_FUSION_MPL_ASSERT((traits_is_sequence<Seq2>));
+ BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq2>));
BOOST_FUSION_MPL_ASSERT((traits::is_forward<Seq2>));
typedef joint_view<Seq1,Seq2> type;
Modified: sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/pop_back.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/pop_back.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/pop_back.hpp 2009-08-17 18:07:31 EDT (Mon, 17 Aug 2009)
@@ -25,7 +25,7 @@
template <typename Seq>
struct pop_back
{
- //BOOST_FUSION_MPL_ASSERT((traits_is_sequence<Seq>));
+ BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq>));
BOOST_FUSION_MPL_ASSERT((traits::is_forward<Seq>));
BOOST_FUSION_MPL_ASSERT_NOT((empty<Seq>));
Modified: sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/pop_front.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/pop_front.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/pop_front.hpp 2009-08-17 18:07:31 EDT (Mon, 17 Aug 2009)
@@ -25,7 +25,7 @@
template <typename Seq>
struct pop_front
{
- //BOOST_FUSION_MPL_ASSERT((traits_is_sequence<Seq>));
+ BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq>));
BOOST_FUSION_MPL_ASSERT((traits::is_forward<Seq>));
BOOST_FUSION_MPL_ASSERT_NOT((empty<Seq>));
Modified: sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/push_back.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/push_back.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/push_back.hpp 2009-08-17 18:07:31 EDT (Mon, 17 Aug 2009)
@@ -21,7 +21,7 @@
template <typename Seq, typename T>
struct push_back
{
- //BOOST_FUSION_MPL_ASSERT((traits_is_sequence<Seq>));
+ BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq>));
BOOST_FUSION_MPL_ASSERT((traits::is_forward<Seq>));
typedef
Modified: sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/push_front.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/push_front.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/push_front.hpp 2009-08-17 18:07:31 EDT (Mon, 17 Aug 2009)
@@ -21,7 +21,7 @@
template <typename Seq, typename T>
struct push_front
{
- //BOOST_FUSION_MPL_ASSERT((traits_is_sequence<Seq>));
+ BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq>));
BOOST_FUSION_MPL_ASSERT((traits::is_forward<Seq>));
typedef
Modified: sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/remove.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/remove.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/remove.hpp 2009-08-17 18:07:31 EDT (Mon, 17 Aug 2009)
@@ -25,7 +25,7 @@
struct remove
: remove_if<Seq, is_same<mpl::_1, T> >
{
- //BOOST_FUSION_MPL_ASSERT((traits_is_sequence<Seq>));
+ BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq>));
BOOST_FUSION_MPL_ASSERT((traits::is_forward<Seq>));
};
}
Modified: sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/remove_if.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/remove_if.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/remove_if.hpp 2009-08-17 18:07:31 EDT (Mon, 17 Aug 2009)
@@ -22,7 +22,7 @@
template <typename Seq, typename Pred>
struct remove_if
{
- //BOOST_FUSION_MPL_ASSERT((traits_is_sequence<Seq>));
+ BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq>));
BOOST_FUSION_MPL_ASSERT((traits::is_forward<Seq>));
typedef filter_view<Seq, mpl::not_<Pred> > type;
Modified: sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/replace.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/replace.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/replace.hpp 2009-08-17 18:07:31 EDT (Mon, 17 Aug 2009)
@@ -56,7 +56,7 @@
template <typename Seq, typename T>
struct replace
{
- //BOOST_FUSION_MPL_ASSERT((traits_is_sequence<Seq>));
+ BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq>));
BOOST_FUSION_MPL_ASSERT((traits::is_forward<Seq>));
typedef
Modified: sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/replace_if.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/replace_if.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/replace_if.hpp 2009-08-17 18:07:31 EDT (Mon, 17 Aug 2009)
@@ -21,7 +21,7 @@
template <typename Seq, typename F, typename NewValue>
struct replace_if
{
- //BOOST_FUSION_MPL_ASSERT((traits_is_sequence<Seq>));
+ BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq>));
BOOST_FUSION_MPL_ASSERT((traits::is_forward<Seq>));
typedef
Modified: sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/reverse.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/reverse.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/reverse.hpp 2009-08-17 18:07:31 EDT (Mon, 17 Aug 2009)
@@ -19,7 +19,7 @@
template <typename Seq>
struct reverse
{
- //BOOST_FUSION_MPL_ASSERT((traits_is_sequence<Seq>));
+ BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq>));
BOOST_FUSION_MPL_ASSERT((traits::is_forward<Seq>));
typedef reverse_view<Seq> type;
Modified: sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/transform.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/transform.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/algorithm/transformation/transform.hpp 2009-08-17 18:07:31 EDT (Mon, 17 Aug 2009)
@@ -23,9 +23,9 @@
template <typename Seq1, typename Seq2, typename F = void_>
struct transform
{
- //BOOST_FUSION_MPL_ASSERT((traits_is_sequence<Seq1>));
+ BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq1>));
BOOST_FUSION_MPL_ASSERT((traits::is_forward<Seq1>));
- //BOOST_FUSION_MPL_ASSERT((traits_is_sequence<Seq2>));
+ BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq2>));
BOOST_FUSION_MPL_ASSERT((traits::is_forward<Seq2>));
typedef transform_view<Seq1,Seq2,F> type;
@@ -38,7 +38,7 @@
struct transform<Seq, F>
#endif
{
- //BOOST_FUSION_MPL_ASSERT((traits_is_sequence<Seq1>));
+ BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq>));
BOOST_FUSION_MPL_ASSERT((traits::is_forward<Seq>));
typedef transform_view<Seq, F> type;
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/detail/variadic_templates/as_seq.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/detail/variadic_templates/as_seq.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/detail/variadic_templates/as_seq.hpp 2009-08-17 18:07:31 EDT (Mon, 17 Aug 2009)
@@ -3,29 +3,55 @@
// (See accompanying file LICENSE_1_0.txt or copy at
// http://www.boost.org/LICENSE_1_0.txt)
+//cschmidt: to avoid cyclic references - as some of the (here unneeded) mpl
+//sequence modification metafunctions might instantiate result_of::as_xxx - just
+//include the relevant /fusion/mpl/ headers.
+#include <boost/fusion/support/category_of.hpp>
+
+#include <boost/fusion/mpl/at.hpp>
+#include <boost/fusion/mpl/back.hpp>
#include <boost/fusion/mpl/begin.hpp>
+#include <boost/fusion/mpl/empty.hpp>
#include <boost/fusion/mpl/end.hpp>
+#include <boost/fusion/mpl/front.hpp>
+#include <boost/fusion/mpl/size.hpp>
+
#include <boost/fusion/support/internal/variadic_templates/variadic_quote.hpp>
-#include <boost/fusion/support/internal/variadic_templates/to_random_access_mpl_seq.hpp>
+#include <boost/mpl/identity.hpp>
+#include <boost/mpl/eval_if.hpp>
+#include <boost/mpl/fold.hpp>
+#include <boost/mpl/quote.hpp>
+#include <boost/mpl/vector.hpp>
+#include <boost/mpl/push_back.hpp>
#include <boost/mpl/apply.hpp>
#include <boost/mpl/unpack_args.hpp>
namespace boost { namespace fusion { namespace detail
{
+
template<typename SeqRef>
struct BOOST_PP_CAT(BOOST_PP_CAT(as_,BOOST_FUSION_SEQ_NAME),_impl)
{
struct apply
{
+ typedef typename detail::remove_reference<SeqRef>::type seq;
+
typedef typename
mpl::apply<
mpl::unpack_args<variadic_quote<BOOST_FUSION_SEQ_NAME> >
- , typename to_random_access_mpl_seq<
- typename remove_reference<SeqRef>::type
+ , typename mpl::eval_if<
+ traits::is_random_access<SeqRef>
+ , mpl::identity<seq>
+ , mpl::fold<
+ seq
+ , mpl::vector0<>
+ , mpl::quote2<mpl::push_back>
+ >
>::type
>::type
type;
};
};
}}}
+
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/generation/detail/variadic_templates/make_map.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/generation/detail/variadic_templates/make_map.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/generation/detail/variadic_templates/make_map.hpp 2009-08-17 18:07:31 EDT (Mon, 17 Aug 2009)
@@ -34,19 +34,18 @@
typedef typename
detail::variadic_arguments_to_vector<KeysTypes...>::type
args;
+ typedef typename mpl::begin<args>::type args_begin;
typedef typename
+ mpl::advance<
+ args_begin
+ , mpl::divides<mpl::size<args>, mpl::int_<2> >
+ >::type
+ args_middle;
+
+ typedef mpl::iterator_range<args_begin, args_middle> keys;
+ typedef
mpl::iterator_range<
- typename mpl::begin<args>::type
- , typename mpl::advance<typename mpl::begin<args>::type
- , mpl::divides<mpl::size<args>, mpl::int_<2> > >::type
- >
- keys;
- typedef typename
- mpl::iterator_range<
- typename mpl::advance<
- typename mpl::begin<args>::type
- , mpl::divides<mpl::size<args>, mpl::int_<2> >
- >::type
+ args_middle
, typename mpl::end<args>::type
>
types;
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/generation/detail/variadic_templates/map_tie.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/generation/detail/variadic_templates/map_tie.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/generation/detail/variadic_templates/map_tie.hpp 2009-08-17 18:07:31 EDT (Mon, 17 Aug 2009)
@@ -37,8 +37,10 @@
typedef typename
mpl::iterator_range<
typename mpl::begin<args>::type
- , typename mpl::advance<typename mpl::begin<args>::type
- , mpl::divides<mpl::size<args>, mpl::int_<2> > >::type
+ , typename mpl::advance<
+ typename mpl::begin<args>::type
+ , mpl::divides<mpl::size<args>, mpl::int_<2> >
+ >::type
>
keys;
typedef typename
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/list/convert.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/list/convert.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/list/convert.hpp 2009-08-17 18:07:31 EDT (Mon, 17 Aug 2009)
@@ -9,6 +9,7 @@
#define BOOST_FUSION_CONTAINER_LIST_CONVERT_HPP
#include <boost/fusion/container/list/list.hpp>
+#include <boost/fusion/container/list/cons.hpp>
#define BOOST_FUSION_SEQ_NAME list
#define BOOST_FUSION_MAX_SEQ_SIZE FUSION_MAX_LIST_SIZE
@@ -16,4 +17,6 @@
#undef BOOST_FUSION_MAX_SEQ_SIZE
#undef BOOST_FUSION_SEQ_NAME
+#include <boost/fusion/container/list/detail/cons/convert_impl.hpp>
+
#endif
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/map/map.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/map/map.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/map/map.hpp 2009-08-17 18:07:31 EDT (Mon, 17 Aug 2009)
@@ -27,9 +27,6 @@
namespace boost { namespace fusion
{
struct fusion_sequence_tag;
-#ifndef BOOST_NO_VARIADIC_TEMPLATES
- struct void_;
-#endif
VARIADIC_TEMPLATE(FUSION_MAX_MAP_SIZE)
struct map
Deleted: sandbox/SOC/2009/fusion/boost/fusion/include/sequence_assign.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/include/sequence_assign.hpp 2009-08-17 18:07:31 EDT (Mon, 17 Aug 2009)
+++ (empty file)
@@ -1,11 +0,0 @@
-// Copyright Christopher Schmidt 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_FUSION_INCLUDE_SEQUENCE_ASSIGN_HPP
-#define BOOST_FUSION_INCLUDE_SEQUENCE_ASSIGN_HPP
-
-#include <boost/fusion/support/internal/sequence_assign.hpp>
-
-#endif
Modified: sandbox/SOC/2009/fusion/boost/fusion/iterator/advance.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/iterator/advance.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/iterator/advance.hpp 2009-08-17 18:07:31 EDT (Mon, 17 Aug 2009)
@@ -53,8 +53,7 @@
, mpl::int_<N>
>
{
- //BOOST_FUSION_MPL_ASSERT((traits::is_iterator<It>));
- BOOST_FUSION_MPL_ASSERT((traits::is_forward<It>));
+ BOOST_FUSION_MPL_ASSERT((traits::is_iterator<It>));
BOOST_FUSION_STATIC_ASSERT((
N>=0 ||
traits::is_bidirectional<It>::value));
@@ -66,8 +65,7 @@
: extension::advance_impl<typename traits::tag_of<It>::type>::
template apply<typename detail::add_lref<It>::type, N>
{
- //BOOST_FUSION_MPL_ASSERT((traits::is_iterator<It>));
- BOOST_FUSION_MPL_ASSERT((traits::is_forward<It>));
+ BOOST_FUSION_MPL_ASSERT((traits::is_iterator<It>));
BOOST_FUSION_STATIC_ASSERT((
N::value>=0 ||
traits::is_bidirectional<It>::value));
Modified: sandbox/SOC/2009/fusion/boost/fusion/iterator/deref.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/iterator/deref.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/iterator/deref.hpp 2009-08-17 18:07:31 EDT (Mon, 17 Aug 2009)
@@ -39,8 +39,7 @@
: extension::deref_impl<typename traits::tag_of<It>::type>::
template apply<typename detail::add_lref<It>::type>
{
- //BOOST_FUSION_MPL_ASSERT((traits::is_iterator<It>));
- BOOST_FUSION_MPL_ASSERT((traits::is_forward<It>));
+ BOOST_FUSION_MPL_ASSERT((traits::is_iterator<It>));
};
}
Modified: sandbox/SOC/2009/fusion/boost/fusion/iterator/deref_data.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/iterator/deref_data.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/iterator/deref_data.hpp 2009-08-17 18:07:31 EDT (Mon, 17 Aug 2009)
@@ -39,7 +39,7 @@
: extension::deref_data_impl<typename traits::tag_of<It>::type>::
template apply<typename detail::add_lref<It>::type>
{
- //BOOST_FUSION_MPL_ASSERT((traits::is_iterator<It>));
+ BOOST_FUSION_MPL_ASSERT((traits::is_iterator<It>));
BOOST_FUSION_MPL_ASSERT((traits::is_associative<It>));
};
}
Modified: sandbox/SOC/2009/fusion/boost/fusion/iterator/distance.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/iterator/distance.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/iterator/distance.hpp 2009-08-17 18:07:31 EDT (Mon, 17 Aug 2009)
@@ -49,10 +49,8 @@
, typename detail::add_lref<Last>::type
>::type
{
- //BOOST_FUSION_MPL_ASSERT((traits::is_iterator<First>));
- BOOST_FUSION_MPL_ASSERT((traits::is_forward<First>));
- //BOOST_FUSION_MPL_ASSERT((traits::is_iterator<Last>));
- BOOST_FUSION_MPL_ASSERT((traits::is_forward<Last>));
+ BOOST_FUSION_MPL_ASSERT((traits::is_iterator<First>));
+ BOOST_FUSION_MPL_ASSERT((traits::is_iterator<Last>));
};
}
Modified: sandbox/SOC/2009/fusion/boost/fusion/iterator/equal_to.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/iterator/equal_to.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/iterator/equal_to.hpp 2009-08-17 18:07:31 EDT (Mon, 17 Aug 2009)
@@ -15,6 +15,8 @@
#include <boost/mpl/and.hpp>
#include <boost/utility/enable_if.hpp>
+//TODO constexpr
+
namespace boost { namespace fusion
{
struct iterator_facade_tag;
@@ -45,10 +47,8 @@
, typename detail::add_lref<It2>::type
>::type
{
- //BOOST_FUSION_MPL_ASSERT((traits::is_iterator<It1>));
- BOOST_FUSION_MPL_ASSERT((traits::is_forward<It1>));
- //BOOST_FUSION_MPL_ASSERT((traits::is_iterator<It2>));
- BOOST_FUSION_MPL_ASSERT((traits::is_forward<It2>));
+ BOOST_FUSION_MPL_ASSERT((traits::is_iterator<It1>));
+ BOOST_FUSION_MPL_ASSERT((traits::is_iterator<It2>));
};
}
@@ -68,7 +68,10 @@
template <typename It1, typename It2>
inline typename
enable_if<
- mpl::and_<traits::is_iterator<It1>, traits::is_iterator<It2> >
+ mpl::and_<
+ traits::is_iterator<It1>
+ , traits::is_iterator<It2>
+ >
, bool
>::type
operator!=(It1 const&, It1 const&)
Modified: sandbox/SOC/2009/fusion/boost/fusion/iterator/key_of.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/iterator/key_of.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/iterator/key_of.hpp 2009-08-17 18:07:31 EDT (Mon, 17 Aug 2009)
@@ -38,7 +38,7 @@
: extension::key_of_impl<typename traits::tag_of<It>::type>::
template apply<typename detail::add_lref<It>::type>
{
- //BOOST_FUSION_MPL_ASSERT((traits::is_iterator<It>));
+ BOOST_FUSION_MPL_ASSERT((traits::is_iterator<It>));
BOOST_FUSION_MPL_ASSERT((traits::is_associative<It>));
};
}
Modified: sandbox/SOC/2009/fusion/boost/fusion/iterator/next.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/iterator/next.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/iterator/next.hpp 2009-08-17 18:07:31 EDT (Mon, 17 Aug 2009)
@@ -37,8 +37,7 @@
: extension::next_impl<typename traits::tag_of<It>::type>::
template apply<typename detail::add_lref<It>::type>
{
- //BOOST_FUSION_MPL_ASSERT((traits::is_iterator<It>));
- BOOST_FUSION_MPL_ASSERT((traits::is_forward<It>));
+ BOOST_FUSION_MPL_ASSERT((traits::is_iterator<It>));
};
}
Modified: sandbox/SOC/2009/fusion/boost/fusion/iterator/prior.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/iterator/prior.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/iterator/prior.hpp 2009-08-17 18:07:31 EDT (Mon, 17 Aug 2009)
@@ -37,8 +37,7 @@
: extension::prior_impl<typename traits::tag_of<It>::type>::
template apply<typename detail::add_lref<It>::type>
{
- //BOOST_FUSION_MPL_ASSERT((traits::is_iterator<It>));
- BOOST_FUSION_MPL_ASSERT((traits::is_bidirectional<It>));
+ BOOST_FUSION_MPL_ASSERT((traits::is_iterator<It>));
};
}
Modified: sandbox/SOC/2009/fusion/boost/fusion/iterator/value_of.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/iterator/value_of.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/iterator/value_of.hpp 2009-08-17 18:07:31 EDT (Mon, 17 Aug 2009)
@@ -37,8 +37,7 @@
: extension::value_of_impl<typename traits::tag_of<It>::type>::
template apply<typename detail::add_lref<It>::type>
{
- //BOOST_FUSION_MPL_ASSERT((traits::is_iterator<It>));
- BOOST_FUSION_MPL_ASSERT((traits::is_forward<It>));
+ BOOST_FUSION_MPL_ASSERT((traits::is_iterator<It>));
};
}
}}
Modified: sandbox/SOC/2009/fusion/boost/fusion/iterator/value_of_data.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/iterator/value_of_data.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/iterator/value_of_data.hpp 2009-08-17 18:07:31 EDT (Mon, 17 Aug 2009)
@@ -38,7 +38,7 @@
: extension::value_of_data_impl<typename traits::tag_of<It>::type>::
template apply<typename detail::add_lref<It>::type>
{
- //BOOST_FUSION_MPL_ASSERT((traits::is_iterator<It>));
+ BOOST_FUSION_MPL_ASSERT((traits::is_iterator<It>));
BOOST_FUSION_MPL_ASSERT((traits::is_associative<It>));
};
}
Modified: sandbox/SOC/2009/fusion/boost/fusion/sequence/comparison/equal_to.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/sequence/comparison/equal_to.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/sequence/comparison/equal_to.hpp 2009-08-17 18:07:31 EDT (Mon, 17 Aug 2009)
@@ -23,9 +23,9 @@
inline bool
equal_to(Seq1 const& seq1, Seq2 const& seq2)
{
- //BOOST_FUSION_MPL_ASSERT((traits_is_sequence<Seq1>));
+ BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq1>));
BOOST_FUSION_MPL_ASSERT((traits::is_forward<Seq1>));
- //BOOST_FUSION_MPL_ASSERT((traits_is_sequence<Seq2>));
+ BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq2>));
BOOST_FUSION_MPL_ASSERT((traits::is_forward<Seq2>));
return
@@ -47,9 +47,9 @@
>::type
operator==(Seq1 const& seq1, Seq2 const& seq2)
{
- //BOOST_FUSION_MPL_ASSERT((traits_is_sequence<Seq1>));
+ BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq1>));
BOOST_FUSION_MPL_ASSERT((traits::is_forward<Seq1>));
- //BOOST_FUSION_MPL_ASSERT((traits_is_sequence<Seq2>));
+ BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq2>));
BOOST_FUSION_MPL_ASSERT((traits::is_forward<Seq2>));
return fusion::equal_to(seq1, seq2);
Modified: sandbox/SOC/2009/fusion/boost/fusion/sequence/comparison/greater.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/sequence/comparison/greater.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/sequence/comparison/greater.hpp 2009-08-17 18:07:31 EDT (Mon, 17 Aug 2009)
@@ -26,9 +26,9 @@
inline bool
greater(Seq1 const& seq1, Seq2 const& seq2)
{
- //BOOST_FUSION_MPL_ASSERT((traits_is_sequence<Seq1>));
+ BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq1>));
BOOST_FUSION_MPL_ASSERT((traits::is_forward<Seq1>));
- //BOOST_FUSION_MPL_ASSERT((traits_is_sequence<Seq2>));
+ BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq2>));
BOOST_FUSION_MPL_ASSERT((traits::is_forward<Seq2>));
#ifdef FUSION_DIRECT_OPERATOR_USAGE
@@ -52,9 +52,9 @@
>::type
operator>(Seq1 const& seq1, Seq2 const& seq2)
{
- //BOOST_FUSION_MPL_ASSERT((traits_is_sequence<Seq1>));
+ BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq1>));
BOOST_FUSION_MPL_ASSERT((traits::is_forward<Seq1>));
- //BOOST_FUSION_MPL_ASSERT((traits_is_sequence<Seq2>));
+ BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq2>));
BOOST_FUSION_MPL_ASSERT((traits::is_forward<Seq2>));
return fusion::greater(seq1, seq2);
Modified: sandbox/SOC/2009/fusion/boost/fusion/sequence/comparison/greater_equal.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/sequence/comparison/greater_equal.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/sequence/comparison/greater_equal.hpp 2009-08-17 18:07:31 EDT (Mon, 17 Aug 2009)
@@ -26,9 +26,9 @@
inline bool
greater_equal(Seq1 const& seq1, Seq2 const& seq2)
{
- //BOOST_FUSION_MPL_ASSERT((traits_is_sequence<Seq1>));
+ BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq1>));
BOOST_FUSION_MPL_ASSERT((traits::is_forward<Seq1>));
- //BOOST_FUSION_MPL_ASSERT((traits_is_sequence<Seq2>));
+ BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq2>));
BOOST_FUSION_MPL_ASSERT((traits::is_forward<Seq2>));
#ifdef FUSION_DIRECT_OPERATOR_USAGE
@@ -52,9 +52,9 @@
>::type
operator>=(Seq1 const& seq1, Seq2 const& seq2)
{
- //BOOST_FUSION_MPL_ASSERT((traits_is_sequence<Seq1>));
+ BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq1>));
BOOST_FUSION_MPL_ASSERT((traits::is_forward<Seq1>));
- //BOOST_FUSION_MPL_ASSERT((traits_is_sequence<Seq2>));
+ BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq2>));
BOOST_FUSION_MPL_ASSERT((traits::is_forward<Seq2>));
return fusion::greater_equal(seq1, seq2);
Modified: sandbox/SOC/2009/fusion/boost/fusion/sequence/comparison/less.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/sequence/comparison/less.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/sequence/comparison/less.hpp 2009-08-17 18:07:31 EDT (Mon, 17 Aug 2009)
@@ -22,9 +22,9 @@
inline bool
less(Seq1 const& seq1, Seq2 const& seq2)
{
- //BOOST_FUSION_MPL_ASSERT((traits_is_sequence<Seq1>));
+ BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq1>));
BOOST_FUSION_MPL_ASSERT((traits::is_forward<Seq1>));
- //BOOST_FUSION_MPL_ASSERT((traits_is_sequence<Seq2>));
+ BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq2>));
BOOST_FUSION_MPL_ASSERT((traits::is_forward<Seq2>));
return
@@ -44,9 +44,9 @@
>::type
operator<(Seq1 const& seq1, Seq2 const& seq2)
{
- //BOOST_FUSION_MPL_ASSERT((traits_is_sequence<Seq1>));
+ BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq1>));
BOOST_FUSION_MPL_ASSERT((traits::is_forward<Seq1>));
- //BOOST_FUSION_MPL_ASSERT((traits_is_sequence<Seq2>));
+ BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq2>));
BOOST_FUSION_MPL_ASSERT((traits::is_forward<Seq2>));
return fusion::less(seq1, seq2);
Modified: sandbox/SOC/2009/fusion/boost/fusion/sequence/comparison/less_equal.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/sequence/comparison/less_equal.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/sequence/comparison/less_equal.hpp 2009-08-17 18:07:31 EDT (Mon, 17 Aug 2009)
@@ -26,9 +26,9 @@
inline bool
less_equal(Seq1 const& seq1, Seq2 const& seq2)
{
- //BOOST_FUSION_MPL_ASSERT((traits_is_sequence<Seq1>));
+ BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq1>));
BOOST_FUSION_MPL_ASSERT((traits::is_forward<Seq1>));
- //BOOST_FUSION_MPL_ASSERT((traits_is_sequence<Seq2>));
+ BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq2>));
BOOST_FUSION_MPL_ASSERT((traits::is_forward<Seq2>));
#ifdef FUSION_DIRECT_OPERATOR_USAGE
@@ -81,9 +81,9 @@
>::type
operator<=(Seq1 const& seq1, Seq2 const& seq2)
{
- //BOOST_FUSION_MPL_ASSERT((traits_is_sequence<Seq1>));
+ BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq1>));
BOOST_FUSION_MPL_ASSERT((traits::is_forward<Seq1>));
- //BOOST_FUSION_MPL_ASSERT((traits_is_sequence<Seq2>));
+ BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq2>));
BOOST_FUSION_MPL_ASSERT((traits::is_forward<Seq2>));
return fusion::less_equal(seq1, seq2);
Modified: sandbox/SOC/2009/fusion/boost/fusion/sequence/comparison/not_equal_to.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/sequence/comparison/not_equal_to.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/sequence/comparison/not_equal_to.hpp 2009-08-17 18:07:31 EDT (Mon, 17 Aug 2009)
@@ -26,9 +26,9 @@
inline bool
not_equal_to(Seq1 const& seq1, Seq2 const& seq2)
{
- //BOOST_FUSION_MPL_ASSERT((traits_is_sequence<Seq1>));
+ BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq1>));
BOOST_FUSION_MPL_ASSERT((traits::is_forward<Seq1>));
- //BOOST_FUSION_MPL_ASSERT((traits_is_sequence<Seq2>));
+ BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq2>));
BOOST_FUSION_MPL_ASSERT((traits::is_forward<Seq2>));
#ifdef FUSION_DIRECT_OPERATOR_USAGE
@@ -54,9 +54,9 @@
>::type
operator!=(Seq1 const& seq1, Seq2 const& seq2)
{
- //BOOST_FUSION_MPL_ASSERT((traits_is_sequence<Seq1>));
+ BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq1>));
BOOST_FUSION_MPL_ASSERT((traits::is_forward<Seq1>));
- //BOOST_FUSION_MPL_ASSERT((traits_is_sequence<Seq2>));
+ BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq2>));
BOOST_FUSION_MPL_ASSERT((traits::is_forward<Seq2>));
return fusion::not_equal_to(seq1, seq2);
Modified: sandbox/SOC/2009/fusion/boost/fusion/sequence/convert.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/sequence/convert.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/sequence/convert.hpp 2009-08-17 18:07:31 EDT (Mon, 17 Aug 2009)
@@ -13,15 +13,9 @@
#include <boost/fusion/support/internal/ref.hpp>
#include <boost/fusion/support/internal/assert.hpp>
-#include <boost/mpl/always.hpp>
-#include <boost/mpl/apply.hpp>
-
-//TODO in /sequence/intrisic/ or /container/?
//TODO doc!!!
namespace boost { namespace fusion
{
- struct void_;
-
namespace extension
{
template <typename Tag>
@@ -46,7 +40,7 @@
template <typename Tag, typename Seq>
struct convert
{
- //BOOST_FUSION_MPL_ASSERT((traits_is_sequence<Seq>));
+ BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq>));
BOOST_FUSION_MPL_ASSERT((traits::is_forward<Seq>));
typedef typename extension::convert_impl<Tag> gen;
Modified: sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/at.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/at.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/at.hpp 2009-08-17 18:07:31 EDT (Mon, 17 Aug 2009)
@@ -49,7 +49,7 @@
: extension::at_impl<typename traits::tag_of<Seq>::type>::
template apply<typename detail::add_lref<Seq>::type, N>
{
- //BOOST_FUSION_MPL_ASSERT((traits_is_sequence<Seq>));
+ BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq>));
BOOST_FUSION_MPL_ASSERT((
mpl::or_<
traits::is_random_access<Seq>
@@ -66,7 +66,7 @@
struct at_c
: at<Seq, mpl::int_<N> >
{
- //BOOST_FUSION_MPL_ASSERT((traits_is_sequence<Seq>));
+ BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq>));
BOOST_FUSION_MPL_ASSERT((
mpl::or_<
traits::is_random_access<Seq>
Modified: sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/at_key.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/at_key.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/at_key.hpp 2009-08-17 18:07:31 EDT (Mon, 17 Aug 2009)
@@ -63,7 +63,7 @@
: extension::at_key_impl<typename traits::tag_of<Seq>::type>::
template apply<typename detail::add_lref<Seq>::type, Key>
{
- //BOOST_FUSION_MPL_ASSERT((traits_is_sequence<Seq>));
+ BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq>));
BOOST_FUSION_MPL_ASSERT((traits::is_associative<Seq>));
BOOST_FUSION_MPL_ASSERT((has_key<Seq,Key>));
};
Modified: sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/back.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/back.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/back.hpp 2009-08-17 18:07:31 EDT (Mon, 17 Aug 2009)
@@ -29,7 +29,7 @@
struct back
: deref<typename prior<typename end<Seq>::type>::type>
{
- //BOOST_FUSION_MPL_ASSERT((traits_is_sequence<Seq>));
+ BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq>));
BOOST_FUSION_MPL_ASSERT((traits::is_forward<Seq>));
BOOST_FUSION_MPL_ASSERT_NOT((empty<Seq>));
};
Modified: sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/begin.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/begin.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/begin.hpp 2009-08-17 18:07:31 EDT (Mon, 17 Aug 2009)
@@ -38,7 +38,7 @@
: extension::begin_impl<typename traits::tag_of<Seq>::type>::
template apply<typename detail::add_lref<Seq>::type>
{
- //BOOST_FUSION_MPL_ASSERT((traits_is_sequence<Seq>));
+ BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq>));
BOOST_FUSION_MPL_ASSERT((traits::is_forward<Seq>));
};
}
Modified: sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/empty.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/empty.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/empty.hpp 2009-08-17 18:07:31 EDT (Mon, 17 Aug 2009)
@@ -47,7 +47,7 @@
: extension::empty_impl<typename traits::tag_of<Seq>::type>::
template apply<typename detail::add_lref<Seq>::type>::type
{
- //BOOST_FUSION_MPL_ASSERT((traits_is_sequence<Seq>));
+ BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq>));
BOOST_FUSION_MPL_ASSERT((traits::is_forward<Seq>));
};
}
Modified: sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/front.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/front.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/front.hpp 2009-08-17 18:07:31 EDT (Mon, 17 Aug 2009)
@@ -28,7 +28,7 @@
struct front
: deref<typename begin<Seq>::type>
{
- //BOOST_FUSION_MPL_ASSERT((traits_is_sequence<Seq>));
+ BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq>));
BOOST_FUSION_MPL_ASSERT((traits::is_forward<Seq>));
BOOST_FUSION_MPL_ASSERT_NOT((empty<Seq>));
};
Modified: sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/has_key.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/has_key.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/has_key.hpp 2009-08-17 18:07:31 EDT (Mon, 17 Aug 2009)
@@ -55,7 +55,7 @@
: extension::has_key_impl<typename traits::tag_of<Seq>::type>::
template apply<typename detail::add_lref<Seq>::type, Key>
{
- //BOOST_FUSION_MPL_ASSERT((traits_is_sequence<Seq>));
+ BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq>));
BOOST_FUSION_MPL_ASSERT((traits::is_associative<Seq>));
};
}
Modified: sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/size.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/size.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/size.hpp 2009-08-17 18:07:31 EDT (Mon, 17 Aug 2009)
@@ -47,7 +47,7 @@
: extension::size_impl<typename traits::tag_of<Seq>::type>::
template apply<typename detail::add_lref<Seq>::type>::type
{
- //BOOST_FUSION_MPL_ASSERT((traits_is_sequence<Seq>));
+ BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq>));
BOOST_FUSION_MPL_ASSERT((traits::is_forward<Seq>));
};
}
Modified: sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/swap.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/swap.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/swap.hpp 2009-08-17 18:07:31 EDT (Mon, 17 Aug 2009)
@@ -46,9 +46,9 @@
template<typename Seq1, typename Seq2>
struct swap
{
- //BOOST_FUSION_MPL_ASSERT((traits_is_sequence<Seq1>));
+ BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq1>));
BOOST_FUSION_MPL_ASSERT((traits::is_forward<Seq1>));
- //BOOST_FUSION_MPL_ASSERT((traits_is_sequence<Seq2>));
+ BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq2>));
BOOST_FUSION_MPL_ASSERT((traits::is_forward<Seq2>));
BOOST_FUSION_STATIC_ASSERT((size<Seq1>::value==size<Seq2>::value));
Modified: sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/value_at.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/value_at.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/value_at.hpp 2009-08-17 18:07:31 EDT (Mon, 17 Aug 2009)
@@ -49,7 +49,7 @@
: extension::value_at_impl<typename traits::tag_of<Seq>::type>::
template apply<typename detail::add_lref<Seq>::type, N>
{
- //BOOST_FUSION_MPL_ASSERT((traits_is_sequence<Seq>));
+ BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq>));
BOOST_FUSION_MPL_ASSERT((
mpl::or_<
traits::is_random_access<Seq>
@@ -66,7 +66,7 @@
struct value_at_c
: result_of::value_at<Seq,mpl::int_<N> >
{
- //BOOST_FUSION_MPL_ASSERT((traits_is_sequence<Seq>));
+ BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq>));
BOOST_FUSION_MPL_ASSERT((
mpl::or_<
traits::is_random_access<Seq>
Modified: sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/value_at_key.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/value_at_key.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/sequence/intrinsic/value_at_key.hpp 2009-08-17 18:07:31 EDT (Mon, 17 Aug 2009)
@@ -58,7 +58,7 @@
: extension::value_at_key_impl<typename traits::tag_of<Seq>::type>::
template apply<typename detail::add_lref<Seq>::type, Key>
{
- //BOOST_FUSION_MPL_ASSERT((traits_is_sequence<Seq>));
+ BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq>));
BOOST_FUSION_MPL_ASSERT((traits::is_associative<Seq>));
BOOST_FUSION_MPL_ASSERT((has_key<Seq,Key>));
};
Modified: sandbox/SOC/2009/fusion/boost/fusion/sequence/io/in.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/sequence/io/in.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/sequence/io/in.hpp 2009-08-17 18:07:31 EDT (Mon, 17 Aug 2009)
@@ -23,7 +23,7 @@
inline std::istream&
in(std::istream& is, Seq& seq)
{
- //BOOST_FUSION_MPL_ASSERT((traits_is_sequence<Seq>));
+ BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq>));
BOOST_FUSION_MPL_ASSERT((traits::is_forward<Seq>));
detail::read_sequence(is, seq);
@@ -40,7 +40,7 @@
>::type
operator>>(std::istream& is, Seq& seq)
{
- //BOOST_FUSION_MPL_ASSERT((traits_is_sequence<Seq>));
+ BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq>));
BOOST_FUSION_MPL_ASSERT((traits::is_forward<Seq>));
return fusion::in(is, seq);
Modified: sandbox/SOC/2009/fusion/boost/fusion/sequence/io/out.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/sequence/io/out.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/sequence/io/out.hpp 2009-08-17 18:07:31 EDT (Mon, 17 Aug 2009)
@@ -26,7 +26,7 @@
inline std::ostream&
out(std::ostream& os, Seq& seq)
{
- //BOOST_FUSION_MPL_ASSERT((traits_is_sequence<Seq>));
+ BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq>));
BOOST_FUSION_MPL_ASSERT((traits::is_forward<Seq>));
detail::print_sequence(os, seq);
@@ -43,7 +43,7 @@
>::type
operator<<(std::ostream& os, Seq const& seq)
{
- //BOOST_FUSION_MPL_ASSERT((traits_is_sequence<Seq>));
+ BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq>));
BOOST_FUSION_MPL_ASSERT((traits::is_forward<Seq>));
return fusion::out(os, seq);
Modified: sandbox/SOC/2009/fusion/boost/fusion/support/sequence_base.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/support/sequence_base.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/support/sequence_base.hpp 2009-08-17 18:07:31 EDT (Mon, 17 Aug 2009)
@@ -11,38 +11,42 @@
#include <boost/mpl/begin_end_fwd.hpp>
-namespace boost { namespace fusion
+namespace boost
{
- struct sequence_root
- {};
-
- template <typename Seq>
- struct sequence_base
- : sequence_root
+ namespace fusion
{
- Seq const&
- derived() const
- {
- return static_cast<Seq const&>(*this);
- }
+ struct sequence_root
+ {};
- Seq&
- derived()
+ template <typename Seq>
+ struct sequence_base
+ : sequence_root
{
- return static_cast<Seq&>(*this);
- }
- };
+ Seq const&
+ derived() const
+ {
+ return static_cast<Seq const&>(*this);
+ }
+
+ Seq&
+ derived()
+ {
+ return static_cast<Seq&>(*this);
+ }
+ };
- struct fusion_sequence_tag;
-}}
+ struct fusion_sequence_tag;
+ }
-namespace boost { namespace mpl
-{
- // Deliberately break mpl::begin, so it doesn't lie that a Fusion sequence
- // is not an MPL sequence by returning mpl::void_.
- // In other words: Fusion Sequences are always MPL Sequences, but they can
- // be incompletely defined.
- template<> struct begin_impl< boost::fusion::fusion_sequence_tag >;
-}}
+ namespace mpl
+ {
+ // Deliberately break mpl::begin, so it doesn't lie that a Fusion
+ // sequence is not an MPL sequence by returning mpl::void_.
+ // In other words: Fusion Sequences are always MPL Sequences, but they
+ // can be incompletely defined.
+ template<>
+ struct begin_impl<fusion::fusion_sequence_tag>;
+ }
+}
#endif
Modified: sandbox/SOC/2009/fusion/boost/fusion/support/tag_of.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/support/tag_of.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/support/tag_of.hpp 2009-08-17 18:07:31 EDT (Mon, 17 Aug 2009)
@@ -1,9 +1,7 @@
-/*=============================================================================
- Copyright (c) 2001-2006 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)
-==============================================================================*/
+// Copyright Christopher Schmidt 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_FUSION_SUPPORT_TAG_OF_HPP
#define BOOST_FUSION_SUPPORT_TAG_OF_HPP
@@ -11,44 +9,38 @@
#include <boost/fusion/support/tag_of_fwd.hpp>
#include <boost/fusion/support/internal/ref.hpp>
-#include <boost/mpl/is_sequence.hpp>
#include <boost/mpl/eval_if.hpp>
-#include <boost/mpl/if.hpp>
+#include <boost/mpl/identity.hpp>
#include <boost/mpl/has_xxx.hpp>
namespace boost { namespace fusion
{
- struct mpl_sequence_tag;
- struct mpl_iterator_tag;
+ struct non_fusion_tag;
namespace detail
{
- BOOST_MPL_HAS_XXX_TRAIT_DEF(fusion_tag)
+ BOOST_MPL_HAS_XXX_TRAIT_DEF(fusion_tag);
- template <typename Seq>
+ template<typename IdentityT>
struct get_fusion_tag
{
- typedef typename Seq::fusion_tag type;
+ typedef typename IdentityT::fusion_tag type;
};
}
namespace traits
{
- template <typename Seq>
+ template <typename T, typename Dummy>
struct tag_of
{
- typedef typename detail::identity<Seq>::type seq;
+ typedef typename detail::identity<T>::type identity_t;
typedef typename
mpl::eval_if<
- detail::has_fusion_tag<seq>
- , detail::get_fusion_tag<seq>
- , mpl::if_<
- mpl::is_sequence<seq>
- , mpl_sequence_tag
- , mpl_iterator_tag
- >
- >::type
+ detail::has_fusion_tag<identity_t>
+ , detail::get_fusion_tag<identity_t>
+ , mpl::identity<non_fusion_tag>
+ >::type
type;
};
}
Modified: sandbox/SOC/2009/fusion/boost/fusion/support/tag_of_fwd.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/support/tag_of_fwd.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/support/tag_of_fwd.hpp 2009-08-17 18:07:31 EDT (Mon, 17 Aug 2009)
@@ -14,7 +14,7 @@
{
namespace traits
{
- template<typename Seq>
+ template<typename Seq, typename Dummy=void>
struct tag_of;
}
}}
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/filter_view/filter_view.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/filter_view/filter_view.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/filter_view/filter_view.hpp 2009-08-17 18:07:31 EDT (Mon, 17 Aug 2009)
@@ -43,7 +43,7 @@
struct filter_view
: sequence_base<filter_view<Seq, Pred> >
{
- //BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq>));
+ BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq>));
BOOST_FUSION_MPL_ASSERT((traits::is_forward<Seq>));
typedef detail::view_storage<Seq> storage_type;
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/iterator_range/iterator_range.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/iterator_range/iterator_range.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/iterator_range/iterator_range.hpp 2009-08-17 18:07:31 EDT (Mon, 17 Aug 2009)
@@ -18,6 +18,9 @@
#include <boost/mpl/bool.hpp>
#include <boost/mpl/inherit.hpp>
#include <boost/mpl/identity.hpp>
+#ifdef BOOST_FUSION_ENABLE_STATIC_ASSERTS
+# include <boost/type_traits/is_same.hpp>
+#endif
#include <boost/fusion/view/iterator_range/detail/iterator_range_fwd.hpp>
#include <boost/fusion/view/iterator_range/detail/begin_impl.hpp>
@@ -34,9 +37,9 @@
struct iterator_range
: sequence_base<iterator_range<First, Last> >
{
- //BOOST_FUSION_MPL_ASSERT((traits::is_iterator<First>));
+ BOOST_FUSION_MPL_ASSERT((traits::is_iterator<First>));
BOOST_FUSION_MPL_ASSERT((traits::is_forward<First>));
- //BOOST_FUSION_MPL_ASSERT((traits::is_iterator<Last>));
+ BOOST_FUSION_MPL_ASSERT((traits::is_iterator<Last>));
BOOST_FUSION_MPL_ASSERT((traits::is_forward<Last>));
typedef First begin_type;
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/joint_view/joint_view.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/joint_view/joint_view.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/joint_view/joint_view.hpp 2009-08-17 18:07:31 EDT (Mon, 17 Aug 2009)
@@ -45,9 +45,9 @@
struct joint_view
: sequence_base<joint_view<Seq1, Seq2> >
{
- //BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq1>));
+ BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq1>));
BOOST_FUSION_MPL_ASSERT((traits::is_forward<Seq1>));
- //BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq2>));
+ BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq2>));
BOOST_FUSION_MPL_ASSERT((traits::is_forward<Seq2>));
typedef detail::view_storage<Seq1> storage1_type;
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/reverse_view.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/reverse_view.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/reverse_view.hpp 2009-08-17 18:07:31 EDT (Mon, 17 Aug 2009)
@@ -46,7 +46,7 @@
struct reverse_view
: sequence_base<reverse_view<Seq> >
{
- //BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq>));
+ BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq>));
BOOST_FUSION_MPL_ASSERT((traits::is_bidirectional<Seq>));
typedef detail::view_storage<Seq> storage_type;
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/transform_view.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/transform_view.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/transform_view.hpp 2009-08-17 18:07:31 EDT (Mon, 17 Aug 2009)
@@ -28,6 +28,9 @@
#include <boost/mpl/inherit.hpp>
#include <boost/mpl/identity.hpp>
#include <boost/mpl/bool.hpp>
+#ifdef BOOST_FUSION_ENABLE_STATIC_ASSERTS
+# include <boost/mpl/equal_to.hpp>
+#endif
#include <boost/call_traits.hpp>
#include <boost/fusion/view/transform_view/transform_view_fwd.hpp>
@@ -57,14 +60,12 @@
struct transform_view
: sequence_base<transform_view<Seq1, Seq2, F,IsAssociative> >
{
- //BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq1>));
+ BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq1>));
BOOST_FUSION_MPL_ASSERT((traits::is_forward<Seq1>));
- //BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq2>));
+ BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq2>));
BOOST_FUSION_MPL_ASSERT((traits::is_forward<Seq2>));
-
- //BOOST_FUSION_MPL_ASSERT_RELATION(
- // result_of::size<Sequence1>,==,result_of::size<Sequence2>,
- // "both sequences must have the same length");
+ BOOST_FUSION_MPL_ASSERT((
+ mpl::equal_to<result_of::size<Seq1>,result_of::size<Seq1> >));
typedef detail::view_storage<Seq1> storage1_type;
typedef typename storage1_type::type seq1_type;
@@ -140,7 +141,7 @@
struct unary_transform_view
: sequence_base<unary_transform_view<Seq, F, void_> >
{
- //BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq>));
+ BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seq>));
BOOST_FUSION_MPL_ASSERT((traits::is_forward<Seq>));
typedef detail::view_storage<Seq> storage_type;
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/zip_view.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/zip_view.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/zip_view.hpp 2009-08-17 18:07:31 EDT (Mon, 17 Aug 2009)
@@ -138,7 +138,7 @@
struct zip_view
: sequence_base< zip_view<Seqs> >
{
- //BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seqs>));
+ BOOST_FUSION_MPL_ASSERT((traits::is_sequence<Seqs>));
BOOST_FUSION_MPL_ASSERT((traits::is_forward<Seqs>));
typedef typename
Modified: sandbox/SOC/2009/fusion/build.bat
==============================================================================
--- sandbox/SOC/2009/fusion/build.bat (original)
+++ sandbox/SOC/2009/fusion/build.bat 2009-08-17 18:07:31 EDT (Mon, 17 Aug 2009)
@@ -16,7 +16,7 @@
call :msvc
) else (
if "%1" == "" (
- call :msvc
+ call :gcc
) else (
echo Unknown toolset '%1'
goto :eof
@@ -29,8 +29,8 @@
goto :eof
:gcc
-set PATH=C:\MinGW3\bin;%PATH%
-rem set PATH=C:\MinGW\bin;%PATH%
+set PATH=C:\Program Files (x86)\MinGWOld\bin;%PATH%
+rem set PATH=C:\Program Files (x86)\MinGW\bin;%PATH%
set TOOLSET=gcc
goto :eof
Modified: sandbox/SOC/2009/fusion/libs/fusion/example/test/main.cpp
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/example/test/main.cpp (original)
+++ sandbox/SOC/2009/fusion/libs/fusion/example/test/main.cpp 2009-08-17 18:07:31 EDT (Mon, 17 Aug 2009)
@@ -15,6 +15,7 @@
#include <boost/fusion/adapted.hpp>
#include <boost/fusion/tuple.hpp>
#include <boost/fusion/support.hpp>
+#include <boost/fusion/functional.hpp>
#include <boost/mpl/placeholders.hpp>
@@ -121,6 +122,14 @@
int main()
{
{
+ using namespace fusion;
+
+ static_assert(std::is_same<traits::tag_of<int>::type,non_fusion_tag>::value,"");
+ static_assert(std::is_same<traits::tag_of<boost::mpl::vector<> >::type,mpl_sequence_tag>::value,"");
+ static_assert(std::is_same<traits::tag_of<boost::mpl::begin<boost::mpl::vector<> >::type>::type,mpl_iterator_tag>::value,"");
+ }
+
+ {
using namespace fusion::result_of;
static_assert(std::is_same<deref<begin<vec>::type>::type,char&>::value,"");
Boost-Commit list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk