|
Boost-Commit : |
Subject: [Boost-commit] svn:boost r57340 - in sandbox/SOC/2009/fusion/libs/fusion: example/cookbook example/extension example/extension/detail example/performance test test/algorithm test/compile_time test/functional test/sequence
From: mr.chr.schmidt_at_[hidden]
Date: 2009-11-03 13:27:56
Author: cschmidt
Date: 2009-11-03 13:27:47 EST (Tue, 03 Nov 2009)
New Revision: 57340
URL: http://svn.boost.org/trac/boost/changeset/57340
Log:
cleanup
Added:
sandbox/SOC/2009/fusion/libs/fusion/test/sequence/list_value_at.cpp (contents, props changed)
sandbox/SOC/2009/fusion/libs/fusion/test/sequence/make_list.cpp (contents, props changed)
sandbox/SOC/2009/fusion/libs/fusion/test/sequence/make_vector.cpp (contents, props changed)
sandbox/SOC/2009/fusion/libs/fusion/test/sequence/repetitive_view.cpp (contents, props changed)
sandbox/SOC/2009/fusion/libs/fusion/test/sequence/test_deduce_sequence.cpp (contents, props changed)
Text files modified:
sandbox/SOC/2009/fusion/libs/fusion/example/cookbook/do_the_bind.cpp | 22 +++++-----
sandbox/SOC/2009/fusion/libs/fusion/example/extension/detail/advance_impl.hpp | 7 +--
sandbox/SOC/2009/fusion/libs/fusion/example/extension/detail/at_impl.hpp | 7 +--
sandbox/SOC/2009/fusion/libs/fusion/example/extension/detail/at_key_impl.hpp | 7 +--
sandbox/SOC/2009/fusion/libs/fusion/example/extension/detail/begin_impl.hpp | 7 +--
sandbox/SOC/2009/fusion/libs/fusion/example/extension/detail/category_of_impl.hpp | 7 +--
sandbox/SOC/2009/fusion/libs/fusion/example/extension/detail/deref_impl.hpp | 7 +--
sandbox/SOC/2009/fusion/libs/fusion/example/extension/detail/distance_impl.hpp | 16 +++++--
sandbox/SOC/2009/fusion/libs/fusion/example/extension/detail/end_impl.hpp | 7 +--
sandbox/SOC/2009/fusion/libs/fusion/example/extension/detail/equal_to_impl.hpp | 7 +--
sandbox/SOC/2009/fusion/libs/fusion/example/extension/detail/has_key_impl.hpp | 7 +--
sandbox/SOC/2009/fusion/libs/fusion/example/extension/detail/is_sequence_impl.hpp | 7 +--
sandbox/SOC/2009/fusion/libs/fusion/example/extension/detail/is_view_impl.hpp | 7 +--
sandbox/SOC/2009/fusion/libs/fusion/example/extension/detail/next_impl.hpp | 7 +--
sandbox/SOC/2009/fusion/libs/fusion/example/extension/detail/prior_impl.hpp | 7 +--
sandbox/SOC/2009/fusion/libs/fusion/example/extension/detail/size_impl.hpp | 9 ++--
sandbox/SOC/2009/fusion/libs/fusion/example/extension/detail/value_at_impl.hpp | 7 +--
sandbox/SOC/2009/fusion/libs/fusion/example/extension/detail/value_at_key_impl.hpp | 7 +--
sandbox/SOC/2009/fusion/libs/fusion/example/extension/detail/value_of_impl.hpp | 7 +--
sandbox/SOC/2009/fusion/libs/fusion/example/extension/example_struct.hpp | 5 +-
sandbox/SOC/2009/fusion/libs/fusion/example/extension/example_struct_iterator.hpp | 6 +-
sandbox/SOC/2009/fusion/libs/fusion/example/extension/example_struct_type.hpp | 5 +-
sandbox/SOC/2009/fusion/libs/fusion/example/extension/tag_of.hpp | 5 +-
sandbox/SOC/2009/fusion/libs/fusion/example/extension/triple.cpp | 10 +++--
sandbox/SOC/2009/fusion/libs/fusion/example/performance/Jamfile | 2
sandbox/SOC/2009/fusion/libs/fusion/example/performance/accumulate.cpp | 19 +++++----
sandbox/SOC/2009/fusion/libs/fusion/example/performance/functional.cpp | 42 +++++++++++----------
sandbox/SOC/2009/fusion/libs/fusion/example/performance/inner_product.cpp | 12 +++---
sandbox/SOC/2009/fusion/libs/fusion/example/performance/inner_product2.cpp | 18 ++++----
sandbox/SOC/2009/fusion/libs/fusion/example/performance/measure.hpp | 12 ++----
sandbox/SOC/2009/fusion/libs/fusion/example/performance/sequence_efficiency.cpp | 23 +++++------
sandbox/SOC/2009/fusion/libs/fusion/example/performance/zip_efficiency.cpp | 2
sandbox/SOC/2009/fusion/libs/fusion/test/Jamfile | 54 +++++++++++++++-------------
sandbox/SOC/2009/fusion/libs/fusion/test/algorithm/clear.cpp | 5 +-
sandbox/SOC/2009/fusion/libs/fusion/test/algorithm/erase.cpp | 18 ++++----
sandbox/SOC/2009/fusion/libs/fusion/test/algorithm/erase_key.cpp | 15 +++++--
sandbox/SOC/2009/fusion/libs/fusion/test/algorithm/find.cpp | 5 +-
sandbox/SOC/2009/fusion/libs/fusion/test/algorithm/find_if.cpp | 4 +-
sandbox/SOC/2009/fusion/libs/fusion/test/algorithm/fold.cpp | 53 +++++++++++++++++++---------
sandbox/SOC/2009/fusion/libs/fusion/test/algorithm/insert.cpp | 12 +++--
sandbox/SOC/2009/fusion/libs/fusion/test/algorithm/insert_range.cpp | 12 +++--
sandbox/SOC/2009/fusion/libs/fusion/test/algorithm/replace_if.cpp | 6 +-
sandbox/SOC/2009/fusion/libs/fusion/test/algorithm/transform.cpp | 30 +++++++++++----
sandbox/SOC/2009/fusion/libs/fusion/test/compile_time/Makefile | 2
sandbox/SOC/2009/fusion/libs/fusion/test/compile_time/driver.hpp | 4 +-
sandbox/SOC/2009/fusion/libs/fusion/test/compile_time/fold.cpp | 13 ------
sandbox/SOC/2009/fusion/libs/fusion/test/compile_time/transform.cpp | 2
sandbox/SOC/2009/fusion/libs/fusion/test/compile_time/vector_construction.cpp | 2
sandbox/SOC/2009/fusion/libs/fusion/test/compile_time/vector_intrinsic.cpp | 2
sandbox/SOC/2009/fusion/libs/fusion/test/compile_time/vector_iteration.cpp | 2
sandbox/SOC/2009/fusion/libs/fusion/test/functional/fused.cpp | 11 ++---
sandbox/SOC/2009/fusion/libs/fusion/test/functional/fused_function_object.cpp | 19 ++++-----
sandbox/SOC/2009/fusion/libs/fusion/test/functional/fused_procedure.cpp | 11 ++---
sandbox/SOC/2009/fusion/libs/fusion/test/functional/invoke.cpp | 33 +++++++++--------
sandbox/SOC/2009/fusion/libs/fusion/test/functional/invoke_function_object.cpp | 18 ++++----
sandbox/SOC/2009/fusion/libs/fusion/test/functional/invoke_procedure.cpp | 28 +++++++-------
sandbox/SOC/2009/fusion/libs/fusion/test/functional/make_fused.cpp | 9 +---
sandbox/SOC/2009/fusion/libs/fusion/test/functional/make_fused_function_object.cpp | 9 +---
sandbox/SOC/2009/fusion/libs/fusion/test/functional/make_fused_procedure.cpp | 9 +---
sandbox/SOC/2009/fusion/libs/fusion/test/functional/make_unfused.cpp | 8 ++--
sandbox/SOC/2009/fusion/libs/fusion/test/functional/unfused.cpp | 9 ++--
sandbox/SOC/2009/fusion/libs/fusion/test/functional/unfused_typed.cpp | 18 ++++----
sandbox/SOC/2009/fusion/libs/fusion/test/sequence/adapt_assoc_struct.cpp | 11 +----
sandbox/SOC/2009/fusion/libs/fusion/test/sequence/adapt_struct.cpp | 5 --
sandbox/SOC/2009/fusion/libs/fusion/test/sequence/as_list.cpp | 6 +-
sandbox/SOC/2009/fusion/libs/fusion/test/sequence/as_map.cpp | 4 +-
sandbox/SOC/2009/fusion/libs/fusion/test/sequence/as_set.cpp | 4 +-
sandbox/SOC/2009/fusion/libs/fusion/test/sequence/as_vector.cpp | 8 ++--
sandbox/SOC/2009/fusion/libs/fusion/test/sequence/boost_tuple.cpp | 11 +++++
sandbox/SOC/2009/fusion/libs/fusion/test/sequence/cons.cpp | 8 ++--
sandbox/SOC/2009/fusion/libs/fusion/test/sequence/copy.hpp | 2
sandbox/SOC/2009/fusion/libs/fusion/test/sequence/deduce_sequence.cpp | 68 ++++++++++++++----------------------
sandbox/SOC/2009/fusion/libs/fusion/test/sequence/filter_view.cpp | 36 +++++++++++++++----
sandbox/SOC/2009/fusion/libs/fusion/test/sequence/iterator.hpp | 30 ++++++---------
sandbox/SOC/2009/fusion/libs/fusion/test/sequence/iterator_range.cpp | 74 +++++++++++++++++++++++++++++++--------
sandbox/SOC/2009/fusion/libs/fusion/test/sequence/joint_view.cpp | 48 ++++++++++++++++++++++++-
sandbox/SOC/2009/fusion/libs/fusion/test/sequence/list_iterator.cpp | 6 +-
sandbox/SOC/2009/fusion/libs/fusion/test/sequence/list_misc.cpp | 1
sandbox/SOC/2009/fusion/libs/fusion/test/sequence/map.cpp | 18 ++++++++-
sandbox/SOC/2009/fusion/libs/fusion/test/sequence/misc.hpp | 26 +++++++------
sandbox/SOC/2009/fusion/libs/fusion/test/sequence/mutate.hpp | 2
sandbox/SOC/2009/fusion/libs/fusion/test/sequence/reverse_view.cpp | 12 +++---
sandbox/SOC/2009/fusion/libs/fusion/test/sequence/set.cpp | 18 +++++++++
sandbox/SOC/2009/fusion/libs/fusion/test/sequence/std_pair.cpp | 2 -
sandbox/SOC/2009/fusion/libs/fusion/test/sequence/tie.hpp | 15 ++++---
sandbox/SOC/2009/fusion/libs/fusion/test/sequence/tr1_tuple_auto_conv.cpp | 16 ++-----
sandbox/SOC/2009/fusion/libs/fusion/test/sequence/transform_view.cpp | 30 +++++++++++----
sandbox/SOC/2009/fusion/libs/fusion/test/sequence/value_at.hpp | 5 +-
sandbox/SOC/2009/fusion/libs/fusion/test/sequence/vector_n.cpp | 39 ++++++++------------
sandbox/SOC/2009/fusion/libs/fusion/test/sequence/vector_tie.cpp | 2
sandbox/SOC/2009/fusion/libs/fusion/test/sequence/zip_view2.cpp | 3 +
91 files changed, 690 insertions(+), 563 deletions(-)
Modified: sandbox/SOC/2009/fusion/libs/fusion/example/cookbook/do_the_bind.cpp
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/example/cookbook/do_the_bind.cpp (original)
+++ sandbox/SOC/2009/fusion/libs/fusion/example/cookbook/do_the_bind.cpp 2009-11-03 13:27:47 EST (Tue, 03 Nov 2009)
@@ -65,9 +65,9 @@
// A traits class to find out whether T is a placeholeder
template <typename T> struct is_placeholder : mpl::false_ { };
template <int I> struct is_placeholder< placeholder<I> > : mpl::true_ { };
- template <int I> struct is_placeholder< placeholder<I>& > : mpl::true_ { };
+ template <int I> struct is_placeholder< placeholder<I> & > : mpl::true_ { };
template <int I> struct is_placeholder< placeholder<I> const > : mpl::true_ { };
- template <int I> struct is_placeholder< placeholder<I> const& > : mpl::true_ { };
+ template <int I> struct is_placeholder< placeholder<I> const & > : mpl::true_ { };
// This class template provides a Polymorphic Function Object to be used
// with fusion::transform. It is applied to the sequence of arguments that
@@ -75,17 +75,17 @@
// from the final call.
template<class FinalArgs> struct argument_transform
{
- FinalArgs const& ref_final_args;
+ FinalArgs const & ref_final_args;
public:
- explicit argument_transform(FinalArgs const& final_args)
+ explicit argument_transform(FinalArgs const & final_args)
: ref_final_args(final_args)
{ }
// A placeholder? Replace it with an argument from the final call...
template <int Index>
inline typename result_of::at_c<FinalArgs const, Index>::type
- operator()(placeholder<Index> const&) const
+ operator()(placeholder<Index> const &) const
{
return fusion::at_c<Index>(this->ref_final_args);
}
@@ -117,7 +117,7 @@
bound_args fsq_bind_args;
public:
- fused_bound_function(BindArgs const& bind_args)
+ fused_bound_function(BindArgs const & bind_args)
: fsq_bind_args(bind_args)
{ }
@@ -141,7 +141,7 @@
template <class FinalArgs>
inline typename result_impl<FinalArgs>::type
- operator()(FinalArgs const& final_args) const
+ operator()(FinalArgs const & final_args) const
{
return fusion::invoke( fusion::front(this->fsq_bind_args),
fusion::transform( fusion::pop_front(this->fsq_bind_args),
@@ -231,17 +231,17 @@
}
template <typename A>
- inline int operator()(A const& a) const
+ inline int operator()(A const & a) const
{
- std::cout << "operator()(A const& a)" << std::endl;
+ std::cout << "operator()(A const & a)" << std::endl;
std::cout << " a = " << a << " A = " << typeid(A).name() << std::endl;
return 1;
}
template <typename A, typename B>
- inline int operator()(A const& a, B & b) const
+ inline int operator()(A const & a, B & b) const
{
- std::cout << "operator()(A const& a, B & b)" << std::endl;
+ std::cout << "operator()(A const & a, B & b)" << std::endl;
std::cout << " a = " << a << " A = " << typeid(A).name() << std::endl;
std::cout << " b = " << b << " B = " << typeid(B).name() << std::endl;
return 2;
Modified: sandbox/SOC/2009/fusion/libs/fusion/example/extension/detail/advance_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/example/extension/detail/advance_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/libs/fusion/example/extension/detail/advance_impl.hpp 2009-11-03 13:27:47 EST (Tue, 03 Nov 2009)
@@ -5,9 +5,8 @@
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
-#define
+#if !defined(BOOST_FUSION_ADVANCE_IMPL_20060222_2150)
+#define BOOST_FUSION_ADVANCE_IMPL_20060222_2150
namespace example
{
@@ -21,7 +20,7 @@
namespace extension
{
- template<typename>
+ template<typename Tag>
struct advance_impl;
template<>
Modified: sandbox/SOC/2009/fusion/libs/fusion/example/extension/detail/at_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/example/extension/detail/at_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/libs/fusion/example/extension/detail/at_impl.hpp 2009-11-03 13:27:47 EST (Tue, 03 Nov 2009)
@@ -5,9 +5,8 @@
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
-#define
+#if !defined(BOOST_FUSION_AT_IMPL_20060223_2017)
+#define BOOST_FUSION_AT_IMPL_20060223_2017
#include <string>
#include <boost/mpl/if.hpp>
@@ -23,7 +22,7 @@
namespace extension
{
- template<typename>
+ template<typename Tag>
struct at_impl;
template<>
Modified: sandbox/SOC/2009/fusion/libs/fusion/example/extension/detail/at_key_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/example/extension/detail/at_key_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/libs/fusion/example/extension/detail/at_key_impl.hpp 2009-11-03 13:27:47 EST (Tue, 03 Nov 2009)
@@ -5,9 +5,8 @@
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
-#define
+#if !defined(BOOST_FUSION_AT_KEY_IMPL_20060223_2017)
+#define BOOST_FUSION_AT_KEY_IMPL_20060223_2017
#include <string>
#include <boost/mpl/if.hpp>
@@ -28,7 +27,7 @@
namespace extension
{
- template<typename>
+ template<typename Tag>
struct at_key_impl;
template<>
Modified: sandbox/SOC/2009/fusion/libs/fusion/example/extension/detail/begin_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/example/extension/detail/begin_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/libs/fusion/example/extension/detail/begin_impl.hpp 2009-11-03 13:27:47 EST (Tue, 03 Nov 2009)
@@ -5,9 +5,8 @@
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
-#define
+#if !defined(BOOST_FUSION_BEGIN_IMPL_20060222_2042)
+#define BOOST_FUSION_BEGIN_IMPL_20060222_2042
#include "../example_struct_iterator.hpp"
@@ -20,7 +19,7 @@
namespace extension
{
- template<typename>
+ template<typename Tag>
struct begin_impl;
template<>
Modified: sandbox/SOC/2009/fusion/libs/fusion/example/extension/detail/category_of_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/example/extension/detail/category_of_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/libs/fusion/example/extension/detail/category_of_impl.hpp 2009-11-03 13:27:47 EST (Tue, 03 Nov 2009)
@@ -5,9 +5,8 @@
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
-#define
+#if !defined(BOOST_FUSION_CATEGORY_OF_IMPL_20060223_2037)
+#define BOOST_FUSION_CATEGORY_OF_IMPL_20060223_2037
#include <boost/fusion/support/category_of.hpp>
@@ -26,7 +25,7 @@
template<typename Sequence>
struct apply
{
- struct type : random_access_traversal_tag, associative_sequence_tag {};
+ struct type : random_access_traversal_tag, associative_tag {};
};
};
}
Modified: sandbox/SOC/2009/fusion/libs/fusion/example/extension/detail/deref_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/example/extension/detail/deref_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/libs/fusion/example/extension/detail/deref_impl.hpp 2009-11-03 13:27:47 EST (Tue, 03 Nov 2009)
@@ -5,9 +5,8 @@
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
-#define
+#if !defined(BOOST_FUSION_DEREF_IMPL_20060222_1952)
+#define BOOST_FUSION_DEREF_IMPL_20060222_1952
#include <boost/static_assert.hpp>
#include <boost/type_traits/is_const.hpp>
@@ -27,7 +26,7 @@
namespace extension
{
- template<typename>
+ template<typename Tag>
struct deref_impl;
template<>
Modified: sandbox/SOC/2009/fusion/libs/fusion/example/extension/detail/distance_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/example/extension/detail/distance_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/libs/fusion/example/extension/detail/distance_impl.hpp 2009-11-03 13:27:47 EST (Tue, 03 Nov 2009)
@@ -2,12 +2,11 @@
Copyright (c) 2001-2006 Joel de Guzman
Copyright (c) 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)
==============================================================================*/
-
-#ifndef
-#define
+#if !defined(BOOST_FUSION_DISTANCE_IMPL_20060223_0814)
+#define BOOST_FUSION_DISTANCE_IMPL_20060223_0814
#include <boost/mpl/minus.hpp>
@@ -20,7 +19,7 @@
namespace extension
{
- template<typename>
+ template<typename Tag>
struct distance_impl;
template<>
@@ -30,6 +29,13 @@
struct apply
: mpl::minus<typename Last::index, typename First::index>
{
+ typedef apply<First, Last> self;
+
+ static typename self::type
+ call(First const& first, Last const& last)
+ {
+ return typename self::type();
+ }
};
};
}
Modified: sandbox/SOC/2009/fusion/libs/fusion/example/extension/detail/end_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/example/extension/detail/end_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/libs/fusion/example/extension/detail/end_impl.hpp 2009-11-03 13:27:47 EST (Tue, 03 Nov 2009)
@@ -5,9 +5,8 @@
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
-#define
+#if !defined(BOOST_FUSION_END_IMPL_20060222_2042)
+#define BOOST_FUSION_END_IMPL_20060222_2042
#include "../example_struct_iterator.hpp"
@@ -20,7 +19,7 @@
namespace extension
{
- template<typename>
+ template<typename Tag>
struct end_impl;
template<>
Modified: sandbox/SOC/2009/fusion/libs/fusion/example/extension/detail/equal_to_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/example/extension/detail/equal_to_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/libs/fusion/example/extension/detail/equal_to_impl.hpp 2009-11-03 13:27:47 EST (Tue, 03 Nov 2009)
@@ -5,9 +5,8 @@
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
-#define
+#if !defined(BOOST_FUSION_EQUAL_TO_IMPL_20060223_1941)
+#define BOOST_FUSION_EQUAL_TO_IMPL_20060223_1941
#include <boost/mpl/equal_to.hpp>
@@ -20,7 +19,7 @@
namespace extension
{
- template<typename>
+ template<typename Tag>
struct equal_to_impl;
template<>
Modified: sandbox/SOC/2009/fusion/libs/fusion/example/extension/detail/has_key_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/example/extension/detail/has_key_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/libs/fusion/example/extension/detail/has_key_impl.hpp 2009-11-03 13:27:47 EST (Tue, 03 Nov 2009)
@@ -5,9 +5,8 @@
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
-#define
+#if !defined(BOOST_FUSION_HAS_KEY_IMPL_20060223_2156)
+#define BOOST_FUSION_HAS_KEY_IMPL_20060223_2156
#include <boost/type_traits/is_same.hpp>
#include <boost/mpl/or.hpp>
@@ -27,7 +26,7 @@
namespace extension
{
- template<typename>
+ template<typename Tag>
struct has_key_impl;
template<>
Modified: sandbox/SOC/2009/fusion/libs/fusion/example/extension/detail/is_sequence_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/example/extension/detail/is_sequence_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/libs/fusion/example/extension/detail/is_sequence_impl.hpp 2009-11-03 13:27:47 EST (Tue, 03 Nov 2009)
@@ -5,9 +5,8 @@
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
-#define
+#if !defined(BOOST_FUSION_IS_SEQUENCE_IMPL_20060228_1946)
+#define BOOST_FUSION_IS_SEQUENCE_IMPL_20060228_1946
#include <boost/mpl/bool.hpp>
@@ -20,7 +19,7 @@
{
namespace extension
{
- template<typename>
+ template<typename Tag>
struct is_sequence_impl;
template<>
Modified: sandbox/SOC/2009/fusion/libs/fusion/example/extension/detail/is_view_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/example/extension/detail/is_view_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/libs/fusion/example/extension/detail/is_view_impl.hpp 2009-11-03 13:27:47 EST (Tue, 03 Nov 2009)
@@ -5,9 +5,8 @@
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
-#define
+#if !defined(BOOST_FUSION_IS_VIEW_IMPL_200604227_2150)
+#define BOOST_FUSION_IS_VIEW_IMPL_200604227_2150
#include <boost/mpl/bool.hpp>
@@ -20,7 +19,7 @@
{
namespace extension
{
- template<typename>
+ template<typename Tag>
struct is_view_impl;
template<>
Modified: sandbox/SOC/2009/fusion/libs/fusion/example/extension/detail/next_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/example/extension/detail/next_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/libs/fusion/example/extension/detail/next_impl.hpp 2009-11-03 13:27:47 EST (Tue, 03 Nov 2009)
@@ -5,9 +5,8 @@
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
-#define
+#if !defined(BOOST_FUSION_NEXT_IMPL_20060222_1859)
+#define BOOST_FUSION_NEXT_IMPL_20060222_1859
namespace example
{
@@ -21,7 +20,7 @@
namespace extension
{
- template<typename>
+ template<typename Tag>
struct next_impl;
template<>
Modified: sandbox/SOC/2009/fusion/libs/fusion/example/extension/detail/prior_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/example/extension/detail/prior_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/libs/fusion/example/extension/detail/prior_impl.hpp 2009-11-03 13:27:47 EST (Tue, 03 Nov 2009)
@@ -5,9 +5,8 @@
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
-#define
+#if !defined(BOOST_FUSION_PRIOR_IMPL_20060222_1944)
+#define BOOST_FUSION_PRIOR_IMPL_20060222_1944
namespace example
{
@@ -21,7 +20,7 @@
namespace extension
{
- template<typename>
+ template<typename Tag>
struct prior_impl;
template<>
Modified: sandbox/SOC/2009/fusion/libs/fusion/example/extension/detail/size_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/example/extension/detail/size_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/libs/fusion/example/extension/detail/size_impl.hpp 2009-11-03 13:27:47 EST (Tue, 03 Nov 2009)
@@ -5,9 +5,8 @@
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
-#define
+#if !defined(BOOST_FUSION_SIZE_IMPL_20060223_2033)
+#define BOOST_FUSION_SIZE_IMPL_20060223_2033
#include <boost/mpl/int.hpp>
@@ -20,7 +19,7 @@
namespace extension
{
- template<typename>
+ template<typename Tag>
struct size_impl;
template<>
@@ -28,7 +27,7 @@
{
template<typename Sequence>
struct apply
- : mpl::int_<2>
+ : mpl::int_<2>
{};
};
}
Modified: sandbox/SOC/2009/fusion/libs/fusion/example/extension/detail/value_at_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/example/extension/detail/value_at_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/libs/fusion/example/extension/detail/value_at_impl.hpp 2009-11-03 13:27:47 EST (Tue, 03 Nov 2009)
@@ -5,9 +5,8 @@
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
-#define
+#if !defined(BOOST_FUSION_VALUE_AT_IMPL_20060223_2025)
+#define BOOST_FUSION_VALUE_AT_IMPL_20060223_2025
namespace example
{
@@ -18,7 +17,7 @@
namespace extension
{
- template<typename>
+ template<typename Tag>
struct value_at_impl;
template<>
Modified: sandbox/SOC/2009/fusion/libs/fusion/example/extension/detail/value_at_key_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/example/extension/detail/value_at_key_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/libs/fusion/example/extension/detail/value_at_key_impl.hpp 2009-11-03 13:27:47 EST (Tue, 03 Nov 2009)
@@ -5,9 +5,8 @@
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
-#define
+#if !defined(BOOST_FUSION_VALUE_AT_KEY_IMPL_20060223_2025)
+#define BOOST_FUSION_VALUE_AT_KEY_IMPL_20060223_2025
namespace fields
{
@@ -24,7 +23,7 @@
namespace extension
{
- template<typename>
+ template<typename Tag>
struct value_at_key_impl;
template<>
Modified: sandbox/SOC/2009/fusion/libs/fusion/example/extension/detail/value_of_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/example/extension/detail/value_of_impl.hpp (original)
+++ sandbox/SOC/2009/fusion/libs/fusion/example/extension/detail/value_of_impl.hpp 2009-11-03 13:27:47 EST (Tue, 03 Nov 2009)
@@ -5,9 +5,8 @@
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
-#define
+#if !defined(BOOST_FUSION_VALUE_OF_IMPL_20060223_1905)
+#define BOOST_FUSION_VALUE_OF_IMPL_20060223_1905
#include <string>
@@ -23,7 +22,7 @@
namespace extension
{
- template<typename>
+ template<typename Tag>
struct value_of_impl;
template<>
Modified: sandbox/SOC/2009/fusion/libs/fusion/example/extension/example_struct.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/example/extension/example_struct.hpp (original)
+++ sandbox/SOC/2009/fusion/libs/fusion/example/extension/example_struct.hpp 2009-11-03 13:27:47 EST (Tue, 03 Nov 2009)
@@ -5,9 +5,8 @@
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
-#define
+#if !defined(BOOST_FUSION_EXAMPLE_STRUCT)
+#define BOOST_FUSION_EXAMPLE_STRUCT
#include "./tag_of.hpp"
#include "./example_struct_iterator.hpp"
Modified: sandbox/SOC/2009/fusion/libs/fusion/example/extension/example_struct_iterator.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/example/extension/example_struct_iterator.hpp (original)
+++ sandbox/SOC/2009/fusion/libs/fusion/example/extension/example_struct_iterator.hpp 2009-11-03 13:27:47 EST (Tue, 03 Nov 2009)
@@ -5,13 +5,13 @@
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
-#define
+#if !defined(BOOST_FUSION_EXAMPLE_STRUCT_ITERATOR)
+#define BOOST_FUSION_EXAMPLE_STRUCT_ITERATOR
#include <boost/fusion/support/iterator_base.hpp>
#include <boost/fusion/support/tag_of_fwd.hpp>
#include <boost/mpl/int.hpp>
+#include <boost/type_traits/add_const.hpp>
#include <boost/static_assert.hpp>
#include "./detail/next_impl.hpp"
Modified: sandbox/SOC/2009/fusion/libs/fusion/example/extension/example_struct_type.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/example/extension/example_struct_type.hpp (original)
+++ sandbox/SOC/2009/fusion/libs/fusion/example/extension/example_struct_type.hpp 2009-11-03 13:27:47 EST (Tue, 03 Nov 2009)
@@ -5,9 +5,8 @@
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
-#define
+#if !defined(BOOST_FUSION_EXAMPLE_STRUCT_TYPE)
+#define BOOST_FUSION_EXAMPLE_STRUCT_TYPE
#include <string>
Modified: sandbox/SOC/2009/fusion/libs/fusion/example/extension/tag_of.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/example/extension/tag_of.hpp (original)
+++ sandbox/SOC/2009/fusion/libs/fusion/example/extension/tag_of.hpp 2009-11-03 13:27:47 EST (Tue, 03 Nov 2009)
@@ -5,9 +5,8 @@
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
-#define
+#if !defined(BOOST_FUSION_TAG_OF_20060222_2052)
+#define BOOST_FUSION_TAG_OF_20060222_2052
#include <boost/fusion/support/tag_of_fwd.hpp>
#include "./example_struct_type.hpp"
Modified: sandbox/SOC/2009/fusion/libs/fusion/example/extension/triple.cpp
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/example/extension/triple.cpp (original)
+++ sandbox/SOC/2009/fusion/libs/fusion/example/extension/triple.cpp 2009-11-03 13:27:47 EST (Tue, 03 Nov 2009)
@@ -17,8 +17,10 @@
#include <boost/fusion/sequence/sequence_facade.hpp>
#include <boost/fusion/iterator/iterator_facade.hpp>
+
#include <boost/fusion/sequence/intrinsic.hpp>
#include <boost/fusion/iterator.hpp>
+
#include <boost/fusion/support/category_of.hpp>
#include <boost/mpl/int.hpp>
@@ -41,7 +43,7 @@
: fusion::iterator_facade<triple_iterator<Seq, N>, fusion::random_access_traversal_tag>
{
typedef mpl::int_<N> index;
- typedef Seq seq_type;
+ typedef Seq sequence_type;
triple_iterator(Seq& seq)
: seq_(seq) {}
@@ -127,7 +129,7 @@
struct next
{
typedef triple_iterator<
- typename It::seq_type, It::index::value + 1> type;
+ typename It::sequence_type, It::index::value + 1> type;
static type call(It const& it)
{
@@ -139,7 +141,7 @@
struct prior
{
typedef triple_iterator<
- typename It::seq_type, It::index::value - 1> type;
+ typename It::sequence_type, It::index::value - 1> type;
static type call(It const& it)
{
@@ -162,7 +164,7 @@
struct advance
{
typedef triple_iterator<
- typename It::seq_type,
+ typename It::sequence_type,
It::index::value + M::value> type;
static type call(It const& it)
Modified: sandbox/SOC/2009/fusion/libs/fusion/example/performance/Jamfile
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/example/performance/Jamfile (original)
+++ sandbox/SOC/2009/fusion/libs/fusion/example/performance/Jamfile 2009-11-03 13:27:47 EST (Tue, 03 Nov 2009)
@@ -16,5 +16,5 @@
exe sequence_efficiency : sequence_efficiency.cpp ;
-#exe functional : functional.cpp ;
+exe functional : functional.cpp ;
Modified: sandbox/SOC/2009/fusion/libs/fusion/example/performance/accumulate.cpp
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/example/performance/accumulate.cpp (original)
+++ sandbox/SOC/2009/fusion/libs/fusion/example/performance/accumulate.cpp 2009-11-03 13:27:47 EST (Tue, 03 Nov 2009)
@@ -82,9 +82,9 @@
template<typename Sig>
struct result;
- template<typename Self,typename Lhs, typename Rhs>
- struct result<Self(Lhs,Rhs)>
- : boost::fusion::detail::remove_reference<Lhs>
+ template<typename Lhs, typename Rhs>
+ struct result<poly_add(Lhs,Rhs)>
+ : boost::remove_reference<Lhs>
{};
template<typename Lhs, typename Rhs>
@@ -99,9 +99,9 @@
template<typename Sig>
struct result;
- template<typename Self,typename Lhs, typename Rhs>
- struct result<Self(Lhs, Rhs)>
- : boost::fusion::detail::remove_reference<Lhs>
+ template<typename Lhs, typename Rhs>
+ struct result<poly_mult(Lhs, Rhs)>
+ : boost::remove_reference<Lhs>
{};
template<typename Lhs, typename Rhs>
@@ -249,14 +249,15 @@
{
template<typename Lhs, typename Rhs>
struct result
- : boost::fusion::detail::remove_reference<Lhs>
- {};
+ {
+ typedef Lhs type;
+ };
template<typename Lhs, typename Rhs>
typename result<Lhs,Rhs>::type
operator()(const Lhs& lhs, const Rhs& rhs) const
{
- return rhs + boost::fusion::at_c<0>(lhs) * boost::fusion::at_c<1>(lhs);
+ return lhs + boost::fusion::at_c<0>(rhs) * boost::fusion::at_c<1>(rhs);
}
};
Modified: sandbox/SOC/2009/fusion/libs/fusion/example/performance/functional.cpp
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/example/performance/functional.cpp (original)
+++ sandbox/SOC/2009/fusion/libs/fusion/example/performance/functional.cpp 2009-11-03 13:27:47 EST (Tue, 03 Nov 2009)
@@ -10,10 +10,12 @@
#include <boost/fusion/container/list.hpp>
#include <boost/fusion/container/vector.hpp>
#include <boost/fusion/algorithm/iteration/fold.hpp>
-#include <boost/fusion/functional/adapter/unfused_generic.hpp>
-#include <boost/fusion/functional/adapter/unfused_rvalue_args.hpp>
+#include <boost/fusion/functional/adapter/unfused.hpp>
#include <boost/fusion/functional/adapter/fused_function_object.hpp>
+#include <boost/functional/forward_adapter.hpp>
+#include <boost/functional/lightweight_forward_adapter.hpp>
+
#include <boost/utility/result_of.hpp>
#include <boost/config.hpp>
#include <boost/timer.hpp>
@@ -36,7 +38,7 @@
struct fused_sum
{
template <typename Seq>
- int operator()(Seq const& seq) const
+ int operator()(Seq const & seq) const
{
int state = 0;
return boost::fusion::fold(seq, state, sum_op());
@@ -49,13 +51,13 @@
struct sum_op
{
template <typename T>
- int operator()(int value, T const& elem) const
+ int operator()(T const & elem, int value) const
{
return value + sizeof(T) * elem;
}
template <typename T>
- int operator()(int value, T & elem) const
+ int operator()(T & elem, int value) const
{
elem += sizeof(T);
return value;
@@ -72,22 +74,22 @@
return 0;
}
template<typename T0>
- inline int operator()(T0 const& a0) const
+ inline int operator()(T0 const & a0) const
{
return a0;
}
template<typename T0, typename T1>
- inline int operator()(T0 const& a0, T1 const& a1) const
+ inline int operator()(T0 const & a0, T1 const & a1) const
{
return a0 + a1;
}
template<typename T0, typename T1, typename T2>
- inline int operator()(T0 const& a0, T1 const& a1, T2 a2) const
+ inline int operator()(T0 const & a0, T1 const & a1, T2 a2) const
{
return a0 + a1 + a2;
}
template<typename T0, typename T1, typename T2, typename T3>
- inline int operator()(T0 const& a0, T1 const& a1, T2 const& a2, T3 const& a3) const
+ inline int operator()(T0 const & a0, T1 const & a1, T2 const & a2, T3 const & a3) const
{
return a0 + a1 + a2 + a3;
}
@@ -96,7 +98,7 @@
};
template<typename F>
- double call_unfused(F func, int & j)
+ double call_unfused(F const & func, int & j)
{
boost::timer tim;
int i = 0;
@@ -139,7 +141,7 @@
}
template<typename F>
- double call_fused_ra(F func, int & j)
+ double call_fused_ra(F const & func, int & j)
{
boost::timer tim;
int i = 0;
@@ -192,7 +194,7 @@
}
template<typename F>
- double call_fused(F func, int & j)
+ double call_fused(F const & func, int & j)
{
boost::timer tim;
int i = 0;
@@ -265,13 +267,13 @@
total += res;
}
{
- boost::fusion::unfused_rvalue_args<F> f;
- std::cout << "unfused_rvalue_args<F> " << call_unfused(f,res) << std::endl;
+ boost::lightweight_forward_adapter< boost::fusion::unfused<F> > f;
+ std::cout << "lightweight_forward_adapter< unfused<F> > " << call_unfused(f,res) << std::endl;
total += res;
}
{
- boost::fusion::unfused_generic<F> f;
- std::cout << "unfused_generic<F> " << call_unfused(f,res) << std::endl;
+ boost::forward_adapter< boost::fusion::unfused<F> > f;
+ std::cout << "forward_adapter< unfused<F> > " << call_unfused(f,res) << std::endl;
total += res;
}
std::cout << std::endl << "Fused adapters:" << std::endl;
@@ -291,13 +293,13 @@
total += res;
}
{
- boost::fusion::unfused_rvalue_args< boost::fusion::fused_function_object<U> > f;
- std::cout << "unfused_rvalue_args<fused_function_object<U> > " << call_unfused(f,res) << std::endl;
+ boost::lightweight_forward_adapter< boost::fusion::unfused< boost::fusion::fused_function_object<U> > > f;
+ std::cout << "lightweight_forward_adapter< unfused<fused_function_object<U> > >" << call_unfused(f,res) << std::endl;
total += res;
}
{
- boost::fusion::unfused_generic< boost::fusion::fused_function_object<U> > f;
- std::cout << "unfused_generic<fused_function_object<U> > " << call_unfused(f,res) << std::endl;
+ boost::forward_adapter< boost::fusion::unfused< boost::fusion::fused_function_object<U> > > f;
+ std::cout << "forward_adapter< unfused<fused_function_object<U> > > " << call_unfused(f,res) << std::endl;
total += res;
}
Modified: sandbox/SOC/2009/fusion/libs/fusion/example/performance/inner_product.cpp
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/example/performance/inner_product.cpp (original)
+++ sandbox/SOC/2009/fusion/libs/fusion/example/performance/inner_product.cpp 2009-11-03 13:27:47 EST (Tue, 03 Nov 2009)
@@ -42,9 +42,9 @@
template<typename Sig>
struct result;
- template<typename Self,typename Lhs, typename Rhs>
- struct result<Self(Lhs, Rhs)>
- : boost::fusion::detail::remove_reference<Lhs>
+ template<typename Lhs, typename Rhs>
+ struct result<poly_add(Lhs, Rhs)>
+ : boost::remove_reference<Lhs>
{};
template<typename Lhs, typename Rhs>
@@ -59,9 +59,9 @@
template<typename Sig>
struct result;
- template<typename Self,typename Lhs, typename Rhs>
- struct result<Self(Lhs, Rhs)>
- : boost::fusion::detail::remove_reference<Lhs>
+ template<typename Lhs, typename Rhs>
+ struct result<poly_mult(Lhs, Rhs)>
+ : boost::remove_reference<Lhs>
{};
template<typename Lhs, typename Rhs>
Modified: sandbox/SOC/2009/fusion/libs/fusion/example/performance/inner_product2.cpp
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/example/performance/inner_product2.cpp (original)
+++ sandbox/SOC/2009/fusion/libs/fusion/example/performance/inner_product2.cpp 2009-11-03 13:27:47 EST (Tue, 03 Nov 2009)
@@ -42,9 +42,9 @@
template<typename Sig>
struct result;
- template<typename Self,typename Lhs, typename Rhs>
- struct result<Self(Lhs, Rhs)>
- : boost::fusion::detail::remove_reference<Lhs>
+ template<typename Lhs, typename Rhs>
+ struct result<poly_add(Lhs, Rhs)>
+ : boost::remove_reference<Lhs>
{};
template<typename Lhs, typename Rhs>
@@ -59,9 +59,9 @@
template<typename Sig>
struct result;
- template<typename Self,typename Lhs, typename Rhs>
- struct result<Self(Lhs, Rhs)>
- : boost::fusion::detail::remove_reference<Lhs>
+ template<typename Lhs, typename Rhs>
+ struct result<poly_mult(Lhs, Rhs)>
+ : boost::remove_reference<Lhs>
{};
template<typename Lhs, typename Rhs>
@@ -119,9 +119,9 @@
template<typename Sig>
struct result;
- template<typename Self,typename Lhs, typename Rhs>
- struct result<Self(Lhs, Rhs)>
- : boost::fusion::detail::remove_reference<Lhs>
+ template<typename Lhs, typename Rhs>
+ struct result<poly_combine(Lhs, Rhs)>
+ : boost::remove_reference<Lhs>
{};
template<typename Lhs, typename Rhs>
Modified: sandbox/SOC/2009/fusion/libs/fusion/example/performance/measure.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/example/performance/measure.hpp (original)
+++ sandbox/SOC/2009/fusion/libs/fusion/example/performance/measure.hpp 2009-11-03 13:27:47 EST (Tue, 03 Nov 2009)
@@ -1,11 +1,7 @@
-/*=============================================================================
- Copyright (c) 2005 David Abrahams
- Copyright (c) 2005 Matthias Troyer
- Copyright (c) 2005 Michael Gauckler
-
- 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 David Abrahams, Matthias Troyer, Michael Gauckler
+// 2005. 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(LIVE_CODE_TYPE)
# define LIVE_CODE_TYPE int
Modified: sandbox/SOC/2009/fusion/libs/fusion/example/performance/sequence_efficiency.cpp
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/example/performance/sequence_efficiency.cpp (original)
+++ sandbox/SOC/2009/fusion/libs/fusion/example/performance/sequence_efficiency.cpp 2009-11-03 13:27:47 EST (Tue, 03 Nov 2009)
@@ -6,7 +6,6 @@
==============================================================================*/
#include "measure.hpp"
-//TODO: BOOST_FUSION_MAX
#define FUSION_MAX_LIST_SIZE 30
#define FUSION_MAX_VECTOR_SIZE 30
@@ -65,9 +64,9 @@
template<typename Sig>
struct result;
- template<typename Self,typename Lhs, typename Rhs>
- struct result<Self(Lhs, Rhs)>
- : boost::fusion::detail::remove_reference<Lhs>
+ template<typename Lhs, typename Rhs>
+ struct result<poly_add(Lhs, Rhs)>
+ : boost::remove_reference<Lhs>
{};
template<typename Lhs, typename Rhs>
@@ -82,7 +81,7 @@
struct accumulator
{
accumulator()
- : sum()
+ : sum()
{}
template <typename Sequence>
@@ -99,7 +98,7 @@
struct plain_accumulator
{
plain_accumulator()
- : sum()
+ : sum()
{}
template <typename X>
@@ -195,8 +194,8 @@
test::hammer<accumulator<int> >(lsmall, repeats);
test::hammer<accumulator<int> >(vmedium, repeats);
test::hammer<accumulator<int> >(lmedium, repeats);
- //test::hammer<accumulator<int> >(vbig, repeats);
- //test::hammer<accumulator<int> >(lbig, repeats);
+ test::hammer<accumulator<int> >(vbig, repeats);
+ test::hammer<accumulator<int> >(lbig, repeats);
measured = time.elapsed();
}
@@ -221,8 +220,8 @@
check(lsmall, "small list accumulated result: ");
check(vmedium, "medium vector accumulated result: ");
check(lmedium, "medium list accumulated result: ");
- //check(vbig, "big vector accumulated result: ");
- //check(lbig, "big list accumulated result: ");
+ check(vbig, "big vector accumulated result: ");
+ check(lbig, "big list accumulated result: ");
std::cout
<< "-------------------------------------------------------------------"
@@ -232,8 +231,8 @@
measure(lsmall, "small list time: ", repeats, base_time);
measure(vmedium, "medium vector time: ", repeats, base_time);
measure(lmedium, "medium list time: ", repeats, base_time);
- //measure(vbig, "big vector time: ", repeats, base_time);
- //measure(lbig, "big list time: ", repeats, base_time);
+ measure(vbig, "big vector time: ", repeats, base_time);
+ measure(lbig, "big list time: ", repeats, base_time);
std::cout
<< "-------------------------------------------------------------------"
Modified: sandbox/SOC/2009/fusion/libs/fusion/example/performance/zip_efficiency.cpp
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/example/performance/zip_efficiency.cpp (original)
+++ sandbox/SOC/2009/fusion/libs/fusion/example/performance/zip_efficiency.cpp 2009-11-03 13:27:47 EST (Tue, 03 Nov 2009)
@@ -30,7 +30,7 @@
struct result
{
typedef typename
- fusion::detail::remove_reference<
+ boost::remove_reference<
typename boost::fusion::result_of::value_at_c<Lhs, 0>::type
>::type
type;
Modified: sandbox/SOC/2009/fusion/libs/fusion/test/Jamfile
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/test/Jamfile (original)
+++ sandbox/SOC/2009/fusion/libs/fusion/test/Jamfile 2009-11-03 13:27:47 EST (Tue, 03 Nov 2009)
@@ -14,44 +14,40 @@
[ run algorithm/all.cpp : : : : ]
[ run algorithm/any.cpp : : : : ]
[ run algorithm/clear.cpp : : : : ]
- [ run algorithm/count_if.cpp : : : : ]
[ run algorithm/count.cpp : : : : ]
- [ run algorithm/erase_key.cpp : : : : ]
+ [ run algorithm/count_if.cpp : : : : ]
[ run algorithm/erase.cpp : : : : ]
- [ run algorithm/filter_if.cpp : : : : ]
+ [ run algorithm/erase_key.cpp : : : : ]
[ run algorithm/filter.cpp : : : : ]
- [ run algorithm/find_if.cpp : : : : ]
+ [ run algorithm/filter_if.cpp : : : : ]
[ run algorithm/find.cpp : : : : ]
+ [ run algorithm/find_if.cpp : : : : ]
[ run algorithm/fold.cpp : : : : ]
[ run algorithm/for_each.cpp : : : : ]
- [ run algorithm/insert_range.cpp : : : : ]
[ run algorithm/insert.cpp : : : : ]
- [ run algorithm/join.cpp : : : : ]
+ [ run algorithm/insert_range.cpp : : : : ]
[ run algorithm/none.cpp : : : : ]
[ run algorithm/pop_back.cpp : : : : ]
[ run algorithm/pop_front.cpp : : : : ]
[ run algorithm/push_back.cpp : : : : ]
[ run algorithm/push_front.cpp : : : : ]
- [ run algorithm/remove_if.cpp : : : : ]
[ run algorithm/remove.cpp : : : : ]
- [ run algorithm/replace_if.cpp : : : : ]
+ [ run algorithm/remove_if.cpp : : : : ]
[ run algorithm/replace.cpp : : : : ]
+ [ run algorithm/replace_if.cpp : : : : ]
[ run algorithm/reverse.cpp : : : : ]
[ run algorithm/transform.cpp : : : : ]
- [ run algorithm/zip_ignore.cpp : : : : ]
+ [ run algorithm/join.cpp : : : : ]
[ run algorithm/zip.cpp : : : : ]
[ run algorithm/zip2.cpp : : : : ]
+ [ run algorithm/zip_ignore.cpp : : : : ]
- [ run sequence/adapt_struct.cpp : : : : ]
- [ run sequence/adapt_assoc_struct.cpp : : : : ]
- [ run sequence/array.cpp : : : : ]
[ run sequence/as_list.cpp : : : : ]
[ run sequence/as_map.cpp : : : : ]
[ run sequence/as_set.cpp : : : : ]
[ run sequence/as_vector.cpp : : : : ]
[ run sequence/boost_tuple.cpp : : : : ]
[ run sequence/cons.cpp : : : : ]
- [ run sequence/deduce_sequence.cpp : : : : ]
[ run sequence/filter_view.cpp : : : : ]
[ run sequence/io.cpp : : : : ]
[ run sequence/iterator_range.cpp : : : : ]
@@ -64,16 +60,17 @@
[ run sequence/list_misc.cpp : : : : ]
[ run sequence/list_mutate.cpp : : : : ]
[ run sequence/list_tie.cpp : : : : ]
- [ run sequence/map_tie.cpp : : : : ]
+ [ run sequence/list_value_at.cpp : : : : ]
+ [ run sequence/make_list.cpp : : : : ]
+ [ run sequence/make_vector.cpp : : : : ]
[ run sequence/map.cpp : : : : ]
+ [ run sequence/map_tie.cpp : : : : ]
[ run sequence/nview.cpp : : : : ]
[ run sequence/reverse_view.cpp : : : : ]
[ run sequence/set.cpp : : : : ]
[ run sequence/single_view.cpp : : : : ]
[ run sequence/std_pair.cpp : : : : ]
- [ run sequence/swap.cpp : : : : ]
- [ run sequence/tr1_tuple_auto_conv.cpp : : : : ]
- [ run sequence/transform_view.cpp : : : : ]
+ [ run sequence/array.cpp : : : : ]
[ run sequence/tuple_comparison.cpp : : : : ]
[ run sequence/tuple_construction.cpp : : : : ]
[ run sequence/tuple_copy.cpp : : : : ]
@@ -82,6 +79,8 @@
[ run sequence/tuple_misc.cpp : : : : ]
[ run sequence/tuple_mutate.cpp : : : : ]
[ run sequence/tuple_tie.cpp : : : : ]
+ [ run sequence/tr1_tuple_auto_conv.cpp : : : : ]
+ [ run sequence/transform_view.cpp : : : : ]
[ run sequence/vector_comparison.cpp : : : : ]
[ run sequence/vector_construction.cpp : : : : ]
[ run sequence/vector_copy.cpp : : : : ]
@@ -92,22 +91,27 @@
[ run sequence/vector_n.cpp : : : : ]
[ run sequence/vector_tie.cpp : : : : ]
[ run sequence/vector_value_at.cpp : : : : ]
- [ run sequence/zip_view_ignore.cpp : : : : ]
[ run sequence/zip_view.cpp : : : : ]
[ run sequence/zip_view2.cpp : : : : ]
+ [ run sequence/zip_view_ignore.cpp : : : : ]
+ [ run sequence/repetitive_view.cpp : : : : ]
+ [ run sequence/deduce_sequence.cpp : : : : ]
+ [ run sequence/adapt_struct.cpp : : : : ]
+ [ run sequence/adapt_assoc_struct.cpp : : : : ]
+ [ run sequence/swap.cpp : : : : ]
+ [ run functional/fused.cpp : : : : ]
[ run functional/fused_function_object.cpp : : : : ]
[ run functional/fused_procedure.cpp : : : : ]
- [ run functional/fused.cpp : : : : ]
- [ run functional/invoke_function_object.cpp : : : : ]
- [ run functional/invoke_procedure.cpp : : : : ]
- [ run functional/invoke.cpp : : : : ]
+ [ run functional/unfused.cpp : : : : ]
+ [ run functional/unfused_typed.cpp : : : : ]
+ [ run functional/make_fused.cpp : : : : ]
[ run functional/make_fused_function_object.cpp : : : : ]
[ run functional/make_fused_procedure.cpp : : : : ]
- [ run functional/make_fused.cpp : : : : ]
[ run functional/make_unfused.cpp : : : : ]
- [ run functional/unfused_typed.cpp : : : : ]
- [ run functional/unfused.cpp : : : : ]
+ [ run functional/invoke.cpp : : : : ]
+ [ run functional/invoke_function_object.cpp : : : : ]
+ [ run functional/invoke_procedure.cpp : : : : ]
# [ compile-fail xxx.cpp : : : : ]
Modified: sandbox/SOC/2009/fusion/libs/fusion/test/algorithm/clear.cpp
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/test/algorithm/clear.cpp (original)
+++ sandbox/SOC/2009/fusion/libs/fusion/test/algorithm/clear.cpp 2009-11-03 13:27:47 EST (Tue, 03 Nov 2009)
@@ -5,8 +5,7 @@
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
==============================================================================*/
#include <boost/detail/lightweight_test.hpp>
-#include <boost/fusion/adapted/mpl.hpp>
-#include <boost/fusion/container/vector.hpp>
+#include <boost/fusion/container/vector/vector.hpp>
#include <boost/fusion/sequence/io/out.hpp>
#include <boost/fusion/sequence/comparison/equal_to.hpp>
#include <boost/fusion/container/generation/make_vector.hpp>
@@ -22,6 +21,8 @@
std::cout << tuple_close(']');
std::cout << tuple_delimiter(", ");
+/// Testing pop_back
+
{
char const* s = "Ruby";
typedef vector<int, char, double, char const*> vector_type;
Modified: sandbox/SOC/2009/fusion/libs/fusion/test/algorithm/erase.cpp
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/test/algorithm/erase.cpp (original)
+++ sandbox/SOC/2009/fusion/libs/fusion/test/algorithm/erase.cpp 2009-11-03 13:27:47 EST (Tue, 03 Nov 2009)
@@ -1,19 +1,18 @@
/*=============================================================================
Copyright (c) 2001-2006 Joel de Guzman
- 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)
==============================================================================*/
#include <boost/detail/lightweight_test.hpp>
#include <boost/fusion/container/vector/vector.hpp>
+#include <boost/fusion/sequence/intrinsic/begin.hpp>
+#include <boost/fusion/iterator/advance.hpp>
#include <boost/fusion/adapted/mpl.hpp>
#include <boost/fusion/sequence/io/out.hpp>
#include <boost/fusion/sequence/comparison/equal_to.hpp>
-#include <boost/fusion/sequence/intrinsic/begin.hpp>
-#include <boost/fusion/iterator/advance.hpp>
#include <boost/fusion/container/generation/make_vector.hpp>
#include <boost/fusion/algorithm/transformation/erase.hpp>
-
#include <boost/mpl/vector_c.hpp>
#include <boost/mpl/begin_end.hpp>
#include <boost/mpl/advance.hpp>
@@ -38,10 +37,10 @@
{
typedef vector<int, char, double, char const*> vector_type;
vector_type t1(1, 'x', 3.3, "Ruby");
- typedef
- result_of::advance_c<result_of::begin<vector_type>::type,2>::type
- it;
- it pos(advance_c<2>(boost::fusion::begin(t1)));
+ //TODO
+ //vector_iterator<vector_type, 2> pos(t1);
+ result_of::advance_c<result_of::begin<vector_type>::type,2>::type
+ pos=advance_c<2>(boost::fusion::begin(t1));
std::cout << erase(t1, pos) << std::endl;
BOOST_TEST((erase(t1, pos) == make_vector(1, 'x', std::string("Ruby"))));
@@ -57,7 +56,8 @@
typedef boost::mpl::next<n2>::type n3;
BOOST_STATIC_ASSERT((boost::is_same<mpl_vec_at3, n3>::value));
-
+
+
std::cout << erase(mpl_vec(), mpl_vec_at3()) << std::endl;
BOOST_TEST((erase(mpl_vec(), mpl_vec_at3())
== make_vector(1, 2, 3, 5)));
Modified: sandbox/SOC/2009/fusion/libs/fusion/test/algorithm/erase_key.cpp
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/test/algorithm/erase_key.cpp (original)
+++ sandbox/SOC/2009/fusion/libs/fusion/test/algorithm/erase_key.cpp 2009-11-03 13:27:47 EST (Tue, 03 Nov 2009)
@@ -1,7 +1,7 @@
/*=============================================================================
Copyright (c) 2001-2006 Joel de Guzman
- 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)
==============================================================================*/
#include <boost/detail/lightweight_test.hpp>
@@ -29,7 +29,7 @@
{
using namespace boost::fusion;
std::cout << set << std::endl;
-
+
BOOST_STATIC_ASSERT(result_of::size<Set>::value == 3);
BOOST_TEST((*find<int>(set) == 1));
BOOST_TEST((*find<double>(set) == 1.5));
@@ -40,24 +40,29 @@
typedef boost::mpl::int_<2> _2;
typedef boost::mpl::int_<3> _3;
typedef boost::mpl::int_<4> _4;
-
+
template <typename Map>
void test_map(Map const& map)
{
using namespace boost::fusion;
std::cout << map << std::endl;
-
+
BOOST_STATIC_ASSERT(result_of::size<Map>::value == 3);
- //TODO!!!
+ //TODO
//BOOST_TEST(((*find<_1>(map)).second == 1));
//BOOST_TEST(((*find<_3>(map)).second == 1.5));
//BOOST_TEST(((*find<_4>(map)).second == std::string("hello")));
+ BOOST_TEST(((*find_key<_1>(map)).second == 1));
+ BOOST_TEST(((*find_key<_3>(map)).second == 1.5));
+ BOOST_TEST(((*find_key<_4>(map)).second == std::string("hello")));
}
int
main()
{
using namespace boost::fusion;
+ using namespace boost;
+ using namespace std;
using boost::fusion::pair;
using boost::fusion::make_pair;
Modified: sandbox/SOC/2009/fusion/libs/fusion/test/algorithm/find.cpp
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/test/algorithm/find.cpp (original)
+++ sandbox/SOC/2009/fusion/libs/fusion/test/algorithm/find.cpp 2009-11-03 13:27:47 EST (Tue, 03 Nov 2009)
@@ -11,7 +11,6 @@
#include <boost/fusion/container/map/map.hpp>
#include <boost/fusion/algorithm/query/find.hpp>
#include <boost/fusion/iterator/deref.hpp>
-#include <boost/fusion/sequence/io/out.hpp>
#include <boost/mpl/vector.hpp>
#include <string>
@@ -61,8 +60,8 @@
map_type seq(
make_pair<int>('X')
, make_pair<double>("Men"));
-
- //TODO!!!
+
+ //TODO
//std::cout << *boost::fusion::find<int>(seq) << std::endl;
//std::cout << *boost::fusion::find<double>(seq) << std::endl;
//BOOST_TEST((*boost::fusion::find<int>(seq)).second == 'X');
Modified: sandbox/SOC/2009/fusion/libs/fusion/test/algorithm/find_if.cpp
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/test/algorithm/find_if.cpp (original)
+++ sandbox/SOC/2009/fusion/libs/fusion/test/algorithm/find_if.cpp 2009-11-03 13:27:47 EST (Tue, 03 Nov 2009)
@@ -50,7 +50,7 @@
using boost::mpl::_;
typedef vector<int, char, X, double> mpl_vec;
- BOOST_TEST((*boost::fusion::find_if<is_same<_, X> >(mpl_vec()) == 12345));
+ BOOST_TEST((*find_if<is_same<_, X> >(mpl_vec()) == 12345));
}
{
@@ -61,7 +61,7 @@
using boost::mpl::_;
typedef vector_c<int, 1, 2, 3, 4> mpl_vec;
- BOOST_TEST((*boost::fusion::find_if<less<_, int_<3> > >(mpl_vec()) == 1));
+ BOOST_TEST((*find_if<less<_, int_<3> > >(mpl_vec()) == 1));
}
return boost::report_errors();
Modified: sandbox/SOC/2009/fusion/libs/fusion/test/algorithm/fold.cpp
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/test/algorithm/fold.cpp (original)
+++ sandbox/SOC/2009/fusion/libs/fusion/test/algorithm/fold.cpp 2009-11-03 13:27:47 EST (Tue, 03 Nov 2009)
@@ -2,7 +2,7 @@
Copyright (c) 2001-2006 Joel de Guzman
Copyright (c) 2007 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)
==============================================================================*/
#include <boost/detail/lightweight_test.hpp>
@@ -34,18 +34,15 @@
template<typename T>
struct result;
- template <typename Self,typename State,typename T>
- struct result<Self(State,T)>
+ template <typename State, typename T>
+ struct result<add_ints_only(State, T)>
{
- //TODO cschmidt: remove_reference does not support rvalue refs yet,
- //therefore we use the internal function of fusion!
- typedef typename boost::fusion::detail::identity<T>::type type;
- //typedef typename boost::remove_const<
- // typename boost::remove_reference<State>::type>::type type;
+ typedef typename boost::remove_const<
+ typename boost::remove_reference<State>::type>::type type;
};
template <typename State, typename T>
- State const&
+ State
operator()(State const& state, T const& x) const
{
return state;
@@ -63,15 +60,13 @@
template<typename T>
struct result;
- template <typename Self,typename CountT,typename T>
- struct result<Self(CountT, T)>
+ template <typename CountT, typename T>
+ struct result<count_ints(CountT, T)>
{
- typedef typename boost::fusion::detail::identity<T>::type elem;
- typedef typename boost::fusion::detail::identity<CountT>::type state;
- //typedef typename boost::remove_const<
- // typename boost::remove_reference<T>::type>::type elem;
- //typedef typename boost::remove_const<
- // typename boost::remove_reference<CountT>::type>::type state;
+ typedef typename boost::remove_const<
+ typename boost::remove_reference<CountT>::type>::type state;
+ typedef typename boost::remove_const<
+ typename boost::remove_reference<T>::type>::type elem;
typedef typename
if_<
@@ -101,6 +96,25 @@
}
};
+struct lvalue_adder
+{
+ template<typename Sig>
+ struct result;
+
+ template<typename T0, typename T1>
+ struct result<lvalue_adder(T0, T1&)>
+ {
+ // Second argument still needs to support rvalues - see definition of fusion::fold
+ typedef T1 type;
+ };
+
+ template<typename T0, typename T1>
+ T1 operator()(T0 const& lhs, T1& rhs) const
+ {
+ return lhs + rhs;
+ }
+};
+
int add(int lhs, int rhs)
{
return lhs + rhs;
@@ -152,6 +166,11 @@
{
vector<int, int> vec(1,2);
+ BOOST_TEST(fusion::fold(vec, 0, lvalue_adder()) == 3);
+ }
+
+ {
+ vector<int, int> vec(1,2);
BOOST_TEST(fusion::fold(vec, 0, add) == 3);
}
Modified: sandbox/SOC/2009/fusion/libs/fusion/test/algorithm/insert.cpp
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/test/algorithm/insert.cpp (original)
+++ sandbox/SOC/2009/fusion/libs/fusion/test/algorithm/insert.cpp 2009-11-03 13:27:47 EST (Tue, 03 Nov 2009)
@@ -1,7 +1,7 @@
/*=============================================================================
Copyright (c) 2001-2006 Joel de Guzman
- 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)
==============================================================================*/
#include <boost/detail/lightweight_test.hpp>
@@ -9,6 +9,8 @@
#include <boost/fusion/adapted/mpl.hpp>
#include <boost/fusion/sequence/io/out.hpp>
#include <boost/fusion/sequence/comparison/equal_to.hpp>
+#include <boost/fusion/sequence/intrinsic/begin.hpp>
+#include <boost/fusion/iterator/advance.hpp>
#include <boost/fusion/container/generation/make_vector.hpp>
#include <boost/fusion/algorithm/transformation/insert.hpp>
#include <boost/mpl/vector_c.hpp>
@@ -37,10 +39,10 @@
char const* s = "Ruby";
typedef vector<int, char, double, char const*> vector_type;
vector_type t1(1, 'x', 3.3, s);
- typedef
- result_of::advance_c<result_of::begin<vector_type>::type,2>::type
- it;
- it pos(advance_c<2>(boost::fusion::begin(t1)));
+ //TODO
+ //vector_iterator<vector_type, 2> pos(t1);
+ result_of::advance_c<result_of::begin<vector_type>::type,2>::type
+ pos=advance_c<2>(fusion::begin(t1));
std::cout << insert(t1, pos, 123456) << std::endl;
BOOST_TEST((insert(t1, pos, 123456)
Modified: sandbox/SOC/2009/fusion/libs/fusion/test/algorithm/insert_range.cpp
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/test/algorithm/insert_range.cpp (original)
+++ sandbox/SOC/2009/fusion/libs/fusion/test/algorithm/insert_range.cpp 2009-11-03 13:27:47 EST (Tue, 03 Nov 2009)
@@ -1,7 +1,7 @@
/*=============================================================================
Copyright (c) 2001-2006 Joel de Guzman
- 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)
==============================================================================*/
#include <boost/detail/lightweight_test.hpp>
@@ -9,6 +9,8 @@
#include <boost/fusion/adapted/mpl.hpp>
#include <boost/fusion/sequence/io/out.hpp>
#include <boost/fusion/sequence/comparison/equal_to.hpp>
+#include <boost/fusion/sequence/intrinsic/begin.hpp>
+#include <boost/fusion/iterator/advance.hpp>
#include <boost/fusion/container/generation/make_vector.hpp>
#include <boost/fusion/algorithm/transformation/insert_range.hpp>
#include <boost/mpl/vector_c.hpp>
@@ -37,10 +39,10 @@
char const* s = "Ruby";
typedef vector<int, char, double, char const*> vector_type;
vector_type t1(1, 'x', 3.3, s);
- typedef
- result_of::advance_c<result_of::begin<vector_type>::type,2>::type
- it;
- it pos(advance_c<2>(boost::fusion::begin(t1)));
+ //TODO
+ //vector_iterator<vector_type, 2> pos(t1);
+ result_of::advance_c<result_of::begin<vector_type>::type,2>::type
+ pos=advance_c<2>(fusion::begin(t1));
typedef vector<int, char> vector_type2;
vector_type2 t2(999, 'z');
Modified: sandbox/SOC/2009/fusion/libs/fusion/test/algorithm/replace_if.cpp
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/test/algorithm/replace_if.cpp (original)
+++ sandbox/SOC/2009/fusion/libs/fusion/test/algorithm/replace_if.cpp 2009-11-03 13:27:47 EST (Tue, 03 Nov 2009)
@@ -1,7 +1,7 @@
/*=============================================================================
Copyright (c) 2001-2006 Joel de Guzman
- 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)
==============================================================================*/
#include <boost/detail/lightweight_test.hpp>
@@ -41,8 +41,8 @@
vector_type t1(1, 2, 3.3, 4, s, 5.5);
{
- std::cout << replace_if(t1, gt3(), -456) << std::endl;
- //TODO!!!
+ //TODO
+ //std::cout << replace_if(t1, gt3(), -456) << std::endl;
//BOOST_TEST((replace_if(t1, gt3(), -456)
// == make_vector(1, 2, -456, -456, s, -456)));
}
Modified: sandbox/SOC/2009/fusion/libs/fusion/test/algorithm/transform.cpp
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/test/algorithm/transform.cpp (original)
+++ sandbox/SOC/2009/fusion/libs/fusion/test/algorithm/transform.cpp 2009-11-03 13:27:47 EST (Tue, 03 Nov 2009)
@@ -19,7 +19,14 @@
struct square
{
- typedef int result_type;
+ template<typename Sig>
+ struct result;
+
+ template <typename T>
+ struct result<square(T)>
+ {
+ typedef int type;
+ };
template <typename T>
int operator()(T x) const
@@ -30,7 +37,14 @@
struct add
{
- typedef int result_type;
+ template<typename Sig>
+ struct result;
+
+ template <typename A, typename B>
+ struct result<add(A, B)>
+ {
+ typedef int type;
+ };
template <typename A, typename B>
int operator()(A a, B b) const
@@ -44,8 +58,8 @@
template<typename Sig>
struct result;
- template<typename Self,typename T>
- struct result<Self(T&)>
+ template<typename T>
+ struct result<unary_lvalue_transform(T&)>
{
typedef T* type;
};
@@ -67,8 +81,8 @@
template<typename Sig>
struct result;
- template<typename Self,typename T0, typename T1>
- struct result<Self(T0&,T1&)>
+ template<typename T0, typename T1>
+ struct result<binary_lvalue_transform(T0&,T1&)>
{
typedef T0* type;
};
@@ -93,8 +107,8 @@
/// Testing the transform
{
- typedef range_c<int, 5, 9> seq_type;
- seq_type sequence;
+ typedef range_c<int, 5, 9> sequence_type;
+ sequence_type sequence;
std::cout << transform(sequence, square()) << std::endl;
BOOST_TEST((transform(sequence, square()) == make_vector(25, 36, 49, 64)));
}
Modified: sandbox/SOC/2009/fusion/libs/fusion/test/compile_time/Makefile
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/test/compile_time/Makefile (original)
+++ sandbox/SOC/2009/fusion/libs/fusion/test/compile_time/Makefile 2009-11-03 13:27:47 EST (Tue, 03 Nov 2009)
@@ -1,6 +1,6 @@
#=============================================================================
# Copyright (c) 2008 Dan Marsden
-#
+#
# 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).
Modified: sandbox/SOC/2009/fusion/libs/fusion/test/compile_time/driver.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/test/compile_time/driver.hpp (original)
+++ sandbox/SOC/2009/fusion/libs/fusion/test/compile_time/driver.hpp 2009-11-03 13:27:47 EST (Tue, 03 Nov 2009)
@@ -1,12 +1,12 @@
/*=============================================================================
Copyright (c) 2008 Dan Marsden
-
+
Use modification and distribution are subject to the Boost Software
License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
http://www.boost.org/LICENSE_1_0.txt).
==============================================================================*/
-#ifndef BOOST_FUSION_COMPILE_TIME_DRIVER
+#if !defined(BOOST_FUSION_COMPILE_TIME_DRIVER)
#define BOOST_FUSION_COMPILE_TIME_DRIVER
int main()
Modified: sandbox/SOC/2009/fusion/libs/fusion/test/compile_time/fold.cpp
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/test/compile_time/fold.cpp (original)
+++ sandbox/SOC/2009/fusion/libs/fusion/test/compile_time/fold.cpp 2009-11-03 13:27:47 EST (Tue, 03 Nov 2009)
@@ -1,6 +1,6 @@
/*=============================================================================
Copyright (c) 2008 Dan Marsden
-
+
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).
@@ -19,18 +19,7 @@
struct f
{
-#ifdef NO_PREEVALUATE
- template<typename Sig>
- struct result;
-
- template<typename Self, typename State, typename D>
- struct result<Self(State, D)>
- {
- typedef int type;
- };
-#else
typedef int result_type;
-#endif
template<int n, int batch>
int operator()(int state, distinct<n, batch> const& d) const
Modified: sandbox/SOC/2009/fusion/libs/fusion/test/compile_time/transform.cpp
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/test/compile_time/transform.cpp (original)
+++ sandbox/SOC/2009/fusion/libs/fusion/test/compile_time/transform.cpp 2009-11-03 13:27:47 EST (Tue, 03 Nov 2009)
@@ -1,6 +1,6 @@
/*=============================================================================
Copyright (c) 2008 Dan Marsden
-
+
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).
Modified: sandbox/SOC/2009/fusion/libs/fusion/test/compile_time/vector_construction.cpp
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/test/compile_time/vector_construction.cpp (original)
+++ sandbox/SOC/2009/fusion/libs/fusion/test/compile_time/vector_construction.cpp 2009-11-03 13:27:47 EST (Tue, 03 Nov 2009)
@@ -1,6 +1,6 @@
/*=============================================================================
Copyright (c) 2008 Dan Marsden
-
+
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).
Modified: sandbox/SOC/2009/fusion/libs/fusion/test/compile_time/vector_intrinsic.cpp
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/test/compile_time/vector_intrinsic.cpp (original)
+++ sandbox/SOC/2009/fusion/libs/fusion/test/compile_time/vector_intrinsic.cpp 2009-11-03 13:27:47 EST (Tue, 03 Nov 2009)
@@ -1,6 +1,6 @@
/*=============================================================================
Copyright (c) 2008 Dan Marsden
-
+
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).
Modified: sandbox/SOC/2009/fusion/libs/fusion/test/compile_time/vector_iteration.cpp
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/test/compile_time/vector_iteration.cpp (original)
+++ sandbox/SOC/2009/fusion/libs/fusion/test/compile_time/vector_iteration.cpp 2009-11-03 13:27:47 EST (Tue, 03 Nov 2009)
@@ -1,6 +1,6 @@
/*=============================================================================
Copyright (c) 2008 Dan Marsden
-
+
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).
Modified: sandbox/SOC/2009/fusion/libs/fusion/test/functional/fused.cpp
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/test/functional/fused.cpp (original)
+++ sandbox/SOC/2009/fusion/libs/fusion/test/functional/fused.cpp 2009-11-03 13:27:47 EST (Tue, 03 Nov 2009)
@@ -28,13 +28,13 @@
typedef int result_type;
template <typename T0, typename T1>
- int operator()(T0 const& x, T1 const& y) const
+ int operator()(T0 const & x, T1 const & y) const
{
return 1+x-y;
}
template <typename T0, typename T1>
- int operator()(T0 const& x, T1 const& y)
+ int operator()(T0 const & x, T1 const & y)
{
return 2+x-y;
}
@@ -59,7 +59,7 @@
typedef fusion::fused< test_func<> > ff;
ff fused_func;
- typedef fusion::fused< test_func<noncopyable>& > ffr;
+ typedef fusion::fused< test_func<noncopyable> & > ffr;
ffr fused_func_ref(f);
typedef fusion::fused< test_func<> const > ffc;
@@ -68,7 +68,7 @@
typedef fusion::fused< test_func<> > const ffc2;
ffc2 fused_func_c2;
- typedef fusion::fused< test_func<noncopyable> const& > ffcr;
+ typedef fusion::fused< test_func<noncopyable> const & > ffcr;
ffcr fused_func_c_ref(f);
typedef fusion::vector<int,char> vec;
@@ -84,14 +84,11 @@
BOOST_MPL_ASSERT((boost::is_same<boost::result_of<ffcr(vec)>::type, int>));
BOOST_TEST(fused_func_c_ref(lv_vec) == 0);
- //TODO!!!
- /*
BOOST_TEST(fused_func(fusion::make_vector(2,'\003')) == 1);
BOOST_TEST(fused_func_c(fusion::make_vector(2,'\003')) == 0);
BOOST_TEST(fused_func_c2(fusion::make_vector(2,'\003')) == 0);
BOOST_TEST(fused_func_ref(fusion::make_vector(2,'\003')) == 1);
BOOST_TEST(fused_func_c_ref(fusion::make_vector(2,'\003')) == 0);
- */
return boost::report_errors();
}
Modified: sandbox/SOC/2009/fusion/libs/fusion/test/functional/fused_function_object.cpp
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/test/functional/fused_function_object.cpp (original)
+++ sandbox/SOC/2009/fusion/libs/fusion/test/functional/fused_function_object.cpp 2009-11-03 13:27:47 EST (Tue, 03 Nov 2009)
@@ -32,13 +32,13 @@
};
template <typename T0, typename T1>
- int operator()(T0 const& x, T1 const& y) const
+ int operator()(T0 const & x, T1 const & y) const
{
return 1+x-y;
}
template <typename T0, typename T1>
- int operator()(T0 const& x, T1 const& y)
+ int operator()(T0 const & x, T1 const & y)
{
return 2+x-y;
}
@@ -60,10 +60,10 @@
{
test_func<noncopyable> f;
fusion::fused_function_object< test_func<> > fused_func;
- fusion::fused_function_object< test_func<noncopyable>& > fused_func_ref(f);
+ fusion::fused_function_object< test_func<noncopyable> & > fused_func_ref(f);
fusion::fused_function_object< test_func<> const > fused_func_c;
fusion::fused_function_object< test_func<> > const fused_func_c2;
- fusion::fused_function_object< test_func<noncopyable> const& > fused_func_c_ref(f);
+ fusion::fused_function_object< test_func<noncopyable> const & > fused_func_c_ref(f);
fusion::vector<int,char> lv_vec(1,'\004');
BOOST_TEST(fused_func(lv_vec) == 1);
@@ -72,12 +72,11 @@
BOOST_TEST(fused_func_ref(lv_vec) == 1);
BOOST_TEST(fused_func_c_ref(lv_vec) == 0);
- //TODO!!!
- //BOOST_TEST(fused_func(fusion::make_vector(2,'\003')) == 1);
- //BOOST_TEST(fused_func_c(fusion::make_vector(2,'\003')) == 0);
- //BOOST_TEST(fused_func_c2(fusion::make_vector(2,'\003')) == 0);
- //BOOST_TEST(fused_func_ref(fusion::make_vector(2,'\003')) == 1);
- //BOOST_TEST(fused_func_c_ref(fusion::make_vector(2,'\003')) == 0);
+ BOOST_TEST(fused_func(fusion::make_vector(2,'\003')) == 1);
+ BOOST_TEST(fused_func_c(fusion::make_vector(2,'\003')) == 0);
+ BOOST_TEST(fused_func_c2(fusion::make_vector(2,'\003')) == 0);
+ BOOST_TEST(fused_func_ref(fusion::make_vector(2,'\003')) == 1);
+ BOOST_TEST(fused_func_c_ref(fusion::make_vector(2,'\003')) == 0);
return boost::report_errors();
}
Modified: sandbox/SOC/2009/fusion/libs/fusion/test/functional/fused_procedure.cpp
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/test/functional/fused_procedure.cpp (original)
+++ sandbox/SOC/2009/fusion/libs/fusion/test/functional/fused_procedure.cpp 2009-11-03 13:27:47 EST (Tue, 03 Nov 2009)
@@ -31,13 +31,13 @@
: Base
{
template <typename T0, typename T1>
- int operator()(T0 const& x, T1 const& y) const
+ int operator()(T0 const & x, T1 const & y) const
{
return effect = 1+x-y;
}
template <typename T0, typename T1>
- int operator()(T0 const& x, T1 const& y)
+ int operator()(T0 const & x, T1 const & y)
{
return effect = 2+x-y;
}
@@ -59,10 +59,10 @@
{
test_func<noncopyable> f;
fusion::fused_procedure< test_func<> > fused_proc;
- fusion::fused_procedure< test_func<noncopyable>& > fused_proc_ref(f);
+ fusion::fused_procedure< test_func<noncopyable> & > fused_proc_ref(f);
fusion::fused_procedure< test_func<> const > fused_proc_c;
fusion::fused_procedure< test_func<> > const fused_proc_c2;
- fusion::fused_procedure< test_func<noncopyable> const& > fused_proc_c_ref(f);
+ fusion::fused_procedure< test_func<noncopyable> const & > fused_proc_c_ref(f);
fusion::vector<int,char> lv_vec(1,'\004');
CHECK_EFFECT(fused_proc(lv_vec), 1);
@@ -71,14 +71,11 @@
CHECK_EFFECT(fused_proc_ref(lv_vec), 1);
CHECK_EFFECT(fused_proc_c_ref(lv_vec), 0);
- //TODO!!!
- /*
CHECK_EFFECT(fused_proc(fusion::make_vector(2,'\003')), 1);
CHECK_EFFECT(fused_proc_c(fusion::make_vector(2,'\003')), 0);
CHECK_EFFECT(fused_proc_c2(fusion::make_vector(2,'\003')), 0);
CHECK_EFFECT(fused_proc_ref(fusion::make_vector(2,'\003')), 1);
CHECK_EFFECT(fused_proc_c_ref(fusion::make_vector(2,'\003')), 0);
- */
return boost::report_errors();
}
Modified: sandbox/SOC/2009/fusion/libs/fusion/test/functional/invoke.cpp
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/test/functional/invoke.cpp (original)
+++ sandbox/SOC/2009/fusion/libs/fusion/test/functional/invoke.cpp 2009-11-03 13:27:47 EST (Tue, 03 Nov 2009)
@@ -30,7 +30,7 @@
namespace fusion = boost::fusion;
template <typename T>
-inline T const& const_(T const& t)
+inline T const & const_(T const & t)
{
return t;
}
@@ -67,8 +67,8 @@
int operator()(int i, object &) { return 4 + i; }
int operator()(int i, object &) const { return 5 + i; }
- int operator()(int i, object const&) { return 6 + i; }
- int operator()(int i, object const&) const { return 7 + i; }
+ int operator()(int i, object const &) { return 6 + i; }
+ int operator()(int i, object const &) const { return 7 + i; }
int operator()(int i, object &, object_nc &) { return 10 + i; }
int operator()(int i, object &, object_nc &) const { return 11 + i; }
@@ -111,7 +111,7 @@
int nullary() { return 16; }
int unary(int i) { return 17 + i; }
int binary1(int i, object &) { return 18 + i; }
-int binary2(int i, object const&) { return 19 + i; }
+int binary2(int i, object const &) { return 19 + i; }
typedef int (* func_ptr)(int);
typedef int (* const c_func_ptr)(int);
@@ -162,10 +162,10 @@
fusion::single_view<members &> sv_ref_ctx( that);
fusion::single_view<members *> sv_ptr_ctx(& that);
fusion::single_view<members const > sv_obj_c_ctx( that);
-fusion::single_view<members const&> sv_ref_c_ctx( that);
+fusion::single_view<members const &> sv_ref_c_ctx( that);
fusion::single_view<members const *> sv_ptr_c_ctx(& that);
-fusion::single_view<std::auto_ptr<members> const&> sv_spt_ctx(spt_that);
-fusion::single_view<std::auto_ptr<members const> const&> sv_spt_c_ctx(spt_that_c);
+fusion::single_view<std::auto_ptr<members> const &> sv_spt_ctx(spt_that);
+fusion::single_view< std::auto_ptr<members const> const &> sv_spt_c_ctx(spt_that_c);
derived derived_that;
@@ -176,10 +176,10 @@
fusion::single_view<derived &> sv_ref_d_ctx( derived_that);
fusion::single_view<derived *> sv_ptr_d_ctx(& derived_that);
fusion::single_view<derived const > sv_obj_c_d_ctx( derived_that);
-fusion::single_view<derived const&> sv_ref_c_d_ctx( derived_that);
+fusion::single_view<derived const &> sv_ref_c_d_ctx( derived_that);
fusion::single_view<derived const *> sv_ptr_c_d_ctx(& derived_that);
-fusion::single_view<std::auto_ptr<derived> const&> sv_spt_d_ctx(spt_derived_that);
-fusion::single_view< std::auto_ptr<derived const> const&> sv_spt_c_d_ctx(spt_derived_that_c);
+fusion::single_view<std::auto_ptr<derived> const &> sv_spt_d_ctx(spt_derived_that);
+fusion::single_view< std::auto_ptr<derived const> const &> sv_spt_c_d_ctx(spt_derived_that_c);
template <class Sequence>
void test_sequence_n(Sequence & seq, mpl::int_<0>)
@@ -195,15 +195,15 @@
// to be const with an explicit template argument. We can also request
// the function object to be pased by reference...
BOOST_TEST(const_(f)() == fusion::invoke<nullary_fobj const >(const_(f), seq ));
- BOOST_TEST(const_(f)() == fusion::invoke<nullary_fobj const&>(const_(f), const_(seq)));
+ BOOST_TEST(const_(f)() == fusion::invoke<nullary_fobj const &>(const_(f), const_(seq)));
nullary_fobj_nc nc_f;
// ...and we further ensure there is no copying in this case, using a
// noncopyable function object.
BOOST_TEST(nc_f () == fusion::invoke<nullary_fobj_nc &>(nc_f , seq ));
BOOST_TEST(nc_f () == fusion::invoke<nullary_fobj_nc &>(nc_f , const_(seq)));
- BOOST_TEST(const_(nc_f)() == fusion::invoke<nullary_fobj_nc const&>(const_(nc_f), seq ));
- BOOST_TEST(const_(nc_f)() == fusion::invoke<nullary_fobj_nc const&>(const_(nc_f), const_(seq)));
+ BOOST_TEST(const_(nc_f)() == fusion::invoke<nullary_fobj_nc const &>(const_(nc_f), seq ));
+ BOOST_TEST(const_(nc_f)() == fusion::invoke<nullary_fobj_nc const &>(const_(nc_f), const_(seq)));
// Builtin Functions
@@ -227,6 +227,7 @@
BOOST_TEST(that.nullary_c() == fusion::invoke(& members::nullary_c, fusion::join(sv_spt_c_ctx,seq)));
// Pointer to data member
+
BOOST_TEST(that.data == (fusion::invoke(& members::data, fusion::join(sv_obj_ctx,seq)) = that.data));
BOOST_TEST(that.data == (fusion::invoke(& members::data, fusion::join(sv_ref_ctx,seq)) = that.data));
BOOST_TEST(that.data == (fusion::invoke(& members::data, fusion::join(sv_ptr_ctx,seq)) = that.data));
@@ -253,13 +254,13 @@
BOOST_TEST(f(element1) == fusion::invoke(f , seq ));
BOOST_TEST(f(element1) == fusion::invoke(f , const_(seq)));
BOOST_TEST(const_(f)(element1) == fusion::invoke<fobj const >(const_(f), seq ));
- BOOST_TEST(const_(f)(element1) == fusion::invoke<fobj const&>(const_(f), const_(seq)));
+ BOOST_TEST(const_(f)(element1) == fusion::invoke<fobj const &>(const_(f), const_(seq)));
fobj_nc nc_f;
BOOST_TEST(nc_f(element1) == fusion::invoke<fobj_nc &>(nc_f, seq ));
BOOST_TEST(nc_f(element1) == fusion::invoke<fobj_nc &>(nc_f, const_(seq)));
- BOOST_TEST(const_(nc_f)(element1) == fusion::invoke<fobj_nc const&>(const_(nc_f), seq ));
- BOOST_TEST(const_(nc_f)(element1) == fusion::invoke<fobj_nc const&>(const_(nc_f), const_(seq)));
+ BOOST_TEST(const_(nc_f)(element1) == fusion::invoke<fobj_nc const &>(const_(nc_f), seq ));
+ BOOST_TEST(const_(nc_f)(element1) == fusion::invoke<fobj_nc const &>(const_(nc_f), const_(seq)));
BOOST_TEST(unary(element1) == fusion::invoke<int (&)(int)>(unary, seq));
BOOST_TEST(func_ptr1(element1) == fusion::invoke(func_ptr1, seq));
Modified: sandbox/SOC/2009/fusion/libs/fusion/test/functional/invoke_function_object.cpp
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/test/functional/invoke_function_object.cpp (original)
+++ sandbox/SOC/2009/fusion/libs/fusion/test/functional/invoke_function_object.cpp 2009-11-03 13:27:47 EST (Tue, 03 Nov 2009)
@@ -30,7 +30,7 @@
namespace fusion = boost::fusion;
template <typename T>
-inline T const& const_(T const& t)
+inline T const & const_(T const & t)
{
return t;
}
@@ -70,8 +70,8 @@
int operator()(int i, object &) { return 4 + i; }
int operator()(int i, object &) const { return 5 + i; }
- int operator()(int i, object const&) { return 6 + i; }
- int operator()(int i, object const&) const { return 7 + i; }
+ int operator()(int i, object const &) { return 6 + i; }
+ int operator()(int i, object const &) const { return 7 + i; }
int operator()(int i, object &, object_nc &) { return 10 + i; }
int operator()(int i, object &, object_nc &) const { return 11 + i; }
@@ -133,15 +133,15 @@
// to be const with an explicit template argument. We can also request
// the function object to be pased by reference...
BOOST_TEST(const_(f)() == fusion::invoke_function_object<nullary_fobj const >(const_(f), seq ));
- BOOST_TEST(const_(f)() == fusion::invoke_function_object<nullary_fobj const&>(const_(f), const_(seq)));
+ BOOST_TEST(const_(f)() == fusion::invoke_function_object<nullary_fobj const &>(const_(f), const_(seq)));
nullary_fobj_nc nc_f;
// ...and we further ensure there is no copying in this case, using a
// noncopyable function object.
BOOST_TEST(nc_f () == fusion::invoke_function_object<nullary_fobj_nc &>(nc_f , seq ));
BOOST_TEST(nc_f () == fusion::invoke_function_object<nullary_fobj_nc &>(nc_f , const_(seq)));
- BOOST_TEST(const_(nc_f)() == fusion::invoke_function_object<nullary_fobj_nc const&>(const_(nc_f), seq ));
- BOOST_TEST(const_(nc_f)() == fusion::invoke_function_object<nullary_fobj_nc const&>(const_(nc_f), const_(seq)));
+ BOOST_TEST(const_(nc_f)() == fusion::invoke_function_object<nullary_fobj_nc const &>(const_(nc_f), seq ));
+ BOOST_TEST(const_(nc_f)() == fusion::invoke_function_object<nullary_fobj_nc const &>(const_(nc_f), const_(seq)));
}
template <class Sequence>
@@ -151,13 +151,13 @@
BOOST_TEST(f(element1) == fusion::invoke_function_object(f , seq ));
BOOST_TEST(f(element1) == fusion::invoke_function_object(f , const_(seq)));
BOOST_TEST(const_(f)(element1) == fusion::invoke_function_object<fobj const >(const_(f), seq ));
- BOOST_TEST(const_(f)(element1) == fusion::invoke_function_object<fobj const&>(const_(f), const_(seq)));
+ BOOST_TEST(const_(f)(element1) == fusion::invoke_function_object<fobj const &>(const_(f), const_(seq)));
fobj_nc nc_f;
BOOST_TEST(nc_f(element1) == fusion::invoke_function_object<fobj_nc &>(nc_f, seq ));
BOOST_TEST(nc_f(element1) == fusion::invoke_function_object<fobj_nc &>(nc_f, const_(seq)));
- BOOST_TEST(const_(nc_f)(element1) == fusion::invoke_function_object<fobj_nc const&>(const_(nc_f), seq ));
- BOOST_TEST(const_(nc_f)(element1) == fusion::invoke_function_object<fobj_nc const&>(const_(nc_f), const_(seq)));
+ BOOST_TEST(const_(nc_f)(element1) == fusion::invoke_function_object<fobj_nc const &>(const_(nc_f), seq ));
+ BOOST_TEST(const_(nc_f)(element1) == fusion::invoke_function_object<fobj_nc const &>(const_(nc_f), const_(seq)));
}
template <class Sequence>
Modified: sandbox/SOC/2009/fusion/libs/fusion/test/functional/invoke_procedure.cpp
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/test/functional/invoke_procedure.cpp (original)
+++ sandbox/SOC/2009/fusion/libs/fusion/test/functional/invoke_procedure.cpp 2009-11-03 13:27:47 EST (Tue, 03 Nov 2009)
@@ -28,7 +28,7 @@
namespace fusion = boost::fusion;
template <typename T>
-inline T const& const_(T const& t)
+inline T const & const_(T const & t)
{
return t;
}
@@ -69,10 +69,10 @@
fusion::single_view<members &> sv_ref_ctx( that);
fusion::single_view<members *> sv_ptr_ctx(& that);
fusion::single_view<members const > sv_obj_c_ctx( that);
-fusion::single_view<members const&> sv_ref_c_ctx( that);
+fusion::single_view<members const &> sv_ref_c_ctx( that);
fusion::single_view<members const *> sv_ptr_c_ctx(& that);
-fusion::single_view<std::auto_ptr<members> const&> sv_spt_ctx(spt_that);
-fusion::single_view< std::auto_ptr<members const> const&> sv_spt_c_ctx(spt_that_c);
+fusion::single_view<std::auto_ptr<members> const &> sv_spt_ctx(spt_that);
+fusion::single_view< std::auto_ptr<members const> const &> sv_spt_c_ctx(spt_that_c);
struct fobj
{
@@ -84,8 +84,8 @@
int operator()(int & i, object &) { return i = 4; }
int operator()(int & i, object &) const { return i = 5; }
- int operator()(int & i, object const&) { return i = 6; }
- int operator()(int & i, object const&) const { return i = 7; }
+ int operator()(int & i, object const &) { return i = 6; }
+ int operator()(int & i, object const &) const { return i = 7; }
int operator()(int & i, object &, object_nc &) { return i = 10; }
int operator()(int & i, object &, object_nc &) const { return i = 11; }
@@ -104,7 +104,7 @@
int nullary() { return element1 = 16; }
int unary(int & i) { return i = 17; }
int binary1(int & i, object &) { return i = 18; }
-int binary2(int & i, object const&) { return i = 19; }
+int binary2(int & i, object const &) { return i = 19; }
typedef int (* func_ptr)(int &);
typedef int (* const c_func_ptr)(int &);
@@ -139,17 +139,17 @@
// Note: The function object is taken by value, so we request the copy
// to be const with an explicit template argument. We can also request
- // the function object to be passed by reference...
+ // the function object to be pased by reference...
COMPARE_EFFECT(const_(f)(), fusion::invoke_procedure<fobj const >(const_(f), seq ));
- COMPARE_EFFECT(const_(f)(), fusion::invoke_procedure<fobj const&>(const_(f), const_(seq)));
+ COMPARE_EFFECT(const_(f)(), fusion::invoke_procedure<fobj const &>(const_(f), const_(seq)));
fobj_nc nc_f;
// ...and we further ensure there is no copying in this case, using a
// noncopyable function object.
COMPARE_EFFECT(nc_f (), fusion::invoke_procedure<fobj_nc &>(nc_f , seq ));
COMPARE_EFFECT(nc_f (), fusion::invoke_procedure<fobj_nc &>(nc_f , const_(seq)));
- COMPARE_EFFECT(const_(nc_f)(), fusion::invoke_procedure<fobj_nc const&>(const_(nc_f), seq ));
- COMPARE_EFFECT(const_(nc_f)(), fusion::invoke_procedure<fobj_nc const&>(const_(nc_f), const_(seq)));
+ COMPARE_EFFECT(const_(nc_f)(), fusion::invoke_procedure<fobj_nc const &>(const_(nc_f), seq ));
+ COMPARE_EFFECT(const_(nc_f)(), fusion::invoke_procedure<fobj_nc const &>(const_(nc_f), const_(seq)));
// Builtin Functions
@@ -180,13 +180,13 @@
COMPARE_EFFECT(f(element1), fusion::invoke_procedure(f , seq ));
COMPARE_EFFECT(f(element1), fusion::invoke_procedure(f , const_(seq)));
COMPARE_EFFECT(const_(f)(element1), fusion::invoke_procedure<fobj const >(const_(f), seq ));
- COMPARE_EFFECT(const_(f)(element1), fusion::invoke_procedure<fobj const&>(const_(f), const_(seq)));
+ COMPARE_EFFECT(const_(f)(element1), fusion::invoke_procedure<fobj const &>(const_(f), const_(seq)));
fobj_nc nc_f;
COMPARE_EFFECT(nc_f(element1), fusion::invoke_procedure<fobj_nc &>(nc_f, seq ));
COMPARE_EFFECT(nc_f(element1), fusion::invoke_procedure<fobj_nc &>(nc_f, const_(seq)));
- COMPARE_EFFECT(const_(nc_f)(element1), fusion::invoke_procedure<fobj_nc const&>(const_(nc_f), seq ));
- COMPARE_EFFECT(const_(nc_f)(element1), fusion::invoke_procedure<fobj_nc const&>(const_(nc_f), const_(seq)));
+ COMPARE_EFFECT(const_(nc_f)(element1), fusion::invoke_procedure<fobj_nc const &>(const_(nc_f), seq ));
+ COMPARE_EFFECT(const_(nc_f)(element1), fusion::invoke_procedure<fobj_nc const &>(const_(nc_f), const_(seq)));
COMPARE_EFFECT(unary(element1), fusion::invoke_procedure<int (&)(int &)>(unary, seq));
COMPARE_EFFECT(func_ptr1(element1), fusion::invoke_procedure(func_ptr1, seq));
Modified: sandbox/SOC/2009/fusion/libs/fusion/test/functional/make_fused.cpp
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/test/functional/make_fused.cpp (original)
+++ sandbox/SOC/2009/fusion/libs/fusion/test/functional/make_fused.cpp 2009-11-03 13:27:47 EST (Tue, 03 Nov 2009)
@@ -27,13 +27,13 @@
typedef int result_type;
template <typename T0, typename T1>
- int operator()(T0 const& x, T1 const& y) const
+ int operator()(T0 const & x, T1 const & y) const
{
return 1+x-y;
}
template <typename T0, typename T1>
- int operator()(T0 const& x, T1 const& y)
+ int operator()(T0 const & x, T1 const & y)
{
return 2+x-y;
}
@@ -52,7 +52,7 @@
};
template <typename T>
-inline T const& const_(T const& t)
+inline T const & const_(T const & t)
{
return t;
}
@@ -72,14 +72,11 @@
BOOST_TEST(fusion::make_fused(ref(f_nc))(lv_vec) == 1);
BOOST_TEST(fusion::make_fused(cref(f_nc))(lv_vec) == 0);
- //TODO!!!
- /*
BOOST_TEST(fused_func(fusion::make_vector(2,'\003')) == 1);
BOOST_TEST(const_(fused_func)(fusion::make_vector(2,'\003')) == 0);
BOOST_TEST(fusion::make_fused(const_(f))(fusion::make_vector(2,'\003')) == 1);
BOOST_TEST(fusion::make_fused(ref(f_nc))(fusion::make_vector(2,'\003')) == 1);
BOOST_TEST(fusion::make_fused(cref(f_nc))(fusion::make_vector(2,'\003')) == 0);
- */
return boost::report_errors();
}
Modified: sandbox/SOC/2009/fusion/libs/fusion/test/functional/make_fused_function_object.cpp
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/test/functional/make_fused_function_object.cpp (original)
+++ sandbox/SOC/2009/fusion/libs/fusion/test/functional/make_fused_function_object.cpp 2009-11-03 13:27:47 EST (Tue, 03 Nov 2009)
@@ -37,13 +37,13 @@
};
template <typename T0, typename T1>
- int operator()(T0 const& x, T1 const& y) const
+ int operator()(T0 const & x, T1 const & y) const
{
return 1+x-y;
}
template <typename T0, typename T1>
- int operator()(T0 const& x, T1 const& y)
+ int operator()(T0 const & x, T1 const & y)
{
return 2+x-y;
}
@@ -62,7 +62,7 @@
};
template <typename T>
-inline T const& const_(T const& t)
+inline T const & const_(T const & t)
{
return t;
}
@@ -82,14 +82,11 @@
BOOST_TEST(fusion::make_fused_function_object(ref(f_nc))(lv_vec) == 1);
BOOST_TEST(fusion::make_fused_function_object(cref(f_nc))(lv_vec) == 0);
- //TODO!!!
- /*
BOOST_TEST(fused_func(fusion::make_vector(2,'\003')) == 1);
BOOST_TEST(const_(fused_func)(fusion::make_vector(2,'\003')) == 0);
BOOST_TEST(fusion::make_fused_function_object(const_(f))(fusion::make_vector(2,'\003')) == 1);
BOOST_TEST(fusion::make_fused_function_object(ref(f_nc))(fusion::make_vector(2,'\003')) == 1);
BOOST_TEST(fusion::make_fused_function_object(cref(f_nc))(fusion::make_vector(2,'\003')) == 0);
- */
return boost::report_errors();
}
Modified: sandbox/SOC/2009/fusion/libs/fusion/test/functional/make_fused_procedure.cpp
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/test/functional/make_fused_procedure.cpp (original)
+++ sandbox/SOC/2009/fusion/libs/fusion/test/functional/make_fused_procedure.cpp 2009-11-03 13:27:47 EST (Tue, 03 Nov 2009)
@@ -33,13 +33,13 @@
: Base
{
template <typename T0, typename T1>
- int operator()(T0 const& x, T1 const& y) const
+ int operator()(T0 const & x, T1 const & y) const
{
return effect = 1+x-y;
}
template <typename T0, typename T1>
- int operator()(T0 const& x, T1 const& y)
+ int operator()(T0 const & x, T1 const & y)
{
return effect = 2+x-y;
}
@@ -58,7 +58,7 @@
};
template <typename T>
-inline T const& const_(T const& t)
+inline T const & const_(T const & t)
{
return t;
}
@@ -78,14 +78,11 @@
CHECK_EFFECT(fusion::make_fused_procedure(ref(f_nc))(lv_vec), 1);
CHECK_EFFECT(fusion::make_fused_procedure(cref(f_nc))(lv_vec), 0);
- //TODO!!!
- /*
CHECK_EFFECT(fused_func(fusion::make_vector(2,'\003')), 1);
CHECK_EFFECT(const_(fused_func)(fusion::make_vector(2,'\003')), 0);
CHECK_EFFECT(fusion::make_fused_procedure(const_(f))(fusion::make_vector(2,'\003')), 1);
CHECK_EFFECT(fusion::make_fused_procedure(ref(f_nc))(fusion::make_vector(2,'\003')), 1);
CHECK_EFFECT(fusion::make_fused_procedure(cref(f_nc))(fusion::make_vector(2,'\003')), 0);
- */
return boost::report_errors();
}
Modified: sandbox/SOC/2009/fusion/libs/fusion/test/functional/make_unfused.cpp
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/test/functional/make_unfused.cpp (original)
+++ sandbox/SOC/2009/fusion/libs/fusion/test/functional/make_unfused.cpp 2009-11-03 13:27:47 EST (Tue, 03 Nov 2009)
@@ -41,20 +41,20 @@
struct result;
template <class Self, class Seq>
- struct result< Self(Seq) >
+ struct result< Self(Seq &) >
: mpl::if_< mpl::and_< fusion::result_of::empty<Seq>, RemoveNullary >,
boost::blank, mpl::identity<long> >::type
{ };
template <typename Seq>
- long operator()(Seq const& seq) const
+ long operator()(Seq const & seq) const
{
long state = 0;
return fusion::fold(seq, state, fold_op());
}
template < typename Seq >
- long operator()(Seq const& seq)
+ long operator()(Seq const & seq)
{
long state = 100;
return fusion::fold(seq, state, fold_op());
@@ -76,7 +76,7 @@
};
template <typename T>
-inline T const& const_(T const& t)
+inline T const & const_(T const & t)
{
return t;
}
Modified: sandbox/SOC/2009/fusion/libs/fusion/test/functional/unfused.cpp
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/test/functional/unfused.cpp (original)
+++ sandbox/SOC/2009/fusion/libs/fusion/test/functional/unfused.cpp 2009-11-03 13:27:47 EST (Tue, 03 Nov 2009)
@@ -37,20 +37,19 @@
{ };
template <typename Seq>
- long operator()(Seq const& seq) const
+ long operator()(Seq const & seq) const
{
long state = 0;
return fusion::fold(seq, state, fold_op());
}
template <typename Seq>
- long operator()(Seq const& seq)
+ long operator()(Seq const & seq)
{
long state = 100;
return fusion::fold(seq, state, fold_op());
}
-
private:
struct fold_op
@@ -81,10 +80,10 @@
test_func<noncopyable> f;
fusion::unfused< test_func<> > unfused_func;
- fusion::unfused< test_func<noncopyable>& > unfused_func_ref(f);
+ fusion::unfused< test_func<noncopyable> & > unfused_func_ref(f);
fusion::unfused< test_func<> const > unfused_func_c;
fusion::unfused< test_func<> > const unfused_func_c2;
- fusion::unfused< test_func<noncopyable> const& > unfused_func_c_ref(f);
+ fusion::unfused< test_func<noncopyable> const & > unfused_func_c_ref(f);
BOOST_TEST(unfused_func() == 100);
BOOST_TEST(unfused_func_ref() == 100);
Modified: sandbox/SOC/2009/fusion/libs/fusion/test/functional/unfused_typed.cpp
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/test/functional/unfused_typed.cpp (original)
+++ sandbox/SOC/2009/fusion/libs/fusion/test/functional/unfused_typed.cpp 2009-11-03 13:27:47 EST (Tue, 03 Nov 2009)
@@ -43,14 +43,14 @@
{ };
template <typename Seq>
- long operator()(Seq const& seq) const
+ long operator()(Seq const & seq) const
{
long state = 0;
return fusion::fold(seq, state, fold_op());
}
template < typename Seq >
- long operator()(Seq const& seq)
+ long operator()(Seq const & seq)
{
long state = 100;
return fusion::fold(seq, state, fold_op());
@@ -63,7 +63,7 @@
typedef long result_type;
template <typename T>
- long operator()(long value, T const& elem) const
+ long operator()(long value, T const & elem) const
{
return value + sizeof(T) * elem;
}
@@ -97,10 +97,10 @@
{
test_func<noncopyable> f;
fusion::unfused_typed< test_func<>, types0 > unfused_func;
- fusion::unfused_typed< test_func<noncopyable>&, types0 > unfused_func_ref(f);
+ fusion::unfused_typed< test_func<noncopyable> &, types0 > unfused_func_ref(f);
fusion::unfused_typed< test_func<> const, types0 > unfused_func_c;
fusion::unfused_typed< test_func<>, types0 > const unfused_func_c2;
- fusion::unfused_typed< test_func<noncopyable> const&, types0 > unfused_func_c_ref(f);
+ fusion::unfused_typed< test_func<noncopyable> const &, types0 > unfused_func_c_ref(f);
BOOST_TEST(unfused_func() == 100);
BOOST_TEST(unfused_func_ref() == 100);
@@ -113,10 +113,10 @@
{
test_func<noncopyable> f;
fusion::unfused_typed< test_func<>, types1 > unfused_func;
- fusion::unfused_typed< test_func<noncopyable>&, types1 > unfused_func_ref(f);
+ fusion::unfused_typed< test_func<noncopyable> &, types1 > unfused_func_ref(f);
fusion::unfused_typed< test_func<> const, types1 > unfused_func_c;
fusion::unfused_typed< test_func<>, types1 > const unfused_func_c2;
- fusion::unfused_typed< test_func<noncopyable> const&, types1 > unfused_func_c_ref(f);
+ fusion::unfused_typed< test_func<noncopyable> const &, types1 > unfused_func_c_ref(f);
long lvalue = 1;
BOOST_TEST_NO_VC71(unfused_func(lvalue) == 100);
@@ -135,10 +135,10 @@
{
test_func<noncopyable> f;
fusion::unfused_typed< test_func<>, types3 > unfused_func;
- fusion::unfused_typed< test_func<noncopyable>&, types3 > unfused_func_ref(f);
+ fusion::unfused_typed< test_func<noncopyable> &, types3 > unfused_func_ref(f);
fusion::unfused_typed< test_func<> const, types3 > unfused_func_c;
fusion::unfused_typed< test_func<>, types3 > const unfused_func_c2;
- fusion::unfused_typed< test_func<noncopyable> const&, types3 > unfused_func_c_ref(f);
+ fusion::unfused_typed< test_func<noncopyable> const &, types3 > unfused_func_c_ref(f);
long lvalue = 1;
static const long expected = 2*sizeof(int) + 7*sizeof(char);
Modified: sandbox/SOC/2009/fusion/libs/fusion/test/sequence/adapt_assoc_struct.cpp
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/test/sequence/adapt_assoc_struct.cpp (original)
+++ sandbox/SOC/2009/fusion/libs/fusion/test/sequence/adapt_assoc_struct.cpp 2009-11-03 13:27:47 EST (Tue, 03 Nov 2009)
@@ -16,7 +16,6 @@
#include <boost/fusion/sequence/intrinsic/at_key.hpp>
#include <boost/fusion/sequence/intrinsic/value_at_key.hpp>
#include <boost/fusion/sequence/io/out.hpp>
-#include <boost/fusion/algorithm/transformation/erase_key.hpp>
#include <boost/fusion/container/vector/vector.hpp>
#include <boost/fusion/container/list/list.hpp>
#include <boost/fusion/container/generation/make_vector.hpp>
@@ -28,12 +27,10 @@
#include <boost/fusion/sequence/comparison/greater.hpp>
#include <boost/fusion/sequence/comparison/greater_equal.hpp>
#include <boost/fusion/support/is_view.hpp>
-
#include <boost/mpl/assert.hpp>
#include <boost/mpl/not.hpp>
-#include <boost/static_assert.hpp>
#include <boost/type_traits/is_same.hpp>
-
+#include <boost/static_assert.hpp>
#include <iostream>
#include <string>
@@ -119,15 +116,13 @@
BOOST_MPL_ASSERT((result_of::has_key<ns::point, ns::y_member>));
BOOST_MPL_ASSERT((boost::mpl::not_<result_of::has_key<ns::point, ns::z_member> >));
- BOOST_MPL_ASSERT(( boost::is_same<result_of::value_at_key<ns::point, ns::x_member>::type, int> ));
- BOOST_MPL_ASSERT(( boost::is_same<result_of::value_at_key<ns::point, ns::y_member>::type, int> ));
+ BOOST_MPL_ASSERT((boost::is_same<result_of::value_at_key<ns::point, ns::x_member>::type, int>));
+ BOOST_MPL_ASSERT((boost::is_same<result_of::value_at_key<ns::point, ns::y_member>::type, int>));
ns::point p = {5, 3};
BOOST_TEST(at_key<ns::x_member>(p) == 5);
BOOST_TEST(at_key<ns::y_member>(p) == 3);
-
- erase_key<ns::x_member>(p);
}
return boost::report_errors();
Modified: sandbox/SOC/2009/fusion/libs/fusion/test/sequence/adapt_struct.cpp
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/test/sequence/adapt_struct.cpp (original)
+++ sandbox/SOC/2009/fusion/libs/fusion/test/sequence/adapt_struct.cpp 2009-11-03 13:27:47 EST (Tue, 03 Nov 2009)
@@ -23,10 +23,8 @@
#include <boost/fusion/sequence/comparison/greater.hpp>
#include <boost/fusion/sequence/comparison/greater_equal.hpp>
#include <boost/fusion/support/is_view.hpp>
-
#include <boost/mpl/assert.hpp>
#include <boost/static_assert.hpp>
-
#include <iostream>
#include <string>
@@ -107,12 +105,11 @@
{ // begin/end
using namespace boost::fusion;
- using boost::is_same;
typedef result_of::begin<s>::type b;
typedef result_of::end<s>::type e;
// this fails
- BOOST_MPL_ASSERT((is_same<result_of::next<b>::type, e>));
+ BOOST_MPL_ASSERT((boost::is_same<result_of::next<b>::type, e>));
}
return boost::report_errors();
Modified: sandbox/SOC/2009/fusion/libs/fusion/test/sequence/as_list.cpp
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/test/sequence/as_list.cpp (original)
+++ sandbox/SOC/2009/fusion/libs/fusion/test/sequence/as_list.cpp 2009-11-03 13:27:47 EST (Tue, 03 Nov 2009)
@@ -1,7 +1,7 @@
/*=============================================================================
Copyright (c) 2001-2006 Joel de Guzman
- 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)
==============================================================================*/
#include <boost/detail/lightweight_test.hpp>
@@ -27,7 +27,7 @@
{
vector<> empty;
- std::cout << as_list(make_vector(1, 1.23, "harru")) << std::endl;
+ std::cout << as_list(make_vector(1, 1.23, "harru")) << std::endl;
std::cout << as_list(push_back(empty, 999)) << std::endl;
BOOST_TEST(as_list(make_vector(1, 1.23, "harru")) == make_vector(1, 1.23, std::string("harru")));
@@ -36,7 +36,7 @@
{
std::cout << as_list(mpl::vector_c<int, 1, 2, 3, 4, 5>()) << std::endl;
- BOOST_TEST((as_list(mpl::vector_c<int, 1, 2, 3, 4, 5>())
+ BOOST_TEST((as_list(mpl::vector_c<int, 1, 2, 3, 4, 5>())
== mpl::vector_c<int, 1, 2, 3, 4, 5>()));
}
Modified: sandbox/SOC/2009/fusion/libs/fusion/test/sequence/as_map.cpp
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/test/sequence/as_map.cpp (original)
+++ sandbox/SOC/2009/fusion/libs/fusion/test/sequence/as_map.cpp 2009-11-03 13:27:47 EST (Tue, 03 Nov 2009)
@@ -1,7 +1,7 @@
/*=============================================================================
Copyright (c) 2001-2006 Joel de Guzman
- 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)
==============================================================================*/
#include <boost/detail/lightweight_test.hpp>
@@ -46,7 +46,7 @@
// test conversion
typedef map<
pair<int, char>
- , pair<double, std::string> >
+ , pair<double, std::string> >
map_type;
map_type m(make_vector(make_pair<int>('X'), make_pair<double>("Men")));
Modified: sandbox/SOC/2009/fusion/libs/fusion/test/sequence/as_set.cpp
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/test/sequence/as_set.cpp (original)
+++ sandbox/SOC/2009/fusion/libs/fusion/test/sequence/as_set.cpp 2009-11-03 13:27:47 EST (Tue, 03 Nov 2009)
@@ -1,7 +1,7 @@
/*=============================================================================
Copyright (c) 2001-2006 Joel de Guzman
- 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)
==============================================================================*/
#include <boost/detail/lightweight_test.hpp>
@@ -31,7 +31,7 @@
vector<> empty;
std::cout << as_set(make_list(1, 1.23, "harru")) << std::endl;
std::cout << as_set(push_back(empty, 999)) << std::endl;
-
+
BOOST_TEST(as_list(as_set(make_list(1, 1.23, "harru")))
== make_list(1, 1.23, std::string("harru")));
BOOST_TEST(as_list(as_set(push_back(empty, 999)))
Modified: sandbox/SOC/2009/fusion/libs/fusion/test/sequence/as_vector.cpp
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/test/sequence/as_vector.cpp (original)
+++ sandbox/SOC/2009/fusion/libs/fusion/test/sequence/as_vector.cpp 2009-11-03 13:27:47 EST (Tue, 03 Nov 2009)
@@ -1,7 +1,7 @@
/*=============================================================================
Copyright (c) 2001-2006 Joel de Guzman
- 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)
==============================================================================*/
#include <boost/detail/lightweight_test.hpp>
@@ -30,17 +30,17 @@
vector<> empty;
std::cout << as_vector(make_list(1, 1.23, "harru")) << std::endl;
std::cout << as_vector(push_back(empty, 999)) << std::endl;
-
+
BOOST_TEST(as_vector(make_list(1, 1.23, "harru")) == make_list(1, 1.23, std::string("harru")));
BOOST_TEST(as_vector(push_back(empty, 999)) == push_back(empty, 999));
}
{
std::cout << as_vector(mpl::vector_c<int, 1, 2, 3, 4, 5>()) << std::endl;
- BOOST_TEST((as_vector(mpl::vector_c<int, 1, 2, 3, 4, 5>())
+ BOOST_TEST((as_vector(mpl::vector_c<int, 1, 2, 3, 4, 5>())
== mpl::vector_c<int, 1, 2, 3, 4, 5>()));
}
-
+
{
// test conversion
vector<int, std::string> v(make_list(123, "harru"));
Modified: sandbox/SOC/2009/fusion/libs/fusion/test/sequence/boost_tuple.cpp
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/test/sequence/boost_tuple.cpp (original)
+++ sandbox/SOC/2009/fusion/libs/fusion/test/sequence/boost_tuple.cpp 2009-11-03 13:27:47 EST (Tue, 03 Nov 2009)
@@ -12,6 +12,7 @@
#include <boost/fusion/sequence/intrinsic/front.hpp>
#include <boost/fusion/sequence/intrinsic/back.hpp>
#include <boost/fusion/sequence/io/out.hpp>
+#include <boost/fusion/iterator/distance.hpp>
#include <boost/fusion/container/vector/vector.hpp>
#include <boost/fusion/container/list/list.hpp>
#include <boost/fusion/container/generation/make_vector.hpp>
@@ -82,6 +83,16 @@
list<int, std::string> l(boost::tuples::make_tuple(123, "Hola!!!"));
l = boost::tuples::make_tuple(123, "Hola!!!");
}
+
+ {
+ // test from Ticket #1601, submitted by Shunsuke Sogame
+ // expanded by Stjepan Rajko
+ boost::tuple<int, char> t(3, 'a');
+
+ BOOST_TEST(0u == distance(begin(t), begin(t)));
+ BOOST_TEST(1u == distance(begin(t), next(begin(t))));
+ BOOST_TEST(2u == distance(begin(t), end(t)));
+ }
return boost::report_errors();
}
Modified: sandbox/SOC/2009/fusion/libs/fusion/test/sequence/cons.cpp
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/test/sequence/cons.cpp (original)
+++ sandbox/SOC/2009/fusion/libs/fusion/test/sequence/cons.cpp 2009-11-03 13:27:47 EST (Tue, 03 Nov 2009)
@@ -2,7 +2,7 @@
Copyright (c) 2005 Joel de Guzman
Copyright (c) 2005 Eric Niebler
- 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)
==============================================================================*/
#include <string>
@@ -32,7 +32,7 @@
std::cout << tuple_delimiter(", ");
/// Testing cons
-
+
{
std::string hello("hello");
cons<int, cons<std::string> > ns =
@@ -59,7 +59,7 @@
);
BOOST_TEST(
- make_cons(123, make_cons("hello")) ==
+ make_cons(123, make_cons("hello")) ==
make_vector(123, std::string("hello"))
);
}
@@ -75,7 +75,7 @@
std::cout << nf << std::endl;
std::cout << filter_if<is_same<boost::mpl::_, int> >(nf) << std::endl;
}
-
+
{
int i = 3;
cons<int&> tie(cons_tie(i));
Modified: sandbox/SOC/2009/fusion/libs/fusion/test/sequence/copy.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/test/sequence/copy.hpp (original)
+++ sandbox/SOC/2009/fusion/libs/fusion/test/sequence/copy.hpp 2009-11-03 13:27:47 EST (Tue, 03 Nov 2009)
@@ -2,7 +2,7 @@
Copyright (c) 1999-2003 Jaakko Jarvi
Copyright (c) 2001-2006 Joel de Guzman
- 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)
==============================================================================*/
#include <boost/detail/lightweight_test.hpp>
Modified: sandbox/SOC/2009/fusion/libs/fusion/test/sequence/deduce_sequence.cpp
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/test/sequence/deduce_sequence.cpp (original)
+++ sandbox/SOC/2009/fusion/libs/fusion/test/sequence/deduce_sequence.cpp 2009-11-03 13:27:47 EST (Tue, 03 Nov 2009)
@@ -10,11 +10,11 @@
#include <boost/fusion/mpl.hpp>
#include <boost/detail/lightweight_test.hpp>
-#include <boost/config.hpp>
#include <boost/mpl/equal.hpp>
-#include <boost/static_assert.hpp>
+
#include <boost/ref.hpp>
+using boost::is_same;
using boost::reference_wrapper;
using boost::fusion::traits::deduce;
using boost::fusion::traits::deduce_sequence;
@@ -26,34 +26,26 @@
{
typename deduce_sequence<Args>::type fsq_args;
- test_seq_ctor(Args const& args)
- : fsq_args(args)
- {}
+ test_seq_ctor(Args const & args)
+ : fsq_args(args)
+ { }
};
-#define TEST_SAME_TYPE(a,b) BOOST_STATIC_ASSERT(( boost::is_same< a, b >::value ))
-#define TEST_SAME_ELEMENTS(a,b) BOOST_STATIC_ASSERT(( boost::mpl::equal< a, b >::type::value ))
+#define TEST_SAME_TYPE(a,b) BOOST_TEST(( is_same< a, b >::value ))
+#define TEST_SAME_ELEMENTS(a,b) BOOST_TEST(( boost::mpl::equal< a, b >::type::value ))
-typedef fusion::vector<int, int const, int &, int const&> args1;
-#ifdef BOOST_NO_RVALUE_REFERENCES
+typedef fusion::vector<int, int const, int &, int const &> args1;
typedef fusion::vector<int, int, int &, int> storable1;
-#else
-typedef fusion::vector<int, int, int &, int const&> storable1;
-#endif
template struct test_seq_ctor<args1>;
-typedef fusion::vector< reference_wrapper<int>&, reference_wrapper<int const>&,
- reference_wrapper<int> const&, reference_wrapper<int const> const& > args2;
-typedef fusion::vector<int &, int const&, int &, int const&> storable2;
+typedef fusion::vector< reference_wrapper<int> &, reference_wrapper<int const> &,
+ reference_wrapper<int> const &, reference_wrapper<int const> const & > args2;
+typedef fusion::vector<int &, int const &, int &, int const &> storable2;
template struct test_seq_ctor<args2>;
-typedef fusion::vector<int *, int const *, int const * const, int const * &, int const * const&> args3;
-#ifdef BOOST_NO_RVALUE_REFERENCES
+typedef fusion::vector<int *, int const *, int const * const, int const * &, int const * const &> args3;
typedef fusion::vector<int *, int const *, int const *, int const * &, int const * > storable3;
-#else
-typedef fusion::vector<int *, int const *, int const *, int const * &, int const * const&> storable3;
-#endif
template struct test_seq_ctor<args3>;
typedef fusion::vector<int(&)[2], int const(&)[2]> args4;
@@ -62,37 +54,29 @@
int main()
{
- //TODO !!!
- /*
- TEST_SAME_TYPE(deduce<int &>::type, int &);
- TEST_SAME_TYPE(deduce<int volatile &>::type, int volatile &);
+ //TODO
+ //TEST_SAME_TYPE(deduce<int &>::type, int &);
+ //TEST_SAME_TYPE(deduce<int volatile &>::type, int volatile &);
TEST_SAME_TYPE(deduce<int>::type, int);
-#ifdef BOOST_NO_RVALUE_REFERENCES
- TEST_SAME_TYPE(deduce<int const&>::type, int);
- TEST_SAME_TYPE(deduce<int const volatile&>::type, int);
-#else
- TEST_SAME_TYPE(deduce<int const&>::type, int const&);
- TEST_SAME_TYPE(deduce<int const volatile&>::type, int const volatile&);
-#endif
-
- TEST_SAME_TYPE(deduce< reference_wrapper<int>& >::type, int &);
- TEST_SAME_TYPE(deduce< reference_wrapper<int const>& >::type, int const&);
- TEST_SAME_TYPE(deduce< reference_wrapper<int> const& >::type, int &);
- TEST_SAME_TYPE(deduce< reference_wrapper<int const> const& >::type, int const&);
+ TEST_SAME_TYPE(deduce<int const &>::type, int);
+ TEST_SAME_TYPE(deduce<int const volatile &>::type, int);
+
+ TEST_SAME_TYPE(deduce< reference_wrapper<int> & >::type, int &);
+ TEST_SAME_TYPE(deduce< reference_wrapper<int const> & >::type, int const &);
+ TEST_SAME_TYPE(deduce< reference_wrapper<int> const & >::type, int &);
+ TEST_SAME_TYPE(deduce< reference_wrapper<int const> const & >::type, int const &);
TEST_SAME_TYPE(deduce< int(&)[2] >::type, int(&)[2]);
TEST_SAME_TYPE(deduce< int const (&)[2] >::type, int const (&)[2]);
TEST_SAME_TYPE(deduce< int volatile (&)[2] >::type, int volatile (&)[2]);
TEST_SAME_TYPE(deduce< int const volatile (&)[2] >::type, int const volatile (&)[2]);
- TEST_SAME_TYPE(deduce< void(*&)() >::type, void(*)());
-
- TEST_SAME_ELEMENTS(deduce_sequence<args1>::type,storable1);
- TEST_SAME_ELEMENTS(deduce_sequence<args2>::type,storable2);
- TEST_SAME_ELEMENTS(deduce_sequence<args3>::type,storable3);
+ //TODO
+ //TEST_SAME_ELEMENTS(deduce_sequence<args1>::type,storable1);
+ //TEST_SAME_ELEMENTS(deduce_sequence<args2>::type,storable2);
+ //TEST_SAME_ELEMENTS(deduce_sequence<args3>::type,storable3);
TEST_SAME_ELEMENTS(deduce_sequence<args4>::type,storable4);
- */
return boost::report_errors();
}
Modified: sandbox/SOC/2009/fusion/libs/fusion/test/sequence/filter_view.cpp
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/test/sequence/filter_view.cpp (original)
+++ sandbox/SOC/2009/fusion/libs/fusion/test/sequence/filter_view.cpp 2009-11-03 13:27:47 EST (Tue, 03 Nov 2009)
@@ -1,29 +1,32 @@
/*=============================================================================
Copyright (c) 2001-2006 Joel de Guzman
- 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)
==============================================================================*/
#include <boost/detail/lightweight_test.hpp>
-
+#include <boost/fusion/container/vector/vector.hpp>
+#include <boost/fusion/adapted/mpl.hpp>
#include <boost/fusion/sequence/io/out.hpp>
#include <boost/fusion/sequence/comparison/equal_to.hpp>
#include <boost/fusion/view/filter_view/filter_view.hpp>
-#include <boost/fusion/container/vector/vector.hpp>
#include <boost/fusion/container/generation/make_vector.hpp>
-#include <boost/fusion/adapted/mpl.hpp>
#include <boost/fusion/sequence/intrinsic/size.hpp>
-#include <boost/fusion/iterator/deref.hpp>
-
+#include <boost/fusion/container/map.hpp>
+#include <boost/fusion/sequence/intrinsic/has_key.hpp>
+#include <boost/fusion/sequence/intrinsic/begin.hpp>
+#include <boost/fusion/iterator/key_of.hpp>
+#include <boost/fusion/iterator/value_of_data.hpp>
+#include <boost/fusion/iterator/deref_data.hpp>
#include <boost/type_traits/is_class.hpp>
#include <boost/type_traits/is_same.hpp>
-#include <boost/static_assert.hpp>
#include <boost/mpl/arg.hpp>
#include <boost/mpl/not.hpp>
#include <boost/mpl/vector_c.hpp>
#include <boost/mpl/less.hpp>
#include <boost/mpl/bool.hpp>
#include <boost/mpl/assert.hpp>
+#include <boost/static_assert.hpp>
struct X
{
@@ -81,7 +84,7 @@
// $$$ JDG $$$ For some obscure reason, EDG based compilers
// (e.g. comeau 4.3.3, intel) have problems with this.
// vc7.1 and g++ are ok. The errors from comeau are useless.
-
+
#ifndef __EDG_VERSION__
typedef vector_c<int, 5, 1, 2, 3, 6, 0, -1> vector_type;
typedef filter_view<vector_type const, less<_, int_<3> > > filter_view_type;
@@ -102,6 +105,23 @@
BOOST_MPL_ASSERT((result_of::equal_to<result_of::begin<filter_view_type>::type, result_of::end<filter_view_type>::type>));
}
+ {
+ typedef map<pair<void, int>, pair<double, std::string> > map_type;
+ map_type m(make_pair<void>(0), make_pair<double>("Bond"));
+
+ typedef filter_view<map_type const, is_same<_, pair<double, std::string> > > filter_view_type;
+ filter_view_type f(m);
+
+ BOOST_MPL_ASSERT((result_of::has_key<filter_view_type, double>::type));
+ BOOST_MPL_ASSERT_NOT((result_of::has_key<filter_view_type, void>::type));
+
+ BOOST_MPL_ASSERT((is_same<result_of::key_of<result_of::begin<filter_view_type>::type>::type, double>));
+ BOOST_MPL_ASSERT((is_same<result_of::value_of_data<result_of::begin<filter_view_type>::type>::type, std::string>));
+
+ std::cout << deref_data(begin(f)) << std::endl;
+ BOOST_TEST((deref_data(begin(f)) == "Bond"));
+ }
+
return boost::report_errors();
}
Modified: sandbox/SOC/2009/fusion/libs/fusion/test/sequence/iterator.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/test/sequence/iterator.hpp (original)
+++ sandbox/SOC/2009/fusion/libs/fusion/test/sequence/iterator.hpp 2009-11-03 13:27:47 EST (Tue, 03 Nov 2009)
@@ -1,7 +1,7 @@
/*=============================================================================
Copyright (c) 2001-2006 Joel de Guzman
- 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)
==============================================================================*/
#include <string>
@@ -23,7 +23,6 @@
void test()
{
using namespace boost::fusion;
- using namespace boost;
{ // Testing deref, next, prior, begin, end
@@ -50,7 +49,7 @@
*i = 3;
BOOST_TEST(*i == 3);
- BOOST_TEST(&*i == &deref(begin(v)));
+ BOOST_TEST(&*i == &at_c<0>(v));
// prove that it is mutable
*i = 987;
@@ -97,7 +96,7 @@
typedef result_of::next<begin_type>::type i1;
typedef result_of::next<i1>::type i2;
- BOOST_STATIC_ASSERT((is_same<end_type, i2>::value));
+ BOOST_STATIC_ASSERT((boost::is_same<end_type, i2>::value));
}
{ // testing deref, next, prior, begin, end
@@ -113,7 +112,7 @@
BOOST_TEST(*next(next(next(i))) == s);
next(next(next(next(i)))); // end
-
+
#ifdef FUSION_TEST_FAIL
next(next(next(next(next(i))))); // past the end: must not compile
#endif
@@ -130,7 +129,7 @@
*i = 3;
BOOST_TEST(*i == 3);
- BOOST_TEST(*i == *begin(t));
+ BOOST_TEST(*i == at_c<0>(t));
}
{ // Testing distance
@@ -152,26 +151,22 @@
typedef result_of::next<i0>::type i1;
typedef result_of::next<result_of::begin<const seq_type>::type>::type i2;
-//value_at<>/at<>/... are valid for lists and cons!
-//#ifndef FUSION_NO_RANDOM_ACCESS_SEQUENCE
BOOST_STATIC_ASSERT((
- is_same<result_of::value_at_c<seq_type, 0>::type, int>::value));
+ boost::is_same<result_of::value_at_c<seq_type, 0>::type, int>::value));
BOOST_STATIC_ASSERT((
- is_same<result_of::value_at_c<seq_type, 1>::type, char&>::value));
-//#endif
+ boost::is_same<result_of::value_at_c<seq_type, 1>::type, char&>::value));
BOOST_STATIC_ASSERT((
- is_same<traits::category_of<i0>::type, FUSION_TRAVERSAL_TAG>::value));
+ boost::is_same<traits::category_of<i0>::type, FUSION_TRAVERSAL_TAG>::value));
- BOOST_STATIC_ASSERT((is_same<result_of::deref<i0>::type, int&>::value));
- BOOST_STATIC_ASSERT((is_same<result_of::deref<i1>::type, char&>::value));
+ BOOST_STATIC_ASSERT((boost::is_same<result_of::deref<i0>::type, int&>::value));
+ BOOST_STATIC_ASSERT((boost::is_same<result_of::deref<i1>::type, char&>::value));
- BOOST_STATIC_ASSERT((is_same<result_of::value_of<i0>::type, int>::value));
- BOOST_STATIC_ASSERT((is_same<result_of::value_of<i1>::type, char&>::value));
+ BOOST_STATIC_ASSERT((boost::is_same<result_of::value_of<i0>::type, int>::value));
+ BOOST_STATIC_ASSERT((boost::is_same<result_of::value_of<i1>::type, char&>::value));
}
-//#ifndef FUSION_NO_RANDOM_ACCESS_SEQUENCE
{ // Testing advance
typedef FUSION_SEQUENCE<int, char, double, char const*> seq_type;
@@ -194,7 +189,6 @@
BOOST_TEST(&*advance_c<2>(begin(t)) == &at_c<2>(t));
BOOST_TEST(&*advance_c<3>(begin(t)) == &at_c<3>(t));
}
-//#endif
}
Modified: sandbox/SOC/2009/fusion/libs/fusion/test/sequence/iterator_range.cpp
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/test/sequence/iterator_range.cpp (original)
+++ sandbox/SOC/2009/fusion/libs/fusion/test/sequence/iterator_range.cpp 2009-11-03 13:27:47 EST (Tue, 03 Nov 2009)
@@ -1,21 +1,28 @@
/*=============================================================================
Copyright (c) 2001-2006 Joel de Guzman
- 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)
==============================================================================*/
#include <boost/detail/lightweight_test.hpp>
+#include <boost/fusion/container/map.hpp>
+#include <boost/fusion/container/vector/vector.hpp>
+#include <boost/fusion/container/generation/make_vector.hpp>
+#include <boost/fusion/view/iterator_range/iterator_range.hpp>
#include <boost/fusion/sequence/comparison/equal_to.hpp>
#include <boost/fusion/sequence/io/out.hpp>
#include <boost/fusion/sequence/intrinsic/size.hpp>
-#include <boost/fusion/view/iterator_range/iterator_range.hpp>
-#include <boost/fusion/container/vector/vector.hpp>
-#include <boost/fusion/container/generation/make_vector.hpp>
+#include <boost/fusion/sequence/intrinsic/begin.hpp>
+#include <boost/fusion/sequence/intrinsic/has_key.hpp>
+#include <boost/fusion/iterator/advance.hpp>
+#include <boost/fusion/iterator/key_of.hpp>
+#include <boost/fusion/iterator/value_of_data.hpp>
+#include <boost/fusion/iterator/deref_data.hpp>
#include <boost/fusion/adapted/mpl.hpp>
-
#include <boost/mpl/vector_c.hpp>
#include <boost/mpl/begin.hpp>
#include <boost/mpl/next.hpp>
+#include <boost/mpl/assert.hpp>
#include <boost/static_assert.hpp>
int
@@ -33,11 +40,16 @@
vector_type vec(1, 'x', 3.3, s);
{
- typedef result_of::next<result_of::begin<vector_type>::type>::type i1t;
- typedef result_of::prior<result_of::end<vector_type>::type>::type i3t;
-
- i1t i1(next(begin(vec)));
- i3t i3(prior(end(vec)));
+ //TODO
+ //typedef vector_iterator<vector_type, 1> i1t;
+ //typedef vector_iterator<vector_type, 3> i3t;
+ typedef result_of::advance_c<result_of::begin<vector_type>::type,1>::type i1t;
+ typedef result_of::advance_c<result_of::begin<vector_type>::type,3>::type i3t;
+
+ //i1t i1(vec);
+ //i3t i3(vec);
+ i1t i1=advance_c<1>(begin(vec));
+ i3t i3=advance_c<3>(begin(vec));
typedef iterator_range<i1t, i3t> slice_t;
slice_t slice(i1, i3);
@@ -47,11 +59,16 @@
}
{
- typedef result_of::begin<vector_type>::type i1t;
- typedef result_of::begin<vector_type>::type i3t;
-
- i1t i1(begin(vec));
- i3t i3(begin(vec));
+ //TODO
+ //typedef vector_iterator<vector_type, 0> i1t;
+ //typedef vector_iterator<vector_type, 0> i3t;
+ typedef result_of::advance_c<result_of::begin<vector_type>::type,0>::type i1t;
+ typedef result_of::advance_c<result_of::begin<vector_type>::type,0>::type i3t;
+
+ //i1t i1(vec);
+ //i3t i3(vec);
+ i1t i1(advance_c<0>(begin(vec)));
+ i3t i3(advance_c<0>(begin(vec)));
typedef iterator_range<i1t, i3t> slice_t;
slice_t slice(i1, i3);
@@ -70,7 +87,7 @@
it1 f;
it3 l;
-
+
typedef iterator_range<it1, it3> slice_t;
slice_t slice(f, l);
std::cout << slice << std::endl;
@@ -78,6 +95,31 @@
BOOST_STATIC_ASSERT(result_of::size<slice_t>::value == 2);
}
+ {
+ typedef map<pair<void,std::string>, pair<double,char>,pair<void*, int> > map_type;
+ map_type m(make_pair<void>("foo"), make_pair<double>('x'), make_pair<void*>(2));
+
+ typedef iterator_range<
+ result_of::begin<map_type>::type
+ , result_of::advance_c<result_of::begin<map_type>::type,2>::type
+ > range_type;
+ range_type r(begin(m), advance_c<2>(begin(m)));
+
+ BOOST_MPL_ASSERT((result_of::has_key<range_type, void>::type));
+ BOOST_MPL_ASSERT((result_of::has_key<range_type, double>::type));
+
+ BOOST_MPL_ASSERT((boost::is_same<result_of::key_of<result_of::begin<range_type>::type>::type, void>));
+ BOOST_MPL_ASSERT((boost::is_same<result_of::key_of<result_of::next<result_of::begin<range_type>::type>::type>::type, double>));
+
+ BOOST_MPL_ASSERT((boost::is_same<result_of::value_of_data<result_of::begin<range_type>::type>::type, std::string>));
+ BOOST_MPL_ASSERT((boost::is_same<result_of::value_of_data<result_of::next<result_of::begin<range_type>::type>::type>::type, char>));
+
+ std::cout << deref_data(begin(r)) << std::endl;
+ std::cout << deref_data(boost::fusion::next(begin(r))) << std::endl;
+ BOOST_TEST((deref_data(begin(r)) == "foo"));
+ BOOST_TEST((deref_data(boost::fusion::next(begin(r))) == 'x'));
+ }
+
return boost::report_errors();
}
Modified: sandbox/SOC/2009/fusion/libs/fusion/test/sequence/joint_view.cpp
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/test/sequence/joint_view.cpp (original)
+++ sandbox/SOC/2009/fusion/libs/fusion/test/sequence/joint_view.cpp 2009-11-03 13:27:47 EST (Tue, 03 Nov 2009)
@@ -1,18 +1,26 @@
/*=============================================================================
Copyright (c) 2001-2006 Joel de Guzman
- 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)
==============================================================================*/
#include <boost/detail/lightweight_test.hpp>
+#include <boost/fusion/container/map.hpp>
+#include <boost/fusion/container/set.hpp>
#include <boost/fusion/container/vector/vector.hpp>
#include <boost/fusion/view/joint_view/joint_view.hpp>
#include <boost/fusion/sequence/io/out.hpp>
#include <boost/fusion/sequence/comparison/equal_to.hpp>
#include <boost/fusion/container/generation/make_vector.hpp>
#include <boost/fusion/sequence/intrinsic/at.hpp>
-#include <boost/fusion/iterator/deref.hpp>
-#include <boost/mpl/vector_c.hpp>
+#include <boost/fusion/sequence/intrinsic/has_key.hpp>
+#include <boost/fusion/sequence/intrinsic/begin.hpp>
+#include <boost/fusion/iterator/next.hpp>
+#include <boost/fusion/iterator/key_of.hpp>
+#include <boost/fusion/iterator/value_of.hpp>
+#include <boost/fusion/iterator/deref_data.hpp>
+#include <boost/mpl/assert.hpp>
+#include <string>
struct X
{
@@ -140,6 +148,40 @@
}
}
+ {
+ typedef map<pair<void,int> > map_type;
+ map_type m(make_pair<void>(0));
+
+ typedef set<std::string, float> set_type;
+ set_type s("foo", 1.3f);
+
+ typedef joint_view<map_type, set_type> joint_view_type;
+ joint_view_type j(m,s);
+
+ BOOST_MPL_ASSERT((result_of::has_key<joint_view_type, void>::type));
+ BOOST_MPL_ASSERT((result_of::has_key<joint_view_type, std::string>::type));
+ BOOST_MPL_ASSERT((result_of::has_key<joint_view_type, float>::type));
+
+ BOOST_MPL_ASSERT((boost::is_same<result_of::key_of<result_of::begin<joint_view_type>::type>::type, void>));
+ BOOST_MPL_ASSERT((boost::is_same<result_of::key_of<result_of::next<result_of::begin<joint_view_type>::type>::type>::type, std::string>));
+ BOOST_MPL_ASSERT((boost::is_same<
+ result_of::key_of<result_of::next<result_of::next<result_of::begin<joint_view_type>::type>::type>::type>::type
+ , float>));
+
+ BOOST_MPL_ASSERT((boost::is_same<result_of::value_of_data<result_of::begin<joint_view_type>::type>::type, int>));
+ BOOST_MPL_ASSERT((boost::is_same<result_of::value_of_data<result_of::next<result_of::begin<joint_view_type>::type>::type>::type, std::string>));
+ BOOST_MPL_ASSERT((boost::is_same<
+ result_of::value_of_data<result_of::next<result_of::next<result_of::begin<joint_view_type>::type>::type>::type>::type
+ , float>));
+
+ std::cout << deref_data(begin(j)) << std::endl;
+ std::cout << deref_data(boost::fusion::next(begin(j))) << std::endl;
+ std::cout << deref_data(boost::fusion::next(boost::fusion::next(begin(j)))) << std::endl;
+ BOOST_TEST((deref_data(begin(j)) == 0));
+ BOOST_TEST((deref_data(boost::fusion::next(begin(j))) == "foo"));
+ BOOST_TEST((deref_data(boost::fusion::next(boost::fusion::next(begin(j)))) == 1.3f));
+ }
+
return boost::report_errors();
}
Modified: sandbox/SOC/2009/fusion/libs/fusion/test/sequence/list_iterator.cpp
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/test/sequence/list_iterator.cpp (original)
+++ sandbox/SOC/2009/fusion/libs/fusion/test/sequence/list_iterator.cpp 2009-11-03 13:27:47 EST (Tue, 03 Nov 2009)
@@ -1,14 +1,14 @@
/*=============================================================================
Copyright (c) 2001-2006 Joel de Guzman
- 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)
==============================================================================*/
#include <boost/fusion/container/list/list.hpp>
#define FUSION_SEQUENCE list
-#define FUSION_NO_RANDOM_ACCESS_SEQUENCE
-#define FUSION_TRAVERSAL_TAG bidirectional_traversal_tag
+#define FUSION_NO_PRIOR
+#define FUSION_TRAVERSAL_TAG forward_traversal_tag
#include "./iterator.hpp"
int
Modified: sandbox/SOC/2009/fusion/libs/fusion/test/sequence/list_misc.cpp
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/test/sequence/list_misc.cpp (original)
+++ sandbox/SOC/2009/fusion/libs/fusion/test/sequence/list_misc.cpp 2009-11-03 13:27:47 EST (Tue, 03 Nov 2009)
@@ -9,6 +9,7 @@
#include <boost/fusion/container/list/convert.hpp>
#define FUSION_SEQUENCE list
+#define FUSION_FORWARD_ONLY
#include "misc.hpp"
int
Added: sandbox/SOC/2009/fusion/libs/fusion/test/sequence/list_value_at.cpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2009/fusion/libs/fusion/test/sequence/list_value_at.cpp 2009-11-03 13:27:47 EST (Tue, 03 Nov 2009)
@@ -0,0 +1,19 @@
+/*=============================================================================
+ Copyright (c) 1999-2003 Jaakko Jarvi
+ 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)
+==============================================================================*/
+#include <boost/fusion/container/list/list.hpp>
+
+#define FUSION_SEQUENCE list
+#include "value_at.hpp"
+
+int
+main()
+{
+ test();
+ return boost::report_errors();
+}
+
Added: sandbox/SOC/2009/fusion/libs/fusion/test/sequence/make_list.cpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2009/fusion/libs/fusion/test/sequence/make_list.cpp 2009-11-03 13:27:47 EST (Tue, 03 Nov 2009)
@@ -0,0 +1,20 @@
+/*=============================================================================
+ Copyright (c) 1999-2003 Jaakko Jarvi
+ 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)
+==============================================================================*/
+#include <boost/fusion/container/list/list.hpp>
+#include <boost/fusion/container/generation/make_list.hpp>
+
+#define FUSION_SEQUENCE list
+#include "make.hpp"
+
+int
+main()
+{
+ test();
+ return boost::report_errors();
+}
+
Added: sandbox/SOC/2009/fusion/libs/fusion/test/sequence/make_vector.cpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2009/fusion/libs/fusion/test/sequence/make_vector.cpp 2009-11-03 13:27:47 EST (Tue, 03 Nov 2009)
@@ -0,0 +1,20 @@
+/*=============================================================================
+ Copyright (c) 1999-2003 Jaakko Jarvi
+ 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)
+==============================================================================*/
+#include <boost/fusion/container/vector/vector.hpp>
+#include <boost/fusion/container/generation/make_vector.hpp>
+
+#define FUSION_SEQUENCE vector
+#include "make.hpp"
+
+int
+main()
+{
+ test();
+ return boost::report_errors();
+}
+
Modified: sandbox/SOC/2009/fusion/libs/fusion/test/sequence/map.cpp
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/test/sequence/map.cpp (original)
+++ sandbox/SOC/2009/fusion/libs/fusion/test/sequence/map.cpp 2009-11-03 13:27:47 EST (Tue, 03 Nov 2009)
@@ -4,14 +4,18 @@
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)
==============================================================================*/
-
#include <boost/detail/lightweight_test.hpp>
#include <boost/fusion/container/map/map.hpp>
#include <boost/fusion/container/generation/make_map.hpp>
#include <boost/fusion/sequence/intrinsic/at_key.hpp>
#include <boost/fusion/sequence/intrinsic/value_at_key.hpp>
#include <boost/fusion/sequence/intrinsic/has_key.hpp>
+#include <boost/fusion/sequence/intrinsic/begin.hpp>
#include <boost/fusion/sequence/io/out.hpp>
+#include <boost/fusion/iterator/key_of.hpp>
+#include <boost/fusion/iterator/deref_data.hpp>
+#include <boost/fusion/iterator/value_of_data.hpp>
+#include <boost/fusion/iterator/next.hpp>
#include <boost/fusion/support/pair.hpp>
#include <boost/fusion/support/category_of.hpp>
#include <boost/static_assert.hpp>
@@ -19,7 +23,6 @@
#include <iostream>
#include <string>
-
int
main()
{
@@ -59,6 +62,17 @@
BOOST_STATIC_ASSERT((result_of::has_key<map_type, int>::value));
BOOST_STATIC_ASSERT((result_of::has_key<map_type, double>::value));
BOOST_STATIC_ASSERT((!result_of::has_key<map_type, std::string>::value));
+
+ std::cout << deref_data(begin(m)) << std::endl;
+ std::cout << deref_data(boost::fusion::next(begin(m))) << std::endl;
+
+ BOOST_TEST(deref_data(begin(m)) == 'X');
+ BOOST_TEST(deref_data(boost::fusion::next(begin(m))) == "Men");
+
+ BOOST_STATIC_ASSERT((boost::is_same<result_of::key_of<result_of::begin<map_type>::type>::type, int>::value));
+ BOOST_STATIC_ASSERT((boost::is_same<result_of::key_of<result_of::next<result_of::begin<map_type>::type>::type>::type, double>::value));
+ BOOST_STATIC_ASSERT((boost::is_same<result_of::value_of_data<result_of::begin<map_type>::type>::type, char>::value));
+ BOOST_STATIC_ASSERT((boost::is_same<result_of::value_of_data<result_of::next<result_of::begin<map_type>::type>::type>::type, std::string>::value));
}
{
Modified: sandbox/SOC/2009/fusion/libs/fusion/test/sequence/misc.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/test/sequence/misc.hpp (original)
+++ sandbox/SOC/2009/fusion/libs/fusion/test/sequence/misc.hpp 2009-11-03 13:27:47 EST (Tue, 03 Nov 2009)
@@ -6,27 +6,20 @@
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
==============================================================================*/
#include <boost/detail/lightweight_test.hpp>
-
#include <boost/fusion/sequence/intrinsic.hpp>
#include <boost/fusion/support/is_sequence.hpp>
#include <boost/fusion/mpl.hpp>
-
-#include <boost/mpl/push_back.hpp>
-#include <boost/mpl/push_front.hpp>
-#include <boost/mpl/size.hpp>
-#include <boost/mpl/equal.hpp>
-#include <boost/mpl/deref.hpp>
-#include <boost/mpl/back.hpp>
#include <boost/mpl/empty.hpp>
#include <boost/mpl/front.hpp>
#include <boost/mpl/find.hpp>
+#include <boost/mpl/back.hpp>
#include <boost/mpl/equal.hpp>
+#include <boost/mpl/push_back.hpp>
+#include <boost/mpl/push_front.hpp>
#include <boost/mpl/int.hpp>
#include <boost/mpl/integral_c.hpp>
-
-#include <boost/static_assert.hpp>
#include <boost/type_traits/is_same.hpp>
-
+#include <boost/static_assert.hpp>
#include <string>
#if !defined(FUSION_AT)
@@ -79,6 +72,8 @@
BOOST_STATIC_ASSERT(!(boost::mpl::empty<sequence>::value));
BOOST_STATIC_ASSERT((boost::mpl::distance<second, fourth>::value == 2));
+#if !defined(FUSION_FORWARD_ONLY) // list has no back/prev
+
typedef boost::mpl::prior<last>::type fourth_;
typedef boost::mpl::prior<fourth_>::type third_;
typedef boost::mpl::prior<third_>::type second_;
@@ -99,12 +94,15 @@
BOOST_STATIC_ASSERT((boost::is_same<
boost::mpl::back<sequence>::type, char>::value));
+#endif
};
struct test_intrinsics2
{
typedef boost::fusion::FUSION_SEQUENCE<> seq0;
+#if !defined(FUSION_FORWARD_ONLY) // list has no back/prev
+
typedef boost::fusion::FUSION_SEQUENCE<int> target1;
typedef boost::mpl::push_back<seq0, int>::type seq1;
BOOST_STATIC_ASSERT((boost::mpl::equal<seq1, target1>::value));
@@ -113,6 +111,8 @@
typedef boost::mpl::push_back<seq1, double>::type seq2;
BOOST_STATIC_ASSERT((boost::mpl::equal<seq2, target2>::value));
+#endif
+
typedef boost::fusion::FUSION_SEQUENCE<int> target3;
typedef boost::mpl::push_front<seq0, int>::type seq3;
BOOST_STATIC_ASSERT((boost::mpl::equal<seq3, target3>::value));
@@ -157,10 +157,12 @@
{ // testing front & back
typedef FUSION_SEQUENCE<int, float, std::string> tup;
- tup t(1, 2.2f, "Kimpo");
+ tup t(1, 2.2, "Kimpo");
BOOST_TEST(front(t) == 1);
+#if !defined(FUSION_FORWARD_ONLY) // list has no back
BOOST_TEST(back(t) == "Kimpo");
+#endif
}
{ // testing is_sequence
Modified: sandbox/SOC/2009/fusion/libs/fusion/test/sequence/mutate.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/test/sequence/mutate.hpp (original)
+++ sandbox/SOC/2009/fusion/libs/fusion/test/sequence/mutate.hpp 2009-11-03 13:27:47 EST (Tue, 03 Nov 2009)
@@ -2,7 +2,7 @@
Copyright (c) 1999-2003 Jaakko Jarvi
Copyright (c) 2001-2006 Joel de Guzman
- 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)
==============================================================================*/
#include <boost/detail/lightweight_test.hpp>
Added: sandbox/SOC/2009/fusion/libs/fusion/test/sequence/repetitive_view.cpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2009/fusion/libs/fusion/test/sequence/repetitive_view.cpp 2009-11-03 13:27:47 EST (Tue, 03 Nov 2009)
@@ -0,0 +1,53 @@
+/*=============================================================================
+ Copyright (c) 2007 Tobias Schwinger
+
+ 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).
+==============================================================================*/
+
+#include <boost/detail/lightweight_test.hpp>
+#include <boost/fusion/view/repetitive_view.hpp>
+
+#include <boost/fusion/container/vector.hpp>
+#include <boost/fusion/view/joint_view.hpp>
+#include <boost/fusion/algorithm/transformation/zip.hpp>
+#include <boost/fusion/algorithm/iteration/for_each.hpp>
+
+#include <boost/type_traits/is_same.hpp>
+
+#include <boost/fusion/sequence/intrinsic/begin.hpp>
+#include <boost/fusion/iterator/next.hpp>
+
+#include <boost/fusion/functional/generation/make_fused_procedure.hpp>
+
+struct check_equal
+{
+ template<typename LHS, typename RHS>
+ void operator()(LHS const& lhs, RHS const& rhs) const
+ {
+ BOOST_TEST(( boost::is_same<LHS,RHS>::value ));
+ BOOST_TEST(( lhs == rhs ));
+ }
+};
+
+int main()
+{
+ using namespace boost::fusion;
+
+ typedef boost::fusion::vector<int,long,float,double> seq_t;
+ seq_t seq(1,2l,3.0f,4.0);
+
+ typedef repetitive_view<seq_t> view_t;
+ view_t view(seq);
+
+ typedef joint_view<seq_t,seq_t> seq_twice_t;
+ typedef joint_view<seq_t,seq_twice_t> seq_repeated_t;
+ seq_twice_t seq_twice(seq,seq);
+ seq_repeated_t seq_repeated(seq,seq_twice);
+
+ for_each(zip(view,seq_repeated), make_fused_procedure(check_equal()));
+
+ return boost::report_errors();
+}
+
Modified: sandbox/SOC/2009/fusion/libs/fusion/test/sequence/reverse_view.cpp
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/test/sequence/reverse_view.cpp (original)
+++ sandbox/SOC/2009/fusion/libs/fusion/test/sequence/reverse_view.cpp 2009-11-03 13:27:47 EST (Tue, 03 Nov 2009)
@@ -36,10 +36,10 @@
reverse_view<mpl_list1> rev(l);
std::cout << rev << std::endl;
- //BOOST_TEST((rev == make_vector(8, 7, 6, 5)));
+ BOOST_TEST((rev == make_vector(8, 7, 6, 5)));
}
- /*{
+ {
char const* s = "Hi Kim";
typedef vector<int, char, long, char const*> vector_type;
vector_type t(123, 'x', 123456789, s);
@@ -49,15 +49,15 @@
std::cout << rev << std::endl;
BOOST_TEST((rev == make_vector(s, 123456789, 'x', 123)));
- typedef result_of::begin<view_type>::type begin_type;
- begin_type first_it(begin(rev));
- typedef result_of::next<begin_type>::type second_type;
+ typedef result_of::begin<view_type>::type first_type;
+ first_type first_it(begin(rev));
+ typedef result_of::next<first_type>::type second_type;
second_type second_it(next(first_it));
BOOST_TEST((*second_it == 123456789));
BOOST_TEST((*prior(second_it) == s));
BOOST_TEST((*advance_c<2>(first_it) == 'x'));
BOOST_TEST((distance(first_it, second_it) == 1));
- }*/
+ }
return boost::report_errors();
}
Modified: sandbox/SOC/2009/fusion/libs/fusion/test/sequence/set.cpp
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/test/sequence/set.cpp (original)
+++ sandbox/SOC/2009/fusion/libs/fusion/test/sequence/set.cpp 2009-11-03 13:27:47 EST (Tue, 03 Nov 2009)
@@ -10,7 +10,12 @@
#include <boost/fusion/sequence/intrinsic/at_key.hpp>
#include <boost/fusion/sequence/intrinsic/value_at_key.hpp>
#include <boost/fusion/sequence/intrinsic/has_key.hpp>
+#include <boost/fusion/sequence/intrinsic/begin.hpp>
#include <boost/fusion/sequence/io/out.hpp>
+#include <boost/fusion/iterator/key_of.hpp>
+#include <boost/fusion/iterator/deref_data.hpp>
+#include <boost/fusion/iterator/value_of_data.hpp>
+#include <boost/fusion/iterator/next.hpp>
#include <boost/fusion/support/pair.hpp>
#include <boost/fusion/support/category_of.hpp>
#include <boost/static_assert.hpp>
@@ -46,12 +51,23 @@
boost::is_same<result_of::value_at_key<set_type, int>::type, int>::value));
BOOST_STATIC_ASSERT((
boost::is_same<result_of::value_at_key<set_type, std::string>::type, std::string>::value));
-
+
std::cout << m << std::endl;
BOOST_STATIC_ASSERT((result_of::has_key<set_type, int>::value));
BOOST_STATIC_ASSERT((result_of::has_key<set_type, std::string>::value));
BOOST_STATIC_ASSERT((!result_of::has_key<set_type, double>::value));
+
+ std::cout << deref_data(begin(m)) << std::endl;
+ std::cout << deref_data(boost::fusion::next(begin(m))) << std::endl;
+
+ BOOST_TEST(deref_data(begin(m)) == 123);
+ BOOST_TEST(deref_data(boost::fusion::next(begin(m))) == "Hola");
+
+ BOOST_STATIC_ASSERT((boost::is_same<result_of::key_of<result_of::begin<set_type>::type>::type, int>::value));
+ BOOST_STATIC_ASSERT((boost::is_same<result_of::key_of<result_of::next<result_of::begin<set_type>::type>::type>::type, std::string>::value));
+ BOOST_STATIC_ASSERT((boost::is_same<result_of::value_of_data<result_of::begin<set_type>::type>::type, int>::value));
+ BOOST_STATIC_ASSERT((boost::is_same<result_of::value_of_data<result_of::next<result_of::begin<set_type>::type>::type>::type, std::string>::value));
}
{
Modified: sandbox/SOC/2009/fusion/libs/fusion/test/sequence/std_pair.cpp
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/test/sequence/std_pair.cpp (original)
+++ sandbox/SOC/2009/fusion/libs/fusion/test/sequence/std_pair.cpp 2009-11-03 13:27:47 EST (Tue, 03 Nov 2009)
@@ -23,10 +23,8 @@
#include <boost/fusion/sequence/comparison/greater.hpp>
#include <boost/fusion/sequence/comparison/greater_equal.hpp>
#include <boost/fusion/support/is_view.hpp>
-
#include <boost/mpl/assert.hpp>
#include <boost/static_assert.hpp>
-
#include <iostream>
#include <string>
#include <utility>
Added: sandbox/SOC/2009/fusion/libs/fusion/test/sequence/test_deduce_sequence.cpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2009/fusion/libs/fusion/test/sequence/test_deduce_sequence.cpp 2009-11-03 13:27:47 EST (Tue, 03 Nov 2009)
@@ -0,0 +1,16 @@
+
+#include <boost/mpl/vector.hpp>
+#include <boost/fusion/support.hpp>
+
+typedef boost::fusion::traits::deduce_sequence <
+
+boost::mpl::vector<int, char>
+
+>::type seq1_t;
+
+
+typedef boost::fusion::traits::deduce_sequence <
+
+boost::fusion::vector<int, char>
+
+>::type seq2_t;
Modified: sandbox/SOC/2009/fusion/libs/fusion/test/sequence/tie.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/test/sequence/tie.hpp (original)
+++ sandbox/SOC/2009/fusion/libs/fusion/test/sequence/tie.hpp 2009-11-03 13:27:47 EST (Tue, 03 Nov 2009)
@@ -2,12 +2,15 @@
Copyright (c) 1999-2003 Jaakko Jarvi
Copyright (c) 2001-2006 Joel de Guzman
- 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)
==============================================================================*/
#include <boost/detail/lightweight_test.hpp>
-#include <boost/fusion/sequence/intrinsic/begin.hpp>
-#include <boost/fusion/iterator/deref.hpp>
+#include <boost/fusion/sequence/intrinsic/at.hpp>
+
+#if !defined(FUSION_AT)
+#define FUSION_AT at_c
+#endif
#if !defined(FUSION_MAKE)
#define FUSION_MAKE BOOST_PP_CAT(make_, FUSION_SEQUENCE)
@@ -72,11 +75,11 @@
#endif
dummy(ta);
-
+
// ties cannot be rebound
int d = 3;
FUSION_SEQUENCE<int&> ti(a);
- BOOST_TEST(&deref(begin(ti)) == &a);
+ BOOST_TEST(&FUSION_AT<0>(ti) == &a);
ti = FUSION_SEQUENCE<int&>(d);
- BOOST_TEST(&deref(begin(ti)) == &a);
+ BOOST_TEST(&FUSION_AT<0>(ti) == &a);
}
Modified: sandbox/SOC/2009/fusion/libs/fusion/test/sequence/tr1_tuple_auto_conv.cpp
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/test/sequence/tr1_tuple_auto_conv.cpp (original)
+++ sandbox/SOC/2009/fusion/libs/fusion/test/sequence/tr1_tuple_auto_conv.cpp 2009-11-03 13:27:47 EST (Tue, 03 Nov 2009)
@@ -1,17 +1,8 @@
-/*=============================================================================
- Copyright (c) 2008 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)
-==============================================================================*/
-
#include <boost/tr1/memory.hpp>
#include <boost/tr1/tuple.hpp>
#include <boost/any.hpp>
#include <iostream>
-//TODO cschmidt: In C++0x this won't work any more?!
-
namespace Core
{
class AutoConverter
@@ -19,8 +10,8 @@
std::tr1::shared_ptr<boost::any> t_;
public:
- AutoConverter(std::tr1::shared_ptr<boost::any> const& t)
- : t_(t)
+ AutoConverter(std::tr1::shared_ptr<boost::any> const & t)
+ : t_(t)
{}
template <typename C>
@@ -46,17 +37,20 @@
}
};
+
inline AutoConverter Demo()
{
std::tr1::shared_ptr<boost::any> p_result
(new boost::any(std::tr1::make_tuple(1, 2, 3, 4)));
return p_result;
}
+
} // namespace Core
int main(int argc, char* argv[])
{
+ //TODO
//std::tr1::tuple<int, int, int, int> test = Core::Demo();
return 0;
}
Modified: sandbox/SOC/2009/fusion/libs/fusion/test/sequence/transform_view.cpp
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/test/sequence/transform_view.cpp (original)
+++ sandbox/SOC/2009/fusion/libs/fusion/test/sequence/transform_view.cpp 2009-11-03 13:27:47 EST (Tue, 03 Nov 2009)
@@ -26,7 +26,14 @@
struct square
{
- typedef int result_type;
+ template<typename T>
+ struct result;
+
+ template <typename T>
+ struct result<square(T)>
+ {
+ typedef int type;
+ };
template <typename T>
int operator()(T x) const
@@ -37,7 +44,14 @@
struct add
{
- typedef int result_type;
+ template<typename T>
+ struct result;
+
+ template <typename A, typename B>
+ struct result<add(A,B)>
+ {
+ typedef int type;
+ };
template <typename A, typename B>
int operator()(A a, B b) const
@@ -58,19 +72,19 @@
/// Testing the transform_view
{
- typedef boost::mpl::range_c<int, 5, 9> seq_type;
- seq_type sequence;
+ typedef boost::mpl::range_c<int, 5, 9> sequence_type;
+ sequence_type sequence;
square sq;
- typedef transform_view<seq_type, square> xform_type;
+ typedef transform_view<sequence_type, square> xform_type;
xform_type xform(sequence, sq);
std::cout << xform << std::endl;
BOOST_TEST((xform == make_vector(25, 36, 49, 64)));
- typedef boost::fusion::result_of::begin<xform_type>::type begin_type;
- begin_type first_it(boost::fusion::begin(xform));
+ typedef boost::fusion::result_of::begin<xform_type>::type first_type;
+ first_type first_it(boost::fusion::begin(xform));
- typedef boost::fusion::result_of::next<begin_type>::type next_type;
+ typedef boost::fusion::result_of::next<first_type>::type next_type;
next_type next_it(boost::fusion::next(first_it));
BOOST_TEST((*next_it == 36));
BOOST_TEST((*boost::fusion::prior(next_it) == 25));
Modified: sandbox/SOC/2009/fusion/libs/fusion/test/sequence/value_at.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/test/sequence/value_at.hpp (original)
+++ sandbox/SOC/2009/fusion/libs/fusion/test/sequence/value_at.hpp 2009-11-03 13:27:47 EST (Tue, 03 Nov 2009)
@@ -2,14 +2,13 @@
Copyright (c) 1999-2003 Jaakko Jarvi
Copyright (c) 2001-2006 Joel de Guzman
- 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)
==============================================================================*/
#include <boost/detail/lightweight_test.hpp>
#include <boost/fusion/sequence/intrinsic/at.hpp>
#include <boost/fusion/sequence/intrinsic/value_at.hpp>
#include <boost/static_assert.hpp>
-
#include <iostream>
#if !defined(FUSION_AT)
@@ -67,7 +66,7 @@
++FUSION_AT<0>(t);
BOOST_TEST(FUSION_AT<0>(t) == 6);
-
+
typedef FUSION_SEQUENCE<int, float> seq_type;
BOOST_STATIC_ASSERT(!(
Modified: sandbox/SOC/2009/fusion/libs/fusion/test/sequence/vector_n.cpp
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/test/sequence/vector_n.cpp (original)
+++ sandbox/SOC/2009/fusion/libs/fusion/test/sequence/vector_n.cpp 2009-11-03 13:27:47 EST (Tue, 03 Nov 2009)
@@ -1,7 +1,7 @@
/*=============================================================================
Copyright (c) 2001-2006 Joel de Guzman
- 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)
==============================================================================*/
#include <boost/detail/lightweight_test.hpp>
@@ -10,7 +10,6 @@
#include <boost/fusion/sequence/intrinsic/size.hpp>
#include <boost/fusion/sequence/intrinsic/at.hpp>
#include <boost/fusion/sequence/intrinsic/value_at.hpp>
-#include <boost/fusion/sequence/io/out.hpp>
#include <boost/fusion/container/vector/vector20.hpp>
#include <boost/fusion/container/vector/vector30.hpp>
@@ -30,14 +29,12 @@
main()
{
using namespace boost::fusion;
- using std::cout;
- using std::endl;
{
vector0<> vec;
(void) vec;
- cout << "(): " << sizeof(vec) << endl;
- cout << (boost::is_empty<vector0<> >::value ? "is empty" : "is not empty") << endl;
+ std::cout << "(): " << sizeof(vec) << std::endl;
+ std::cout << (boost::is_empty<vector0<> >::value ? "is empty" : "is not empty") << std::endl;
}
{
@@ -57,7 +54,7 @@
typedef vector1<int> type;
type vec(123);
BOOST_TEST(at_c<0>(vec) == 123);
- cout << "(int): " << sizeof(vec) << endl;
+ std::cout << "(int): " << sizeof(vec) << std::endl;
}
{ // testing const vector
@@ -92,7 +89,7 @@
type vec(123, 'x');
BOOST_TEST(at_c<0>(vec) == 123);
BOOST_TEST(at_c<1>(vec) == 'x');
- cout << "(int, char): " << sizeof(vec) << endl;
+ std::cout << "(int, char): " << sizeof(vec) << std::endl;
}
{
@@ -121,19 +118,19 @@
BOOST_TEST(at_c<0>(vec) == 123);
BOOST_TEST(at_c<1>(vec) == 'x');
BOOST_TEST(at_c<2>(vec) >= 123.455 && at_c<2>(vec) <= 123.457);
- cout << "(int, char, double): " << sizeof(vec) << endl;
+ std::cout << "(int, char, double): " << sizeof(vec) << std::endl;
}
{
typedef vector4<int, char, double, bool> type;
type vec(123, 'x', 123.456, true);
- cout << "(int, char, double, bool): " << sizeof(vec) << endl;
+ std::cout << "(int, char, double, bool): " << sizeof(vec) << std::endl;
}
{
typedef vector4<int, char, bool, double> type;
type vec(123, 'x', true, 123.456);
- cout << "(int, char, bool, double): " << sizeof(vec) << endl;
+ std::cout << "(int, char, bool, double): " << sizeof(vec) << std::endl;
}
{
@@ -155,13 +152,13 @@
BOOST_STATIC_ASSERT((boost::is_same<long, result_of::value_at_c<type, 4>::type>::value));
BOOST_STATIC_ASSERT((boost::is_same<float, result_of::value_at_c<type, 5>::type>::value));
BOOST_STATIC_ASSERT((boost::is_same<double, result_of::value_at_c<type, 6>::type>::value));
- cout << "(bool, char, short, int, long, float, double): " << sizeof(vec) << endl;
+ std::cout << "(bool, char, short, int, long, float, double): " << sizeof(vec) << std::endl;
}
{
typedef vector10<int, int, int, int, int, int, int, int, int, int> type;
type vec; // compile check only
- cout << "vector10 of int: " << sizeof(vec) << endl;
+ std::cout << "vector10 of int: " << sizeof(vec) << std::endl;
}
{
@@ -170,7 +167,7 @@
, int, int, int, int, int, int, int, int, int, int> type;
type vec; // compile check only
- cout << "vector20 of int: " << sizeof(vec) << endl;
+ std::cout << "vector20 of int: " << sizeof(vec) << std::endl;
}
{
@@ -180,7 +177,7 @@
, int, int, int, int, int, int, int, int, int, int> type;
type vec; // compile check only
- cout << "vector30 of int: " << sizeof(vec) << endl;
+ std::cout << "vector30 of int: " << sizeof(vec) << std::endl;
}
{
@@ -191,7 +188,7 @@
, int, int, int, int, int, int, int, int, int, int> type;
type vec; // compile check only
- cout << "vector40 of int: " << sizeof(vec) << endl;
+ std::cout << "vector40 of int: " << sizeof(vec) << std::endl;
}
{
@@ -203,18 +200,16 @@
, int, int, int, int, int, int, int, int, int, int> type;
type vec; // compile check only
- cout << "vector50 of int: " << sizeof(vec) << endl;
+ std::cout << "vector50 of int: " << sizeof(vec) << std::endl;
}
-
+
{
// testing copy and assign from a view
vector0<> empty;
vector2<int, long> v(push_back(push_back(empty, 123), 456));
- cout << v << endl;
BOOST_TEST(at_c<0>(v) == 123);
BOOST_TEST(at_c<1>(v) == 456);
- v =push_back(push_back(empty, 123), 456); // test assign
- cout << v << endl;
+ v = push_back(push_back(empty, 123), 456); // test assign
BOOST_TEST(at_c<0>(v) == 123);
BOOST_TEST(at_c<1>(v) == 456);
}
@@ -223,11 +218,9 @@
// testing copy and assign from a vector_c
boost::mpl::vector_c<int, 123, 456> vec_c;
vector2<int, long> v(vec_c);
- std::cout << v << std::endl;
BOOST_TEST(at_c<0>(v) == 123);
BOOST_TEST(at_c<1>(v) == 456);
v = boost::mpl::vector_c<int, 123, 456>(); // test assign
- cout << v << endl;
BOOST_TEST(at_c<0>(v) == 123);
BOOST_TEST(at_c<1>(v) == 456);
}
Modified: sandbox/SOC/2009/fusion/libs/fusion/test/sequence/vector_tie.cpp
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/test/sequence/vector_tie.cpp (original)
+++ sandbox/SOC/2009/fusion/libs/fusion/test/sequence/vector_tie.cpp 2009-11-03 13:27:47 EST (Tue, 03 Nov 2009)
@@ -2,7 +2,7 @@
Copyright (c) 1999-2003 Jaakko Jarvi
Copyright (c) 2001-2006 Joel de Guzman
- 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)
==============================================================================*/
#include <boost/fusion/container/vector/vector.hpp>
Modified: sandbox/SOC/2009/fusion/libs/fusion/test/sequence/zip_view2.cpp
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/test/sequence/zip_view2.cpp (original)
+++ sandbox/SOC/2009/fusion/libs/fusion/test/sequence/zip_view2.cpp 2009-11-03 13:27:47 EST (Tue, 03 Nov 2009)
@@ -49,12 +49,15 @@
seqs_type seqs(iv, cv, cl);
view v(seqs);
+ BOOST_TEST(at_c<0>(v) == make_vector(1, 'a', 'y'));
+ BOOST_TEST(at_c<1>(v) == make_vector(2, 'b', 'z'));
BOOST_TEST(front(v) == make_vector(1, 'a', 'y'));
BOOST_TEST(*next(begin(v)) == make_vector(2, 'b', 'z'));
BOOST_TEST(advance_c<2>(begin(v)) == end(v));
BOOST_TEST(distance(begin(v), end(v)) == 2);
BOOST_STATIC_ASSERT((boost::fusion::result_of::distance<boost::fusion::result_of::begin<view>::type, boost::fusion::result_of::end<view>::type>::value == 2));
+ BOOST_MPL_ASSERT((boost::is_same<boost::fusion::result_of::value_at_c<view,0>::type, vector<int,char,char> >));
BOOST_MPL_ASSERT((boost::is_same<boost::fusion::result_of::value_of<boost::fusion::result_of::begin<view>::type>::type, vector<int,char,char> >));
}
return boost::report_errors();
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