|
Boost-Commit : |
Subject: [Boost-commit] svn:boost r65441 - in sandbox/SOC/2009/fusion: boost/fusion boost/fusion/adapted boost/fusion/adapted/adt boost/fusion/adapted/class boost/fusion/adapted/detail/adt boost/fusion/adapted/detail/class boost/fusion/adapted/detail/struct boost/fusion/algorithm/iteration/detail boost/fusion/include boost/fusion/sequence/comparison/detail boost/fusion/support boost/proto libs/fusion/test/suite1/sequence libs/fusion/test/suite2/adapted
From: mr.chr.schmidt_at_[hidden]
Date: 2010-09-16 18:33:37
Author: cschmidt
Date: 2010-09-16 18:33:32 EDT (Thu, 16 Sep 2010)
New Revision: 65441
URL: http://svn.boost.org/trac/boost/changeset/65441
Log:
BOOST_FUSION_ADAPT_xxxCLASSxxx -> BOOST_FUSION_ADAPT_xxxADTxxx
Added:
sandbox/SOC/2009/fusion/boost/fusion/adapted/adt/
- copied from r65440, /sandbox/SOC/2009/fusion/boost/fusion/adapted/class/
sandbox/SOC/2009/fusion/boost/fusion/adapted/adt.hpp
- copied, changed from r65440, /sandbox/SOC/2009/fusion/boost/fusion/adapted/class.hpp
sandbox/SOC/2009/fusion/boost/fusion/adapted/adt/adapt_adt.hpp
- copied, changed from r65440, /sandbox/SOC/2009/fusion/boost/fusion/adapted/class/adapt_class.hpp
sandbox/SOC/2009/fusion/boost/fusion/adapted/adt/adapt_adt_named.hpp
- copied, changed from r65440, /sandbox/SOC/2009/fusion/boost/fusion/adapted/class/adapt_class_named.hpp
sandbox/SOC/2009/fusion/boost/fusion/adapted/adt/adapt_assoc_adt.hpp
- copied, changed from r65440, /sandbox/SOC/2009/fusion/boost/fusion/adapted/class/adapt_assoc_class.hpp
sandbox/SOC/2009/fusion/boost/fusion/adapted/adt/adapt_assoc_adt_named.hpp
- copied, changed from r65440, /sandbox/SOC/2009/fusion/boost/fusion/adapted/class/adapt_assoc_class_named.hpp
sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/adt/
- copied from r65440, /sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/class/
sandbox/SOC/2009/fusion/boost/fusion/include/adapt_adt.hpp (contents, props changed)
sandbox/SOC/2009/fusion/boost/fusion/include/adapt_adt_named.cpp (contents, props changed)
sandbox/SOC/2009/fusion/boost/fusion/include/adapt_adt_named.hpp (contents, props changed)
sandbox/SOC/2009/fusion/boost/fusion/include/adapt_assoc_adt.hpp (contents, props changed)
sandbox/SOC/2009/fusion/boost/fusion/include/adapt_assoc_adt_named.hpp (contents, props changed)
sandbox/SOC/2009/fusion/libs/fusion/test/suite1/sequence/adapt_adt.cpp (contents, props changed)
sandbox/SOC/2009/fusion/libs/fusion/test/suite1/sequence/adapt_adt_named.cpp (contents, props changed)
sandbox/SOC/2009/fusion/libs/fusion/test/suite1/sequence/adapt_assoc_adt.cpp (contents, props changed)
sandbox/SOC/2009/fusion/libs/fusion/test/suite1/sequence/adapt_assoc_adt_named.cpp (contents, props changed)
sandbox/SOC/2009/fusion/libs/fusion/test/suite1/sequence/adapt_assoc_tpl_adt.cpp (contents, props changed)
Removed:
sandbox/SOC/2009/fusion/boost/fusion/adapted/adt/adapt_assoc_class.hpp
sandbox/SOC/2009/fusion/boost/fusion/adapted/adt/adapt_assoc_class_named.hpp
sandbox/SOC/2009/fusion/boost/fusion/adapted/adt/adapt_class.hpp
sandbox/SOC/2009/fusion/boost/fusion/adapted/adt/adapt_class_named.hpp
sandbox/SOC/2009/fusion/boost/fusion/adapted/class/
sandbox/SOC/2009/fusion/boost/fusion/adapted/class.hpp
sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/class/
sandbox/SOC/2009/fusion/boost/fusion/include/adapt_assoc_class.hpp
sandbox/SOC/2009/fusion/boost/fusion/include/adapt_assoc_class_named.hpp
sandbox/SOC/2009/fusion/boost/fusion/include/adapt_class.hpp
sandbox/SOC/2009/fusion/boost/fusion/include/adapt_class_named.hpp
sandbox/SOC/2009/fusion/libs/fusion/test/suite1/sequence/adapt_assoc_class.cpp
sandbox/SOC/2009/fusion/libs/fusion/test/suite1/sequence/adapt_assoc_class_named.cpp
sandbox/SOC/2009/fusion/libs/fusion/test/suite1/sequence/adapt_assoc_tpl_class.cpp
sandbox/SOC/2009/fusion/libs/fusion/test/suite1/sequence/adapt_class.cpp
sandbox/SOC/2009/fusion/libs/fusion/test/suite1/sequence/adapt_class_named.cpp
sandbox/SOC/2009/fusion/libs/fusion/test/suite1/sequence/adapt_tpl_class.cpp
Text files modified:
sandbox/SOC/2009/fusion/boost/fusion/adapted.hpp | 2
sandbox/SOC/2009/fusion/boost/fusion/adapted/adt.hpp | 12 ++--
sandbox/SOC/2009/fusion/boost/fusion/adapted/adt/adapt_adt.hpp | 42 ++++++++--------
sandbox/SOC/2009/fusion/boost/fusion/adapted/adt/adapt_adt_named.hpp | 14 ++--
sandbox/SOC/2009/fusion/boost/fusion/adapted/adt/adapt_assoc_adt.hpp | 42 ++++++++--------
sandbox/SOC/2009/fusion/boost/fusion/adapted/adt/adapt_assoc_adt_named.hpp | 14 ++--
sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/adt/adapt_base.hpp | 97 +++++++++++++++++++++------------------
sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/adt/extension.hpp | 4
sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/extension.hpp | 4
sandbox/SOC/2009/fusion/boost/fusion/algorithm/iteration/detail/for_each.hpp | 37 ++++++++++++--
sandbox/SOC/2009/fusion/boost/fusion/sequence/comparison/detail/equal_to.hpp | 7 +-
sandbox/SOC/2009/fusion/boost/fusion/sequence/comparison/detail/greater.hpp | 9 +--
sandbox/SOC/2009/fusion/boost/fusion/sequence/comparison/detail/greater_equal.hpp | 9 +--
sandbox/SOC/2009/fusion/boost/fusion/sequence/comparison/detail/less.hpp | 9 +--
sandbox/SOC/2009/fusion/boost/fusion/sequence/comparison/detail/less_equal.hpp | 9 +--
sandbox/SOC/2009/fusion/boost/fusion/sequence/comparison/detail/not_equal_to.hpp | 8 +-
sandbox/SOC/2009/fusion/boost/fusion/support/config.hpp | 2
sandbox/SOC/2009/fusion/boost/proto/fusion.hpp | 6 ++
sandbox/SOC/2009/fusion/libs/fusion/test/suite2/adapted/mpl.cpp | 2
19 files changed, 182 insertions(+), 147 deletions(-)
Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted.hpp 2010-09-16 18:33:32 EDT (Thu, 16 Sep 2010)
@@ -10,10 +10,10 @@
#ifndef BOOST_FUSION_ADAPTED_HPP
#define BOOST_FUSION_ADAPTED_HPP
+#include <boost/fusion/adapted/adt.hpp>
#include <boost/fusion/adapted/array.hpp>
#include <boost/fusion/adapted/boost_array.hpp>
#include <boost/fusion/adapted/boost_tuple.hpp>
-#include <boost/fusion/adapted/class.hpp>
#include <boost/fusion/adapted/mpl.hpp>
#include <boost/fusion/adapted/std_array.hpp>
#include <boost/fusion/adapted/std_pair.hpp>
Copied: sandbox/SOC/2009/fusion/boost/fusion/adapted/adt.hpp (from r65440, /sandbox/SOC/2009/fusion/boost/fusion/adapted/class.hpp)
==============================================================================
--- /sandbox/SOC/2009/fusion/boost/fusion/adapted/class.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/adt.hpp 2010-09-16 18:33:32 EDT (Thu, 16 Sep 2010)
@@ -7,12 +7,12 @@
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
==============================================================================*/
-#ifndef BOOST_FUSION_ADAPTED_CLASS_HPP
-#define BOOST_FUSION_ADAPTED_CLASS_HPP
+#ifndef BOOST_FUSION_ADAPTED_ADT_HPP
+#define BOOST_FUSION_ADAPTED_ADT_HPP
-#include <boost/fusion/adapted/class/adapt_assoc_class_named.hpp>
-#include <boost/fusion/adapted/class/adapt_assoc_class.hpp>
-#include <boost/fusion/adapted/class/adapt_class_named.hpp>
-#include <boost/fusion/adapted/class/adapt_class.hpp>
+#include <boost/fusion/adapted/adt/adapt_adt_named.hpp>
+#include <boost/fusion/adapted/adt/adapt_adt.hpp>
+#include <boost/fusion/adapted/adt/adapt_assoc_adt_named.hpp>
+#include <boost/fusion/adapted/adt/adapt_assoc_adt.hpp>
#endif
Copied: sandbox/SOC/2009/fusion/boost/fusion/adapted/adt/adapt_adt.hpp (from r65440, /sandbox/SOC/2009/fusion/boost/fusion/adapted/class/adapt_class.hpp)
==============================================================================
--- /sandbox/SOC/2009/fusion/boost/fusion/adapted/class/adapt_class.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/adt/adapt_adt.hpp 2010-09-16 18:33:32 EDT (Thu, 16 Sep 2010)
@@ -7,8 +7,8 @@
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
==============================================================================*/
-#ifndef BOOST_FUSION_ADAPTED_CLASS_ADAPT_CLASS_HPP
-#define BOOST_FUSION_ADAPTED_CLASS_ADAPT_CLASS_HPP
+#ifndef BOOST_FUSION_ADAPTED_ADT_ADAPT_ADT_HPP
+#define BOOST_FUSION_ADAPTED_ADT_ADAPT_ADT_HPP
#include <boost/fusion/support/internal/ref.hpp>
#include <boost/preprocessor/cat.hpp>
@@ -26,45 +26,45 @@
#include <boost/fusion/adapted/detail/struct/end_impl.hpp>
#include <boost/fusion/adapted/detail/struct/value_of_impl.hpp>
#include <boost/fusion/adapted/detail/struct/deref_impl.hpp>
-#include <boost/fusion/adapted/detail/class/extension.hpp>
-#include <boost/fusion/adapted/detail/class/adapt_base.hpp>
+#include <boost/fusion/adapted/detail/adt/extension.hpp>
+#include <boost/fusion/adapted/detail/adt/adapt_base.hpp>
-#define BOOST_FUSION_ADAPT_CLASS_FILLER_0(A, B, C, D)\
- ((A, B, C, D)) BOOST_FUSION_ADAPT_CLASS_FILLER_1
-#define BOOST_FUSION_ADAPT_CLASS_FILLER_1(A, B, C, D)\
- ((A, B, C, D)) BOOST_FUSION_ADAPT_CLASS_FILLER_0
-#define BOOST_FUSION_ADAPT_CLASS_FILLER_0_END
-#define BOOST_FUSION_ADAPT_CLASS_FILLER_1_END
+#define BOOST_FUSION_ADAPT_ADT_FILLER_0(A, B, C, D)\
+ ((A, B, C, D)) BOOST_FUSION_ADAPT_ADT_FILLER_1
+#define BOOST_FUSION_ADAPT_ADT_FILLER_1(A, B, C, D)\
+ ((A, B, C, D)) BOOST_FUSION_ADAPT_ADT_FILLER_0
+#define BOOST_FUSION_ADAPT_ADT_FILLER_0_END
+#define BOOST_FUSION_ADAPT_ADT_FILLER_1_END
-#define BOOST_FUSION_ADAPT_CLASS_C(TEMPLATE_PARAMS_SEQ, NAME_SEQ, I, ATTRIBUTE) \
- BOOST_FUSION_ADAPT_CLASS_C_BASE( \
+#define BOOST_FUSION_ADAPT_ADT_C(TEMPLATE_PARAMS_SEQ, NAME_SEQ, I, ATTRIBUTE) \
+ BOOST_FUSION_ADAPT_ADT_C_BASE( \
TEMPLATE_PARAMS_SEQ, NAME_SEQ, I, ATTRIBUTE, 4)
-#define BOOST_FUSION_ADAPT_TPL_CLASS(TEMPLATE_PARAMS_SEQ, NAME_SEQ , ATTRIBUTES)\
+#define BOOST_FUSION_ADAPT_TPL_ADT(TEMPLATE_PARAMS_SEQ, NAME_SEQ , ATTRIBUTES) \
BOOST_FUSION_ADAPT_STRUCT_BASE( \
(1)TEMPLATE_PARAMS_SEQ, \
(1)NAME_SEQ, \
struct_tag, \
0, \
- BOOST_PP_CAT(BOOST_FUSION_ADAPT_CLASS_FILLER_0 ATTRIBUTES,_END), \
- BOOST_FUSION_ADAPT_CLASS_C)
+ BOOST_PP_CAT(BOOST_FUSION_ADAPT_ADT_FILLER_0 ATTRIBUTES,_END), \
+ BOOST_FUSION_ADAPT_ADT_C)
-#define BOOST_FUSION_ADAPT_CLASS(NAME, ATTRIBUTES) \
+#define BOOST_FUSION_ADAPT_ADT(NAME, ATTRIBUTES) \
BOOST_FUSION_ADAPT_STRUCT_BASE( \
(0), \
(0)(NAME), \
struct_tag, \
0, \
- BOOST_PP_CAT(BOOST_FUSION_ADAPT_CLASS_FILLER_0 ATTRIBUTES,_END), \
- BOOST_FUSION_ADAPT_CLASS_C)
+ BOOST_PP_CAT(BOOST_FUSION_ADAPT_ADT_FILLER_0 ATTRIBUTES,_END), \
+ BOOST_FUSION_ADAPT_ADT_C)
-#define BOOST_FUSION_ADAPT_CLASS_AS_VIEW(NAME, ATTRIBUTES) \
+#define BOOST_FUSION_ADAPT_ADT_AS_VIEW(NAME, ATTRIBUTES) \
BOOST_FUSION_ADAPT_STRUCT_BASE( \
(0), \
(0)(NAME), \
struct_tag, \
1, \
- BOOST_PP_CAT(BOOST_FUSION_ADAPT_CLASS_FILLER_0 ATTRIBUTES,_END), \
- BOOST_FUSION_ADAPT_CLASS_C)
+ BOOST_PP_CAT(BOOST_FUSION_ADAPT_ADT_FILLER_0 ATTRIBUTES,_END), \
+ BOOST_FUSION_ADAPT_ADT_C)
#endif
Copied: sandbox/SOC/2009/fusion/boost/fusion/adapted/adt/adapt_adt_named.hpp (from r65440, /sandbox/SOC/2009/fusion/boost/fusion/adapted/class/adapt_class_named.hpp)
==============================================================================
--- /sandbox/SOC/2009/fusion/boost/fusion/adapted/class/adapt_class_named.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/adt/adapt_adt_named.hpp 2010-09-16 18:33:32 EDT (Thu, 16 Sep 2010)
@@ -7,24 +7,24 @@
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
==============================================================================*/
-#ifndef BOOST_FUSION_ADAPTED_CLASS_ADAPT_CLASS_NAMED_HPP
-#define BOOST_FUSION_ADAPTED_CLASS_ADAPT_CLASS_NAMED_HPP
+#ifndef BOOST_FUSION_ADAPTED_ADT_ADAPT_ADT_NAMED_HPP
+#define BOOST_FUSION_ADAPTED_ADT_ADAPT_ADT_NAMED_HPP
-#include <boost/fusion/adapted/class/adapt_class.hpp>
+#include <boost/fusion/adapted/adt/adapt_adt.hpp>
#include <boost/fusion/adapted/detail/struct/proxy_type.hpp>
-#define BOOST_FUSION_ADAPT_CLASS_NAMED_NS( \
+#define BOOST_FUSION_ADAPT_ADT_NAMED_NS( \
WRAPPED_TYPE, NAMESPACE_SEQ, NAME, ATTRIBUTES) \
\
BOOST_FUSION_ADAPT_STRUCT_DEFINE_PROXY_TYPE_IMPL( \
WRAPPED_TYPE,(0)NAMESPACE_SEQ,NAME) \
\
- BOOST_FUSION_ADAPT_CLASS_AS_VIEW( \
+ BOOST_FUSION_ADAPT_ADT_AS_VIEW( \
BOOST_FUSION_ADAPT_STRUCT_NAMESPACE_DECLARATION((0)NAMESPACE_SEQ)NAME, \
ATTRIBUTES)
-#define BOOST_FUSION_ADAPT_CLASS_NAMED(WRAPPED_TYPE, NAME, ATTRIBUTES) \
- BOOST_FUSION_ADAPT_CLASS_NAMED_NS( \
+#define BOOST_FUSION_ADAPT_ADT_NAMED(WRAPPED_TYPE, NAME, ATTRIBUTES) \
+ BOOST_FUSION_ADAPT_ADT_NAMED_NS( \
WRAPPED_TYPE,(boost)(fusion)(adapted),NAME,ATTRIBUTES)
#endif
Copied: sandbox/SOC/2009/fusion/boost/fusion/adapted/adt/adapt_assoc_adt.hpp (from r65440, /sandbox/SOC/2009/fusion/boost/fusion/adapted/class/adapt_assoc_class.hpp)
==============================================================================
--- /sandbox/SOC/2009/fusion/boost/fusion/adapted/class/adapt_assoc_class.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/adt/adapt_assoc_adt.hpp 2010-09-16 18:33:32 EDT (Thu, 16 Sep 2010)
@@ -7,8 +7,8 @@
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
==============================================================================*/
-#ifndef BOOST_FUSION_ADAPTED_CLASS_ADAPT_ASSOC_CLASS_HPP
-#define BOOST_FUSION_ADAPTED_CLASS_ADAPT_ASSOC_CLASS_HPP
+#ifndef BOOST_FUSION_ADAPTED_ADT_ADAPT_ASSOC_ADT_HPP
+#define BOOST_FUSION_ADAPTED_ADT_ADAPT_ASSOC_ADT_HPP
#include <boost/fusion/support/internal/ref.hpp>
#include <boost/preprocessor/cat.hpp>
@@ -30,20 +30,20 @@
#include <boost/fusion/adapted/detail/struct/deref_data_impl.hpp>
#include <boost/fusion/adapted/detail/struct/key_of_impl.hpp>
#include <boost/fusion/adapted/detail/struct/value_of_data_impl.hpp>
-#include <boost/fusion/adapted/detail/class/extension.hpp>
-#include <boost/fusion/adapted/detail/class/adapt_base.hpp>
+#include <boost/fusion/adapted/detail/adt/extension.hpp>
+#include <boost/fusion/adapted/detail/adt/adapt_base.hpp>
-#define BOOST_FUSION_ADAPT_ASSOC_CLASS_FILLER_0(A, B, C, D, E)\
- ((A, B, C, D, E)) BOOST_FUSION_ADAPT_ASSOC_CLASS_FILLER_1
-#define BOOST_FUSION_ADAPT_ASSOC_CLASS_FILLER_1(A, B, C, D, E)\
- ((A, B, C, D, E)) BOOST_FUSION_ADAPT_ASSOC_CLASS_FILLER_0
-#define BOOST_FUSION_ADAPT_ASSOC_CLASS_FILLER_0_END
-#define BOOST_FUSION_ADAPT_ASSOC_CLASS_FILLER_1_END
+#define BOOST_FUSION_ADAPT_ASSOC_ADT_FILLER_0(A, B, C, D, E)\
+ ((A, B, C, D, E)) BOOST_FUSION_ADAPT_ASSOC_ADT_FILLER_1
+#define BOOST_FUSION_ADAPT_ASSOC_ADT_FILLER_1(A, B, C, D, E)\
+ ((A, B, C, D, E)) BOOST_FUSION_ADAPT_ASSOC_ADT_FILLER_0
+#define BOOST_FUSION_ADAPT_ASSOC_ADT_FILLER_0_END
+#define BOOST_FUSION_ADAPT_ASSOC_ADT_FILLER_1_END
-#define BOOST_FUSION_ADAPT_ASSOC_CLASS_C( \
+#define BOOST_FUSION_ADAPT_ASSOC_ADT_C( \
TEMPLATE_PARAMS_SEQ, NAME_SEQ, I, ATTRIBUTE) \
\
- BOOST_FUSION_ADAPT_CLASS_C_BASE(TEMPLATE_PARAMS_SEQ,NAME_SEQ,I,ATTRIBUTE,5) \
+ BOOST_FUSION_ADAPT_ADT_C_BASE(TEMPLATE_PARAMS_SEQ,NAME_SEQ,I,ATTRIBUTE,5) \
\
template< \
BOOST_FUSION_ADAPT_STRUCT_UNPACK_TEMPLATE_PARAMS(TEMPLATE_PARAMS_SEQ) \
@@ -53,7 +53,7 @@
typedef BOOST_PP_TUPLE_ELEM(5, 4, ATTRIBUTE) type; \
};
-#define BOOST_FUSION_ADAPT_ASSOC_TPL_CLASS( \
+#define BOOST_FUSION_ADAPT_ASSOC_TPL_ADT( \
TEMPLATE_PARAMS_SEQ, NAME_SEQ, ATTRIBUTES) \
\
BOOST_FUSION_ADAPT_STRUCT_BASE( \
@@ -61,25 +61,25 @@
(1)NAME_SEQ, \
assoc_struct_tag, \
0, \
- BOOST_PP_CAT(BOOST_FUSION_ADAPT_ASSOC_CLASS_FILLER_0 ATTRIBUTES,_END), \
- BOOST_FUSION_ADAPT_ASSOC_CLASS_C)
+ BOOST_PP_CAT(BOOST_FUSION_ADAPT_ASSOC_ADT_FILLER_0 ATTRIBUTES,_END), \
+ BOOST_FUSION_ADAPT_ASSOC_ADT_C)
-#define BOOST_FUSION_ADAPT_ASSOC_CLASS(NAME, ATTRIBUTES) \
+#define BOOST_FUSION_ADAPT_ASSOC_ADT(NAME, ATTRIBUTES) \
BOOST_FUSION_ADAPT_STRUCT_BASE( \
(0), \
(0)(NAME), \
assoc_struct_tag, \
0, \
- BOOST_PP_CAT(BOOST_FUSION_ADAPT_ASSOC_CLASS_FILLER_0 ATTRIBUTES,_END), \
- BOOST_FUSION_ADAPT_ASSOC_CLASS_C)
+ BOOST_PP_CAT(BOOST_FUSION_ADAPT_ASSOC_ADT_FILLER_0 ATTRIBUTES,_END), \
+ BOOST_FUSION_ADAPT_ASSOC_ADT_C)
-#define BOOST_FUSION_ADAPT_ASSOC_CLASS_AS_VIEW(NAME, ATTRIBUTES) \
+#define BOOST_FUSION_ADAPT_ASSOC_ADT_AS_VIEW(NAME, ATTRIBUTES) \
BOOST_FUSION_ADAPT_STRUCT_BASE( \
(0), \
(0)(NAME), \
assoc_struct_tag, \
1, \
- BOOST_PP_CAT(BOOST_FUSION_ADAPT_ASSOC_CLASS_FILLER_0 ATTRIBUTES,_END), \
- BOOST_FUSION_ADAPT_ASSOC_CLASS_C)
+ BOOST_PP_CAT(BOOST_FUSION_ADAPT_ASSOC_ADT_FILLER_0 ATTRIBUTES,_END), \
+ BOOST_FUSION_ADAPT_ASSOC_ADT_C)
#endif
Copied: sandbox/SOC/2009/fusion/boost/fusion/adapted/adt/adapt_assoc_adt_named.hpp (from r65440, /sandbox/SOC/2009/fusion/boost/fusion/adapted/class/adapt_assoc_class_named.hpp)
==============================================================================
--- /sandbox/SOC/2009/fusion/boost/fusion/adapted/class/adapt_assoc_class_named.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/adt/adapt_assoc_adt_named.hpp 2010-09-16 18:33:32 EDT (Thu, 16 Sep 2010)
@@ -5,24 +5,24 @@
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
==============================================================================*/
-#ifndef BOOST_FUSION_ADAPTED_CLASS_ADAPT_ASSOC_CLASS_NAMED_HPP
-#define BOOST_FUSION_ADAPTED_CLASS_ADAPT_ASSOC_CLASS_NAMED_HPP
+#ifndef BOOST_FUSION_ADAPTED_ADT_ADAPT_ASSOC_ADT_NAMED_HPP
+#define BOOST_FUSION_ADAPTED_ADT_ADAPT_ASSOC_ADT_NAMED_HPP
-#include <boost/fusion/adapted/class/adapt_assoc_class.hpp>
+#include <boost/fusion/adapted/adt/adapt_assoc_adt.hpp>
#include <boost/fusion/adapted/detail/struct/proxy_type.hpp>
-#define BOOST_FUSION_ADAPT_ASSOC_CLASS_NAMED_NS( \
+#define BOOST_FUSION_ADAPT_ASSOC_ADT_NAMED_NS( \
WRAPPED_TYPE, NAMESPACE_SEQ, NAME, ATTRIBUTES) \
\
BOOST_FUSION_ADAPT_STRUCT_DEFINE_PROXY_TYPE_IMPL( \
WRAPPED_TYPE,(0)NAMESPACE_SEQ,NAME) \
\
- BOOST_FUSION_ADAPT_ASSOC_CLASS_AS_VIEW( \
+ BOOST_FUSION_ADAPT_ASSOC_ADT_AS_VIEW( \
BOOST_FUSION_ADAPT_STRUCT_NAMESPACE_DECLARATION((0)NAMESPACE_SEQ)NAME, \
ATTRIBUTES)
-#define BOOST_FUSION_ADAPT_ASSOC_CLASS_NAMED(WRAPPED_TYPE, NAME, ATTRIBUTES) \
- BOOST_FUSION_ADAPT_ASSOC_CLASS_NAMED_NS( \
+#define BOOST_FUSION_ADAPT_ASSOC_ADT_NAMED(WRAPPED_TYPE, NAME, ATTRIBUTES) \
+ BOOST_FUSION_ADAPT_ASSOC_ADT_NAMED_NS( \
WRAPPED_TYPE,(boost)(fusion)(adapted),NAME,ATTRIBUTES)
#endif
Deleted: /sandbox/SOC/2009/fusion/boost/fusion/adapted/class/adapt_assoc_class.hpp
==============================================================================
--- /sandbox/SOC/2009/fusion/boost/fusion/adapted/class/adapt_assoc_class.hpp 2010-09-16 18:33:32 EDT (Thu, 16 Sep 2010)
+++ (empty file)
@@ -1,85 +0,0 @@
-/*==============================================================================
- Copyright (c) 2001-2009 Joel de Guzman
- Copyright (c) 2007 Dan Marsden
- Copyright (c) 2010 Christopher Schmidt
-
- Distributed under the Boost Software License, Version 1.0. (See accompanying
- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-
-#ifndef BOOST_FUSION_ADAPTED_CLASS_ADAPT_ASSOC_CLASS_HPP
-#define BOOST_FUSION_ADAPTED_CLASS_ADAPT_ASSOC_CLASS_HPP
-
-#include <boost/fusion/support/internal/ref.hpp>
-#include <boost/preprocessor/cat.hpp>
-#include <boost/preprocessor/empty.hpp>
-#include <boost/preprocessor/tuple/elem.hpp>
-
-#include <boost/fusion/adapted/detail/struct/extension.hpp>
-#include <boost/fusion/adapted/detail/struct/adapt_base.hpp>
-#include <boost/fusion/adapted/detail/struct/at_impl.hpp>
-#include <boost/fusion/adapted/detail/struct/is_view_impl.hpp>
-#include <boost/fusion/adapted/detail/struct/is_sequence_impl.hpp>
-#include <boost/fusion/adapted/detail/struct/value_at_impl.hpp>
-#include <boost/fusion/adapted/detail/struct/category_of_impl.hpp>
-#include <boost/fusion/adapted/detail/struct/size_impl.hpp>
-#include <boost/fusion/adapted/detail/struct/begin_impl.hpp>
-#include <boost/fusion/adapted/detail/struct/end_impl.hpp>
-#include <boost/fusion/adapted/detail/struct/value_of_impl.hpp>
-#include <boost/fusion/adapted/detail/struct/deref_impl.hpp>
-#include <boost/fusion/adapted/detail/struct/deref_data_impl.hpp>
-#include <boost/fusion/adapted/detail/struct/key_of_impl.hpp>
-#include <boost/fusion/adapted/detail/struct/value_of_data_impl.hpp>
-#include <boost/fusion/adapted/detail/class/extension.hpp>
-#include <boost/fusion/adapted/detail/class/adapt_base.hpp>
-
-#define BOOST_FUSION_ADAPT_ASSOC_CLASS_FILLER_0(A, B, C, D, E)\
- ((A, B, C, D, E)) BOOST_FUSION_ADAPT_ASSOC_CLASS_FILLER_1
-#define BOOST_FUSION_ADAPT_ASSOC_CLASS_FILLER_1(A, B, C, D, E)\
- ((A, B, C, D, E)) BOOST_FUSION_ADAPT_ASSOC_CLASS_FILLER_0
-#define BOOST_FUSION_ADAPT_ASSOC_CLASS_FILLER_0_END
-#define BOOST_FUSION_ADAPT_ASSOC_CLASS_FILLER_1_END
-
-#define BOOST_FUSION_ADAPT_ASSOC_CLASS_C( \
- TEMPLATE_PARAMS_SEQ, NAME_SEQ, I, ATTRIBUTE) \
- \
- BOOST_FUSION_ADAPT_CLASS_C_BASE(TEMPLATE_PARAMS_SEQ,NAME_SEQ,I,ATTRIBUTE,5) \
- \
- template< \
- BOOST_FUSION_ADAPT_STRUCT_UNPACK_TEMPLATE_PARAMS(TEMPLATE_PARAMS_SEQ) \
- > \
- struct struct_assoc_key<BOOST_FUSION_ADAPT_STRUCT_UNPACK_NAME(NAME_SEQ), I> \
- { \
- typedef BOOST_PP_TUPLE_ELEM(5, 4, ATTRIBUTE) type; \
- };
-
-#define BOOST_FUSION_ADAPT_ASSOC_TPL_CLASS( \
- TEMPLATE_PARAMS_SEQ, NAME_SEQ, ATTRIBUTES) \
- \
- BOOST_FUSION_ADAPT_STRUCT_BASE( \
- (1)TEMPLATE_PARAMS_SEQ, \
- (1)NAME_SEQ, \
- assoc_struct_tag, \
- 0, \
- BOOST_PP_CAT(BOOST_FUSION_ADAPT_ASSOC_CLASS_FILLER_0 ATTRIBUTES,_END), \
- BOOST_FUSION_ADAPT_ASSOC_CLASS_C)
-
-#define BOOST_FUSION_ADAPT_ASSOC_CLASS(NAME, ATTRIBUTES) \
- BOOST_FUSION_ADAPT_STRUCT_BASE( \
- (0), \
- (0)(NAME), \
- assoc_struct_tag, \
- 0, \
- BOOST_PP_CAT(BOOST_FUSION_ADAPT_ASSOC_CLASS_FILLER_0 ATTRIBUTES,_END), \
- BOOST_FUSION_ADAPT_ASSOC_CLASS_C)
-
-#define BOOST_FUSION_ADAPT_ASSOC_CLASS_AS_VIEW(NAME, ATTRIBUTES) \
- BOOST_FUSION_ADAPT_STRUCT_BASE( \
- (0), \
- (0)(NAME), \
- assoc_struct_tag, \
- 1, \
- BOOST_PP_CAT(BOOST_FUSION_ADAPT_ASSOC_CLASS_FILLER_0 ATTRIBUTES,_END), \
- BOOST_FUSION_ADAPT_ASSOC_CLASS_C)
-
-#endif
Deleted: /sandbox/SOC/2009/fusion/boost/fusion/adapted/class/adapt_assoc_class_named.hpp
==============================================================================
--- /sandbox/SOC/2009/fusion/boost/fusion/adapted/class/adapt_assoc_class_named.hpp 2010-09-16 18:33:32 EDT (Thu, 16 Sep 2010)
+++ (empty file)
@@ -1,28 +0,0 @@
-/*==============================================================================
- Copyright (c) 2010 Christopher Schmidt
-
- Distributed under the Boost Software License, Version 1.0. (See accompanying
- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-
-#ifndef BOOST_FUSION_ADAPTED_CLASS_ADAPT_ASSOC_CLASS_NAMED_HPP
-#define BOOST_FUSION_ADAPTED_CLASS_ADAPT_ASSOC_CLASS_NAMED_HPP
-
-#include <boost/fusion/adapted/class/adapt_assoc_class.hpp>
-#include <boost/fusion/adapted/detail/struct/proxy_type.hpp>
-
-#define BOOST_FUSION_ADAPT_ASSOC_CLASS_NAMED_NS( \
- WRAPPED_TYPE, NAMESPACE_SEQ, NAME, ATTRIBUTES) \
- \
- BOOST_FUSION_ADAPT_STRUCT_DEFINE_PROXY_TYPE_IMPL( \
- WRAPPED_TYPE,(0)NAMESPACE_SEQ,NAME) \
- \
- BOOST_FUSION_ADAPT_ASSOC_CLASS_AS_VIEW( \
- BOOST_FUSION_ADAPT_STRUCT_NAMESPACE_DECLARATION((0)NAMESPACE_SEQ)NAME, \
- ATTRIBUTES)
-
-#define BOOST_FUSION_ADAPT_ASSOC_CLASS_NAMED(WRAPPED_TYPE, NAME, ATTRIBUTES) \
- BOOST_FUSION_ADAPT_ASSOC_CLASS_NAMED_NS( \
- WRAPPED_TYPE,(boost)(fusion)(adapted),NAME,ATTRIBUTES)
-
-#endif
Deleted: /sandbox/SOC/2009/fusion/boost/fusion/adapted/class/adapt_class.hpp
==============================================================================
--- /sandbox/SOC/2009/fusion/boost/fusion/adapted/class/adapt_class.hpp 2010-09-16 18:33:32 EDT (Thu, 16 Sep 2010)
+++ (empty file)
@@ -1,70 +0,0 @@
-/*==============================================================================
- Copyright (c) 2001-2009 Joel de Guzman
- Copyright (c) 2009-2010 Hartmut Kaiser
- Copyright (c) 2010 Christopher Schmidt
-
- Distributed under the Boost Software License, Version 1.0. (See accompanying
- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-
-#ifndef BOOST_FUSION_ADAPTED_CLASS_ADAPT_CLASS_HPP
-#define BOOST_FUSION_ADAPTED_CLASS_ADAPT_CLASS_HPP
-
-#include <boost/fusion/support/internal/ref.hpp>
-#include <boost/preprocessor/cat.hpp>
-#include <boost/preprocessor/empty.hpp>
-
-#include <boost/fusion/adapted/detail/struct/extension.hpp>
-#include <boost/fusion/adapted/detail/struct/adapt_base.hpp>
-#include <boost/fusion/adapted/detail/struct/at_impl.hpp>
-#include <boost/fusion/adapted/detail/struct/is_view_impl.hpp>
-#include <boost/fusion/adapted/detail/struct/is_sequence_impl.hpp>
-#include <boost/fusion/adapted/detail/struct/value_at_impl.hpp>
-#include <boost/fusion/adapted/detail/struct/category_of_impl.hpp>
-#include <boost/fusion/adapted/detail/struct/size_impl.hpp>
-#include <boost/fusion/adapted/detail/struct/begin_impl.hpp>
-#include <boost/fusion/adapted/detail/struct/end_impl.hpp>
-#include <boost/fusion/adapted/detail/struct/value_of_impl.hpp>
-#include <boost/fusion/adapted/detail/struct/deref_impl.hpp>
-#include <boost/fusion/adapted/detail/class/extension.hpp>
-#include <boost/fusion/adapted/detail/class/adapt_base.hpp>
-
-#define BOOST_FUSION_ADAPT_CLASS_FILLER_0(A, B, C, D)\
- ((A, B, C, D)) BOOST_FUSION_ADAPT_CLASS_FILLER_1
-#define BOOST_FUSION_ADAPT_CLASS_FILLER_1(A, B, C, D)\
- ((A, B, C, D)) BOOST_FUSION_ADAPT_CLASS_FILLER_0
-#define BOOST_FUSION_ADAPT_CLASS_FILLER_0_END
-#define BOOST_FUSION_ADAPT_CLASS_FILLER_1_END
-
-#define BOOST_FUSION_ADAPT_CLASS_C(TEMPLATE_PARAMS_SEQ, NAME_SEQ, I, ATTRIBUTE) \
- BOOST_FUSION_ADAPT_CLASS_C_BASE( \
- TEMPLATE_PARAMS_SEQ, NAME_SEQ, I, ATTRIBUTE, 4)
-
-#define BOOST_FUSION_ADAPT_TPL_CLASS(TEMPLATE_PARAMS_SEQ, NAME_SEQ , ATTRIBUTES)\
- BOOST_FUSION_ADAPT_STRUCT_BASE( \
- (1)TEMPLATE_PARAMS_SEQ, \
- (1)NAME_SEQ, \
- struct_tag, \
- 0, \
- BOOST_PP_CAT(BOOST_FUSION_ADAPT_CLASS_FILLER_0 ATTRIBUTES,_END), \
- BOOST_FUSION_ADAPT_CLASS_C)
-
-#define BOOST_FUSION_ADAPT_CLASS(NAME, ATTRIBUTES) \
- BOOST_FUSION_ADAPT_STRUCT_BASE( \
- (0), \
- (0)(NAME), \
- struct_tag, \
- 0, \
- BOOST_PP_CAT(BOOST_FUSION_ADAPT_CLASS_FILLER_0 ATTRIBUTES,_END), \
- BOOST_FUSION_ADAPT_CLASS_C)
-
-#define BOOST_FUSION_ADAPT_CLASS_AS_VIEW(NAME, ATTRIBUTES) \
- BOOST_FUSION_ADAPT_STRUCT_BASE( \
- (0), \
- (0)(NAME), \
- struct_tag, \
- 1, \
- BOOST_PP_CAT(BOOST_FUSION_ADAPT_CLASS_FILLER_0 ATTRIBUTES,_END), \
- BOOST_FUSION_ADAPT_CLASS_C)
-
-#endif
Deleted: /sandbox/SOC/2009/fusion/boost/fusion/adapted/class/adapt_class_named.hpp
==============================================================================
--- /sandbox/SOC/2009/fusion/boost/fusion/adapted/class/adapt_class_named.hpp 2010-09-16 18:33:32 EDT (Thu, 16 Sep 2010)
+++ (empty file)
@@ -1,30 +0,0 @@
-/*==============================================================================
- Copyright (c) 2001-2009 Joel de Guzman
- Copyright (c) 2009-2010 Hartmut Kaiser
- Copyright (c) 2010 Christopher Schmidt
-
- Distributed under the Boost Software License, Version 1.0. (See accompanying
- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-
-#ifndef BOOST_FUSION_ADAPTED_CLASS_ADAPT_CLASS_NAMED_HPP
-#define BOOST_FUSION_ADAPTED_CLASS_ADAPT_CLASS_NAMED_HPP
-
-#include <boost/fusion/adapted/class/adapt_class.hpp>
-#include <boost/fusion/adapted/detail/struct/proxy_type.hpp>
-
-#define BOOST_FUSION_ADAPT_CLASS_NAMED_NS( \
- WRAPPED_TYPE, NAMESPACE_SEQ, NAME, ATTRIBUTES) \
- \
- BOOST_FUSION_ADAPT_STRUCT_DEFINE_PROXY_TYPE_IMPL( \
- WRAPPED_TYPE,(0)NAMESPACE_SEQ,NAME) \
- \
- BOOST_FUSION_ADAPT_CLASS_AS_VIEW( \
- BOOST_FUSION_ADAPT_STRUCT_NAMESPACE_DECLARATION((0)NAMESPACE_SEQ)NAME, \
- ATTRIBUTES)
-
-#define BOOST_FUSION_ADAPT_CLASS_NAMED(WRAPPED_TYPE, NAME, ATTRIBUTES) \
- BOOST_FUSION_ADAPT_CLASS_NAMED_NS( \
- WRAPPED_TYPE,(boost)(fusion)(adapted),NAME,ATTRIBUTES)
-
-#endif
Deleted: sandbox/SOC/2009/fusion/boost/fusion/adapted/class.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/class.hpp 2010-09-16 18:33:32 EDT (Thu, 16 Sep 2010)
+++ (empty file)
@@ -1,18 +0,0 @@
-/*==============================================================================
- Copyright (c) 2001-2006 Joel de Guzman
- Copyright (c) 2005-2006 Dan Marsden
- Copyright (c) 2010 Christopher Schmidt
-
- Distributed under the Boost Software License, Version 1.0. (See accompanying
- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-
-#ifndef BOOST_FUSION_ADAPTED_CLASS_HPP
-#define BOOST_FUSION_ADAPTED_CLASS_HPP
-
-#include <boost/fusion/adapted/class/adapt_assoc_class_named.hpp>
-#include <boost/fusion/adapted/class/adapt_assoc_class.hpp>
-#include <boost/fusion/adapted/class/adapt_class_named.hpp>
-#include <boost/fusion/adapted/class/adapt_class.hpp>
-
-#endif
Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/adt/adapt_base.hpp
==============================================================================
--- /sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/class/adapt_base.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/adt/adapt_base.hpp 2010-09-16 18:33:32 EDT (Thu, 16 Sep 2010)
@@ -7,8 +7,8 @@
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
==============================================================================*/
-#ifndef BOOST_FUSION_ADAPTED_DETAIL_CLASS_ADAPT_BASE_HPP
-#define BOOST_FUSION_ADAPTED_DETAIL_CLASS_ADAPT_BASE_HPP
+#ifndef BOOST_FUSION_ADAPTED_DETAIL_ADT_ADAPT_BASE_HPP
+#define BOOST_FUSION_ADAPTED_DETAIL_ADT_ADAPT_BASE_HPP
#include <boost/preprocessor/control/if.hpp>
#include <boost/preprocessor/seq/seq.hpp>
@@ -16,60 +16,81 @@
#include <boost/mpl/if.hpp>
#include <boost/type_traits/is_const.hpp>
-//cschmidt: Spirit relies on Fusion defining class_member_proxy in the
-//boost::fusion::extension namespace, with two nested types named lvalue and
-//rvalue.
-
-#define BOOST_FUSION_ADAPT_CLASS_GET_IDENTITY_TEMPLATE_IMPL(TEMPLATE_PARAMS_SEQ)\
+#define BOOST_FUSION_ADAPT_ADT_GET_IDENTITY_TEMPLATE_IMPL(TEMPLATE_PARAMS_SEQ) \
typename detail::get_identity< \
lvalue \
, BOOST_PP_SEQ_ELEM(1,TEMPLATE_PARAMS_SEQ) \
>::type
-#define BOOST_FUSION_ADAPT_CLASS_GET_IDENTITY_NON_TEMPLATE_IMPL( \
+#define BOOST_FUSION_ADAPT_ADT_GET_IDENTITY_NON_TEMPLATE_IMPL( \
TEMPLATE_PARAMS_SEQ) \
\
lvalue
-#define BOOST_FUSION_ADAPT_CLASS_C_BASE(\
+#define BOOST_FUSION_ADAPT_ADT_C_BASE( \
TEMPLATE_PARAMS_SEQ,NAME_SEQ,I,ATTRIBUTE,ATTRIBUTE_TUPEL_SIZE) \
\
template< \
BOOST_FUSION_ADAPT_STRUCT_UNPACK_TEMPLATE_PARAMS(TEMPLATE_PARAMS_SEQ) \
> \
- struct access::class_member_proxy< \
+ struct access::adt_attribute_proxy< \
BOOST_FUSION_ADAPT_STRUCT_UNPACK_NAME(NAME_SEQ) \
, I \
+ , true \
> \
{ \
- typedef BOOST_PP_TUPLE_ELEM(ATTRIBUTE_TUPEL_SIZE, 0, ATTRIBUTE) lvalue; \
- typedef BOOST_PP_TUPLE_ELEM(ATTRIBUTE_TUPEL_SIZE, 1, ATTRIBUTE) rvalue; \
+ typedef BOOST_PP_TUPLE_ELEM(ATTRIBUTE_TUPEL_SIZE, 1, ATTRIBUTE) type; \
\
- class_member_proxy(BOOST_FUSION_ADAPT_STRUCT_UNPACK_NAME(NAME_SEQ)& obj)\
- : obj(obj) \
+ explicit \
+ adt_attribute_proxy( \
+ BOOST_FUSION_ADAPT_STRUCT_UNPACK_NAME(NAME_SEQ) const& o) \
+ : obj(o) \
{} \
\
- template<class Arg> \
- class_member_proxy& \
- operator=(BOOST_FUSION_R_ELSE_CLREF(Arg) val) \
+ operator type() const \
{ \
- BOOST_PP_TUPLE_ELEM(ATTRIBUTE_TUPEL_SIZE, 3, ATTRIBUTE); \
- return *this; \
+ return BOOST_PP_TUPLE_ELEM(ATTRIBUTE_TUPEL_SIZE, 2, ATTRIBUTE); \
} \
\
- class_member_proxy& \
- operator=(class_member_proxy const& val) \
+ BOOST_FUSION_ADAPT_STRUCT_UNPACK_NAME(NAME_SEQ) const& obj; \
+ \
+ private: \
+ adt_attribute_proxy& operator= (adt_attribute_proxy const&); \
+ }; \
+ \
+ template< \
+ BOOST_FUSION_ADAPT_STRUCT_UNPACK_TEMPLATE_PARAMS(TEMPLATE_PARAMS_SEQ) \
+ > \
+ struct access::adt_attribute_proxy< \
+ BOOST_FUSION_ADAPT_STRUCT_UNPACK_NAME(NAME_SEQ) \
+ , I \
+ , false \
+ > \
+ { \
+ typedef BOOST_PP_TUPLE_ELEM(ATTRIBUTE_TUPEL_SIZE, 0, ATTRIBUTE) type; \
+ \
+ explicit \
+ adt_attribute_proxy(BOOST_FUSION_ADAPT_STRUCT_UNPACK_NAME(NAME_SEQ)& o) \
+ : obj(o) \
+ {} \
+ \
+ template<class Arg> \
+ adt_attribute_proxy& \
+ operator=(Arg const& val) \
{ \
BOOST_PP_TUPLE_ELEM(ATTRIBUTE_TUPEL_SIZE, 3, ATTRIBUTE); \
return *this; \
} \
\
- operator lvalue() const \
+ operator type() const \
{ \
return BOOST_PP_TUPLE_ELEM(ATTRIBUTE_TUPEL_SIZE, 2, ATTRIBUTE); \
} \
\
BOOST_FUSION_ADAPT_STRUCT_UNPACK_NAME(NAME_SEQ)& obj; \
+ \
+ private: \
+ adt_attribute_proxy& operator= (adt_attribute_proxy const&); \
}; \
\
template< \
@@ -87,40 +108,28 @@
typedef \
BOOST_PP_IF( \
BOOST_PP_SEQ_HEAD(TEMPLATE_PARAMS_SEQ), \
- BOOST_FUSION_ADAPT_CLASS_GET_IDENTITY_TEMPLATE_IMPL, \
- BOOST_FUSION_ADAPT_CLASS_GET_IDENTITY_NON_TEMPLATE_IMPL)( \
+ BOOST_FUSION_ADAPT_ADT_GET_IDENTITY_TEMPLATE_IMPL, \
+ BOOST_FUSION_ADAPT_ADT_GET_IDENTITY_NON_TEMPLATE_IMPL)( \
TEMPLATE_PARAMS_SEQ) \
type; \
\
- template<typename Seq> \
+ template<typename SeqRef> \
struct apply \
{ \
- typedef typename detail::remove_reference<Seq>::type seq; \
typedef \
- class_member_proxy< \
+ adt_attribute_proxy< \
BOOST_FUSION_ADAPT_STRUCT_UNPACK_NAME(NAME_SEQ) \
, I \
+ , is_const< \
+ typename detail::remove_reference<SeqRef>::type \
+ >::value \
> \
- proxy; \
- \
- typedef typename \
- mpl::if_< \
- is_const<seq> \
- , BOOST_PP_TUPLE_ELEM(ATTRIBUTE_TUPEL_SIZE, 1, ATTRIBUTE) \
- , proxy \
- >::type \
type; \
\
- static proxy \
- call(BOOST_FUSION_ADAPT_STRUCT_UNPACK_NAME(NAME_SEQ)& obj) \
- { \
- return proxy(obj); \
- } \
- \
- static BOOST_PP_TUPLE_ELEM(ATTRIBUTE_TUPEL_SIZE, 1, ATTRIBUTE) \
- call(BOOST_FUSION_ADAPT_STRUCT_UNPACK_NAME(NAME_SEQ) const& obj) \
+ static type \
+ call(SeqRef obj) \
{ \
- return BOOST_PP_TUPLE_ELEM(ATTRIBUTE_TUPEL_SIZE, 2, ATTRIBUTE); \
+ return type(obj); \
} \
}; \
};
Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/adt/extension.hpp
==============================================================================
--- /sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/class/extension.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/adt/extension.hpp 2010-09-16 18:33:32 EDT (Thu, 16 Sep 2010)
@@ -7,8 +7,8 @@
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
==============================================================================*/
-#ifndef BOOST_FUSION_ADAPTED_DETAIL_CLASS_EXTENSION_HPP
-#define BOOST_FUSION_ADAPTED_DETAIL_CLASS_EXTENSION_HPP
+#ifndef BOOST_FUSION_ADAPTED_DETAIL_ADT_EXTENSION_HPP
+#define BOOST_FUSION_ADAPTED_DETAIL_ADT_EXTENSION_HPP
namespace boost { namespace fusion { namespace detail
{
Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/extension.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/extension.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/extension.hpp 2010-09-16 18:33:32 EDT (Thu, 16 Sep 2010)
@@ -31,8 +31,8 @@
template<typename Seq, int N>
struct struct_member;
- template<typename T, int N>
- struct class_member_proxy;
+ template<typename T, int N, bool Const>
+ struct adt_attribute_proxy;
};
template<typename Seq, int N>
Modified: sandbox/SOC/2009/fusion/boost/fusion/algorithm/iteration/detail/for_each.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/algorithm/iteration/detail/for_each.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/algorithm/iteration/detail/for_each.hpp 2010-09-16 18:33:32 EDT (Thu, 16 Sep 2010)
@@ -9,6 +9,7 @@
#ifndef BOOST_FUSION_ALGORITHM_ITERATION_DETAIL_FOR_EACH_HPP
#define BOOST_FUSION_ALGORITHM_ITERATION_DETAIL_FOR_EACH_HPP
+#include <boost/config.hpp>
#include <boost/fusion/sequence/intrinsic/begin.hpp>
#include <boost/fusion/sequence/intrinsic/end.hpp>
#include <boost/fusion/sequence/intrinsic/size.hpp>
@@ -24,13 +25,24 @@
#include <boost/preprocessor/control/expr_iif.hpp>
#include <boost/preprocessor/tuple/eat.hpp>
#include <boost/preprocessor/repetition/repeat.hpp>
+#include <boost/preprocessor/repetition/repeat_from_to.hpp>
namespace boost { namespace fusion { namespace detail
{
template<int N>
struct for_each_unrolled;
-#define BOOST_FUSION_UNROLLED_FOR_EACH_IMPL_N(Z,N,_) \
+ template<>
+ struct for_each_unrolled<0>
+ {
+ template<typename It0, typename F>
+ static void
+ call(It0 const&,BOOST_FUSION_RREF_ELSE_OBJ(F))
+ {}
+ };
+
+#ifdef BOOST_NO_AUTO_DECLARATIONS
+# define BOOST_FUSION_UNROLLED_FOR_EACH_IMPL_N(Z,N,_) \
f(fusion::deref(BOOST_PP_CAT(it,N))); \
\
typedef typename \
@@ -38,6 +50,13 @@
BOOST_PP_CAT(It,BOOST_PP_INC(N)); \
BOOST_PP_CAT(It,BOOST_PP_INC(N)) const BOOST_PP_CAT(it,BOOST_PP_INC(N))( \
fusion::next(BOOST_PP_CAT(it,N)));
+#else
+# define BOOST_FUSION_UNROLLED_FOR_EACH_IMPL_N(Z,N,_) \
+ f(fusion::deref(BOOST_PP_CAT(it,N))); \
+ \
+ auto const BOOST_PP_CAT(it,BOOST_PP_INC(N))( \
+ fusion::next(BOOST_PP_CAT(it,N)));
+#endif
#define BOOST_FUSION_UNROLLED_FOR_EACH_IMPL_NEXT(N_) \
for_each_unrolled<N-BOOST_FUSION_UNROLLED_DEPTH>::call( \
@@ -46,11 +65,11 @@
#define BOOST_FUSION_UNROLLED_FOR_EACH_IMPL(Z,N_,_) \
template<BOOST_PP_EXPR_IIF( \
- BOOST_PP_EQUAL(BOOST_PP_INC(N_),BOOST_FUSION_UNROLLED_DEPTH), int N) \
+ BOOST_PP_EQUAL(N_,BOOST_FUSION_UNROLLED_DEPTH), int N) \
> \
struct for_each_unrolled \
BOOST_PP_EXPR_IIF( \
- BOOST_PP_NOT_EQUAL(BOOST_PP_INC(N_),BOOST_FUSION_UNROLLED_DEPTH), <N_>) \
+ BOOST_PP_NOT_EQUAL(N_,BOOST_FUSION_UNROLLED_DEPTH), <N_>) \
{ \
template<typename It0, typename F> \
static void \
@@ -58,17 +77,21 @@
It0 const& BOOST_PP_EXPR_IF(N_,it0), \
BOOST_FUSION_RREF_ELSE_OBJ(F) BOOST_PP_EXPR_IF(N_,f)) \
{ \
- BOOST_PP_REPEAT(N_,BOOST_FUSION_UNROLLED_FOR_EACH_IMPL_N,_) \
+ BOOST_PP_REPEAT( \
+ BOOST_PP_DEC(N_), \
+ BOOST_FUSION_UNROLLED_FOR_EACH_IMPL_N,_) \
\
+ f(fusion::deref(BOOST_PP_CAT(it,BOOST_PP_DEC(N_)))); \
BOOST_PP_IIF( \
BOOST_PP_EQUAL(N_,BOOST_FUSION_UNROLLED_DEPTH), \
BOOST_FUSION_UNROLLED_FOR_EACH_IMPL_NEXT, \
- BOOST_PP_TUPLE_EAT(1))(N); \
+ BOOST_PP_TUPLE_EAT(1))(N_) \
} \
};
- BOOST_PP_REPEAT(
- BOOST_FUSION_UNROLLED_DEPTH,
+ BOOST_PP_REPEAT_FROM_TO(
+ 1,
+ BOOST_PP_INC(BOOST_FUSION_UNROLLED_DEPTH),
BOOST_FUSION_UNROLLED_FOR_EACH_IMPL,
_)
Added: sandbox/SOC/2009/fusion/boost/fusion/include/adapt_adt.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2009/fusion/boost/fusion/include/adapt_adt.hpp 2010-09-16 18:33:32 EDT (Thu, 16 Sep 2010)
@@ -0,0 +1,13 @@
+/*=============================================================================
+ Copyright (c) 2001-2007 Joel de Guzman
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
+
+#ifndef BOOST_FUSION_INCLUDE_ADAPT_ADT_HPP
+#define BOOST_FUSION_INCLUDE_ADAPT_ADT_HPP
+
+#include <boost/fusion/adapted/adt/adapt_adt.hpp>
+
+#endif
Added: sandbox/SOC/2009/fusion/boost/fusion/include/adapt_adt_named.cpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2009/fusion/boost/fusion/include/adapt_adt_named.cpp 2010-09-16 18:33:32 EDT (Thu, 16 Sep 2010)
@@ -0,0 +1,12 @@
+/*=============================================================================
+ Copyright (c) 2001-2009 Joel de Guzman
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
+#if !defined(FUSION_INCLUDE_ADAPT_ADT_NAMED)
+#define FUSION_INCLUDE_ADAPT_ADT_NAMED
+
+#include <boost/fusion/adapted/adt/adapt_adt_named.hpp>
+
+#endif
Added: sandbox/SOC/2009/fusion/boost/fusion/include/adapt_adt_named.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2009/fusion/boost/fusion/include/adapt_adt_named.hpp 2010-09-16 18:33:32 EDT (Thu, 16 Sep 2010)
@@ -0,0 +1,13 @@
+/*=============================================================================
+ Copyright (c) 2010 Christopher Schmidt
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
+
+#ifndef BOOST_FUSION_INCLUDE_ADAPT_ADT_NAMED_HPP
+#define BOOST_FUSION_INCLUDE_ADAPT_ADT_NAMED_HPP
+
+#include <boost/fusion/adapted/adt/adapt_adt_named.hpp>
+
+#endif
Added: sandbox/SOC/2009/fusion/boost/fusion/include/adapt_assoc_adt.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2009/fusion/boost/fusion/include/adapt_assoc_adt.hpp 2010-09-16 18:33:32 EDT (Thu, 16 Sep 2010)
@@ -0,0 +1,13 @@
+/*=============================================================================
+ Copyright (c) 2010 Christopher Schmidt
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
+
+#ifndef BOOST_FUSION_INCLUDE_ADAPT_ASSOC_ADT_HPP
+#define BOOST_FUSION_INCLUDE_ADAPT_ASSOC_ADR_HPP
+
+#include <boost/fusion/adapted/adt/adapt_assoc_adt.hpp>
+
+#endif
Added: sandbox/SOC/2009/fusion/boost/fusion/include/adapt_assoc_adt_named.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2009/fusion/boost/fusion/include/adapt_assoc_adt_named.hpp 2010-09-16 18:33:32 EDT (Thu, 16 Sep 2010)
@@ -0,0 +1,13 @@
+/*=============================================================================
+ Copyright (c) 2010 Christopher Schmidt
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
+
+#ifndef BOOST_FUSION_INCLUDE_ADAPT_ASSOC_ADT_NAMED_HPP
+#define BOOST_FUSION_INCLUDE_ADAPT_ASSOC_ADT_NAMED_HPP
+
+#include <boost/fusion/adapted/adt/adapt_assoc_adt_named.hpp>
+
+#endif
Deleted: sandbox/SOC/2009/fusion/boost/fusion/include/adapt_assoc_class.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/include/adapt_assoc_class.hpp 2010-09-16 18:33:32 EDT (Thu, 16 Sep 2010)
+++ (empty file)
@@ -1,13 +0,0 @@
-/*==============================================================================
- Copyright (c) 2010 Christopher Schmidt
-
- Distributed under the Boost Software License, Version 1.0. (See accompanying
- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-
-#ifndef BOOST_FUSION_INCLUDE_ADAPT_ASSOC_CLASS_HPP
-#define BOOST_FUSION_INCLUDE_ADAPT_ASSOC_CLASS_HPP
-
-#include <boost/fusion/adapted/class/adapt_assoc_class.hpp>
-
-#endif
Deleted: sandbox/SOC/2009/fusion/boost/fusion/include/adapt_assoc_class_named.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/include/adapt_assoc_class_named.hpp 2010-09-16 18:33:32 EDT (Thu, 16 Sep 2010)
+++ (empty file)
@@ -1,13 +0,0 @@
-/*==============================================================================
- Copyright (c) 2010 Christopher Schmidt
-
- Distributed under the Boost Software License, Version 1.0. (See accompanying
- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-
-#ifndef BOOST_FUSION_INCLUDE_ADAPT_ASSOC_CLASS_NAMED_HPP
-#define BOOST_FUSION_INCLUDE_ADAPT_ASSOC_CLASS_NAMED_HPP
-
-#include <boost/fusion/adapted/class/adapt_assoc_class_named.hpp>
-
-#endif
Deleted: sandbox/SOC/2009/fusion/boost/fusion/include/adapt_class.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/include/adapt_class.hpp 2010-09-16 18:33:32 EDT (Thu, 16 Sep 2010)
+++ (empty file)
@@ -1,13 +0,0 @@
-/*==============================================================================
- Copyright (c) 2001-2007 Joel de Guzman
-
- Distributed under the Boost Software License, Version 1.0. (See accompanying
- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-
-#ifndef BOOST_FUSION_INCLUDE_ADAPT_CLASS_HPP
-#define BOOST_FUSION_INCLUDE_ADAPT_CLASS_HPP
-
-#include <boost/fusion/adapted/class/adapt_class.hpp>
-
-#endif
Deleted: sandbox/SOC/2009/fusion/boost/fusion/include/adapt_class_named.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/include/adapt_class_named.hpp 2010-09-16 18:33:32 EDT (Thu, 16 Sep 2010)
+++ (empty file)
@@ -1,13 +0,0 @@
-/*==============================================================================
- Copyright (c) 2010 Christopher Schmidt
-
- Distributed under the Boost Software License, Version 1.0. (See accompanying
- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-
-#ifndef BOOST_FUSION_INCLUDE_ADAPT_CLASS_NAMED_HPP
-#define BOOST_FUSION_INCLUDE_ADAPT_CLASS_NAMED_HPP
-
-#include <boost/fusion/adapted/class/adapt_class_named.hpp>
-
-#endif
Modified: sandbox/SOC/2009/fusion/boost/fusion/sequence/comparison/detail/equal_to.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/sequence/comparison/detail/equal_to.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/sequence/comparison/detail/equal_to.hpp 2010-09-16 18:33:32 EDT (Thu, 16 Sep 2010)
@@ -44,9 +44,10 @@
static bool
call(It1 const& it1, It2 const& it2)
{
- return call(it1,
- it2,
- typename result_of::equal_to<It1, end1_type>::type());
+ return call(
+ it1,
+ it2,
+ typename result_of::equal_to<It1, end1_type>::type());
}
};
Modified: sandbox/SOC/2009/fusion/boost/fusion/sequence/comparison/detail/greater.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/sequence/comparison/detail/greater.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/sequence/comparison/detail/greater.hpp 2010-09-16 18:33:32 EDT (Thu, 16 Sep 2010)
@@ -36,8 +36,7 @@
call(It1 const& it1, It2 const& it2, mpl::false_)
{
return fusion::deref(it1) > fusion::deref(it2)||
- (!(fusion::deref(it2) > fusion::deref(it)) &&
- call(fusion::next(it1), fusion::next(it2)));
+ call(fusion::next(it1), fusion::next(it2));
}
template<typename It1, typename It2>
@@ -45,9 +44,9 @@
call(It1 const& it1, It2 const& it2)
{
return call(
- it1,
- it2,
- typename result_of::equal_to<It1, end1_type>::type());
+ it1,
+ it2,
+ typename result_of::equal_to<It1, end1_type>::type());
}
};
}}}
Modified: sandbox/SOC/2009/fusion/boost/fusion/sequence/comparison/detail/greater_equal.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/sequence/comparison/detail/greater_equal.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/sequence/comparison/detail/greater_equal.hpp 2010-09-16 18:33:32 EDT (Thu, 16 Sep 2010)
@@ -36,8 +36,7 @@
call(It1 const& it1, It2 const& it1, mpl::false_)
{
return fusion::deref(it1) >= fusion::deref(it2) ||
- (!(fusion::deref(it2) >= fusion::deref(it1)) &&
- call(fusion::next(a), fusion::next(b)));
+ call(fusion::next(a), fusion::next(b));
}
template<typename It1, typename It2>
@@ -45,9 +44,9 @@
call(It1 const& it1, It2 const& it2)
{
return call(
- it1,
- it2,
- typename result_of::equal_to<It1, end1_type>::type());
+ it1,
+ it2,
+ typename result_of::equal_to<It1, end1_type>::type());
}
};
}}}
Modified: sandbox/SOC/2009/fusion/boost/fusion/sequence/comparison/detail/less.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/sequence/comparison/detail/less.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/sequence/comparison/detail/less.hpp 2010-09-16 18:33:32 EDT (Thu, 16 Sep 2010)
@@ -36,8 +36,7 @@
call(It1 const& it1, I2 const& it2, mpl::false_)
{
return fusion::deref(it1) < fusion::deref(it2) ||
- (!(fusion::deref(it2) < fusion::deref(it1)) &&
- call(fusion::next(it1), fusion::next(it2)));
+ call(fusion::next(it1), fusion::next(it2));
}
template<typename It1, typename It2>
@@ -45,9 +44,9 @@
call(It1 const& it1, It2 const& it2)
{
return call(
- it1,
- it2,
- typename result_of::equal_to<It1, end1_type>::type());
+ it1,
+ it2,
+ typename result_of::equal_to<It1, end1_type>::type());
}
};
}}}
Modified: sandbox/SOC/2009/fusion/boost/fusion/sequence/comparison/detail/less_equal.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/sequence/comparison/detail/less_equal.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/sequence/comparison/detail/less_equal.hpp 2010-09-16 18:33:32 EDT (Thu, 16 Sep 2010)
@@ -36,8 +36,7 @@
call(It1 const& it1, It2 const& it2, mpl::false_)
{
return fusion::deref(it1) <= fusion::deref(it2) ||
- (!(fusion::deref(it2) <= fusion::deref(it1)) &&
- call(fusion::next(it1), fusion::next(it2)));
+ call(fusion::next(it1), fusion::next(it2));
}
template<typename It1, typename It2>
@@ -45,9 +44,9 @@
call(It1 const& it1, It2 const& it2)
{
return call(
- it1,
- it2,
- typename result_of::equal_to<It1, end1_type>::type());
+ it1,
+ it2,
+ typename result_of::equal_to<It1, end1_type>::type());
}
};
}}}
Modified: sandbox/SOC/2009/fusion/boost/fusion/sequence/comparison/detail/not_equal_to.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/sequence/comparison/detail/not_equal_to.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/sequence/comparison/detail/not_equal_to.hpp 2010-09-16 18:33:32 EDT (Thu, 16 Sep 2010)
@@ -36,7 +36,7 @@
call(It1 const& it1, It2 const& it2, mpl::false_)
{
return fusion::deref(it1) != fusion::deref(it2) ||
- call(fusion::next(it1), fusion::next(it2));
+ call(fusion::next(it1), fusion::next(it2));
}
template<typename It1, typename It2>
@@ -44,9 +44,9 @@
call(It1 const& it1, It2 const& it2)
{
return call(
- it1,
- it2,
- typename result_of::equal_to<It1, end1_type>::type());
+ it1,
+ it2,
+ typename result_of::equal_to<It1, end1_type>::type());
}
};
Modified: sandbox/SOC/2009/fusion/boost/fusion/support/config.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/support/config.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/fusion/support/config.hpp 2010-09-16 18:33:32 EDT (Thu, 16 Sep 2010)
@@ -9,7 +9,7 @@
#define BOOST_FUSION_SUPPORT_CONFIG_HPP
#ifndef BOOST_FUSION_UNROLLED_DEPTH
-# define BOOST_FUSION_UNROLLED_DEPTH 6
+# define BOOST_FUSION_UNROLLED_DEPTH 4
#endif
#endif
Modified: sandbox/SOC/2009/fusion/boost/proto/fusion.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/proto/fusion.hpp (original)
+++ sandbox/SOC/2009/fusion/boost/proto/fusion.hpp 2010-09-16 18:33:32 EDT (Thu, 16 Sep 2010)
@@ -749,6 +749,12 @@
{
typedef fusion::fusion_sequence_tag type;
};
+
+ template<typename Tag, typename Args, long Arity>
+ struct sequence_tag< proto::basic_expr<Tag, Args, Arity> >
+ {
+ typedef fusion::fusion_sequence_tag type;
+ };
}}
#if BOOST_MSVC
Added: sandbox/SOC/2009/fusion/libs/fusion/test/suite1/sequence/adapt_adt.cpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2009/fusion/libs/fusion/test/suite1/sequence/adapt_adt.cpp 2010-09-16 18:33:32 EDT (Thu, 16 Sep 2010)
@@ -0,0 +1,178 @@
+/*=============================================================================
+ Copyright (c) 2001-2009 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/detail/lightweight_test.hpp>
+#include <boost/fusion/adapted/adt/adapt_adt.hpp>
+#include <boost/fusion/sequence/intrinsic/at.hpp>
+#include <boost/fusion/sequence/intrinsic/size.hpp>
+#include <boost/fusion/sequence/intrinsic/empty.hpp>
+#include <boost/fusion/sequence/intrinsic/front.hpp>
+#include <boost/fusion/sequence/intrinsic/back.hpp>
+#include <boost/fusion/sequence/intrinsic/value_at.hpp>
+#include <boost/fusion/sequence/io/out.hpp>
+#include <boost/fusion/container/vector/vector.hpp>
+#include <boost/fusion/container/list/list.hpp>
+#include <boost/fusion/container/generation/make_vector.hpp>
+#include <boost/fusion/container/vector/convert.hpp>
+#include <boost/fusion/sequence/comparison/equal_to.hpp>
+#include <boost/fusion/sequence/comparison/not_equal_to.hpp>
+#include <boost/fusion/sequence/comparison/less.hpp>
+#include <boost/fusion/sequence/comparison/less_equal.hpp>
+#include <boost/fusion/sequence/comparison/greater.hpp>
+#include <boost/fusion/sequence/comparison/greater_equal.hpp>
+#include <boost/fusion/mpl.hpp>
+#include <boost/fusion/support/is_view.hpp>
+#include <boost/mpl/front.hpp>
+#include <boost/mpl/is_sequence.hpp>
+#include <boost/mpl/assert.hpp>
+#include <boost/static_assert.hpp>
+#include <iostream>
+#include <string>
+
+namespace ns
+{
+ class point
+ {
+ public:
+
+ point() : x(0), y(0) {}
+ point(int in_x, int in_y) : x(in_x), y(in_y) {}
+
+ int get_x() const { return x; }
+ int get_y() const { return y; }
+ void set_x(int x_) { x = x_; }
+ void set_y(int y_) { y = y_; }
+
+ private:
+
+ int x;
+ int y;
+ };
+
+#if !BOOST_WORKAROUND(__GNUC__,<4)
+ class point_with_private_members
+ {
+ friend struct boost::fusion::extension::access;
+
+ public:
+ point_with_private_members() : x(0), y(0) {}
+ point_with_private_members(int x, int y) : x(x), y(y) {}
+
+ private:
+ int get_x() const { return x; }
+ int get_y() const { return y; }
+ void set_x(int x_) { x = x_; }
+ void set_y(int y_) { y = y_; }
+
+ int x;
+ int y;
+ };
+#endif
+}
+
+BOOST_FUSION_ADAPT_ADT(
+ ns::point,
+ (int, int, obj.get_x(), obj.set_x(val))
+ (int, int, obj.get_y(), obj.set_y(val))
+)
+
+#if !BOOST_WORKAROUND(__GNUC__,<4)
+BOOST_FUSION_ADAPT_ADT(
+ ns::point_with_private_members,
+ (int, int, obj.get_x(), obj.set_x(val))
+ (int, int, obj.get_y(), obj.set_y(val))
+)
+#endif
+
+int
+main()
+{
+ using namespace boost::fusion;
+
+ std::cout << tuple_open('[');
+ std::cout << tuple_close(']');
+ std::cout << tuple_delimiter(", ");
+
+ {
+ BOOST_MPL_ASSERT_NOT((traits::is_view<ns::point>));
+ ns::point p(123, 456);
+
+ std::cout << at_c<0>(p) << std::endl;
+ std::cout << at_c<1>(p) << std::endl;
+ std::cout << p << std::endl;
+ BOOST_TEST(p == make_vector(123, 456));
+
+ at_c<0>(p) = 6;
+ at_c<1>(p) = 9;
+ BOOST_TEST(p == make_vector(6, 9));
+
+ BOOST_STATIC_ASSERT(result_of::size<ns::point>::value == 2);
+ BOOST_STATIC_ASSERT(!result_of::empty<ns::point>::value);
+
+ BOOST_TEST(front(p) == 6);
+ BOOST_TEST(back(p) == 9);
+ }
+
+ {
+ vector<int, float> v1(4, 2);
+ ns::point v2(5, 3);
+ vector<long, double> v3(5, 4);
+ BOOST_TEST(v1 < v2);
+ BOOST_TEST(v1 <= v2);
+ BOOST_TEST(v2 > v1);
+ BOOST_TEST(v2 >= v1);
+ BOOST_TEST(v2 < v3);
+ BOOST_TEST(v2 <= v3);
+ BOOST_TEST(v3 > v2);
+ BOOST_TEST(v3 >= v2);
+ }
+
+ {
+ // conversion from ns::point to vector
+ ns::point p(5, 3);
+ vector<int, long> v(p);
+ v = p;
+ }
+
+ {
+ // conversion from ns::point to list
+ ns::point p(5, 3);
+ list<int, long> l(p);
+ l = p;
+ }
+
+ {
+ BOOST_MPL_ASSERT((boost::mpl::is_sequence<ns::point>));
+ BOOST_MPL_ASSERT((boost::is_same<
+ result_of::value_at_c<ns::point,0>::type
+ , boost::mpl::front<ns::point>::type>));
+ }
+
+#if !BOOST_WORKAROUND(__GNUC__,<4)
+ {
+ BOOST_MPL_ASSERT_NOT((traits::is_view<ns::point_with_private_members>));
+ ns::point_with_private_members p(123, 456);
+
+ std::cout << at_c<0>(p) << std::endl;
+ std::cout << at_c<1>(p) << std::endl;
+ std::cout << p << std::endl;
+ BOOST_TEST(p == make_vector(123, 456));
+
+ at_c<0>(p) = 6;
+ at_c<1>(p) = 9;
+ BOOST_TEST(p == make_vector(6, 9));
+
+ BOOST_STATIC_ASSERT(result_of::size<ns::point_with_private_members>::value == 2);
+ BOOST_STATIC_ASSERT(!result_of::empty<ns::point_with_private_members>::value);
+
+ BOOST_TEST(front(p) == 6);
+ BOOST_TEST(back(p) == 9);
+ }
+#endif
+
+ return boost::report_errors();
+}
+
Added: sandbox/SOC/2009/fusion/libs/fusion/test/suite1/sequence/adapt_adt_named.cpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2009/fusion/libs/fusion/test/suite1/sequence/adapt_adt_named.cpp 2010-09-16 18:33:32 EDT (Thu, 16 Sep 2010)
@@ -0,0 +1,136 @@
+/*=============================================================================
+ Copyright (c) 2001-2009 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/detail/lightweight_test.hpp>
+#include <boost/fusion/adapted/adt/adapt_adt_named.hpp>
+#include <boost/fusion/sequence/intrinsic/at.hpp>
+#include <boost/fusion/sequence/intrinsic/size.hpp>
+#include <boost/fusion/sequence/intrinsic/empty.hpp>
+#include <boost/fusion/sequence/intrinsic/front.hpp>
+#include <boost/fusion/sequence/intrinsic/back.hpp>
+#include <boost/fusion/sequence/intrinsic/value_at.hpp>
+#include <boost/fusion/sequence/io/out.hpp>
+#include <boost/fusion/container/vector/vector.hpp>
+#include <boost/fusion/container/list/list.hpp>
+#include <boost/fusion/container/generation/make_vector.hpp>
+#include <boost/fusion/container/vector/convert.hpp>
+#include <boost/fusion/sequence/comparison/equal_to.hpp>
+#include <boost/fusion/sequence/comparison/not_equal_to.hpp>
+#include <boost/fusion/sequence/comparison/less.hpp>
+#include <boost/fusion/sequence/comparison/less_equal.hpp>
+#include <boost/fusion/sequence/comparison/greater.hpp>
+#include <boost/fusion/sequence/comparison/greater_equal.hpp>
+#include <boost/fusion/mpl.hpp>
+#include <boost/fusion/support/is_view.hpp>
+#include <boost/mpl/front.hpp>
+#include <boost/mpl/is_sequence.hpp>
+#include <boost/mpl/assert.hpp>
+#include <boost/static_assert.hpp>
+#include <iostream>
+#include <string>
+
+namespace ns
+{
+ class point
+ {
+ public:
+
+ point() : x(0), y(0) {}
+ point(int in_x, int in_y) : x(in_x), y(in_y) {}
+
+ int get_x() const { return x; }
+ int get_y() const { return y; }
+ void set_x(int x_) { x = x_; }
+ void set_y(int y_) { y = y_; }
+
+ private:
+
+ int x;
+ int y;
+ };
+}
+
+// this creates a fusion view: boost::fusion::adapted::point
+BOOST_FUSION_ADAPT_ADT_NAMED(
+ ns::point, point,
+ (int, int, obj.obj.get_x(), obj.obj.set_x(val))
+ (int, int, obj.obj.get_y(), obj.obj.set_y(val))
+)
+
+int
+main()
+{
+ using namespace boost::fusion;
+
+ std::cout << tuple_open('[');
+ std::cout << tuple_close(']');
+ std::cout << tuple_delimiter(", ");
+
+ {
+ BOOST_MPL_ASSERT((traits::is_view<adapted::point>));
+ ns::point basep(123, 456);
+ adapted::point p(basep);
+
+ std::cout << at_c<0>(p) << std::endl;
+ std::cout << at_c<1>(p) << std::endl;
+ std::cout << p << std::endl;
+ BOOST_TEST(p == make_vector(123, 456));
+
+ at_c<0>(p) = 6;
+ at_c<1>(p) = 9;
+ BOOST_TEST(p == make_vector(6, 9));
+
+ BOOST_STATIC_ASSERT(result_of::size<adapted::point>::value == 2);
+ BOOST_STATIC_ASSERT(!result_of::empty<adapted::point>::value);
+
+ BOOST_TEST(front(p) == 6);
+ BOOST_TEST(back(p) == 9);
+ }
+
+ {
+ vector<int, float> v1(4, 2.0f);
+ ns::point basep(5, 3);
+ adapted::point v2(basep);
+
+ vector<long, double> v3(5, 4);
+ BOOST_TEST(v1 < v2);
+ BOOST_TEST(v1 <= v2);
+ BOOST_TEST(v2 > v1);
+ BOOST_TEST(v2 >= v1);
+ BOOST_TEST(v2 < v3);
+ BOOST_TEST(v2 <= v3);
+ BOOST_TEST(v3 > v2);
+ BOOST_TEST(v3 >= v2);
+ }
+
+ {
+ // conversion from ns::point to vector
+ ns::point basep(5, 3);
+ adapted::point p(basep);
+
+ vector<int, long> v(p);
+ v = p;
+ }
+
+ {
+ // conversion from ns::point to list
+ ns::point basep(5, 3);
+ adapted::point p(basep);
+
+ list<int, long> l(p);
+ l = p;
+ }
+
+ {
+ BOOST_MPL_ASSERT((boost::mpl::is_sequence<adapted::point>));
+ BOOST_MPL_ASSERT((boost::is_same<
+ result_of::value_at_c<adapted::point,0>::type
+ , boost::mpl::front<adapted::point>::type>));
+ }
+
+ return boost::report_errors();
+}
+
Added: sandbox/SOC/2009/fusion/libs/fusion/test/suite1/sequence/adapt_assoc_adt.cpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2009/fusion/libs/fusion/test/suite1/sequence/adapt_assoc_adt.cpp 2010-09-16 18:33:32 EDT (Thu, 16 Sep 2010)
@@ -0,0 +1,136 @@
+/*=============================================================================
+ Copyright (c) 2010 Christopher Schmidt
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
+#include <boost/detail/lightweight_test.hpp>
+#include <boost/fusion/sequence.hpp>
+#include <boost/fusion/support.hpp>
+#include <boost/fusion/container/list.hpp>
+#include <boost/fusion/container/vector.hpp>
+#include <boost/fusion/container/generation/make_vector.hpp>
+#include <boost/fusion/adapted/adt/adapt_assoc_adt.hpp>
+#include <boost/mpl/assert.hpp>
+#include <boost/mpl/not.hpp>
+#include <boost/mpl/front.hpp>
+#include <boost/mpl/is_sequence.hpp>
+#include <boost/type_traits/is_same.hpp>
+#include <boost/static_assert.hpp>
+#include <iostream>
+#include <string>
+
+namespace ns
+{
+ struct x_member;
+ struct y_member;
+ struct z_member;
+
+ class point
+ {
+ public:
+
+ point() : x(0), y(0) {}
+ point(int in_x, int in_y) : x(in_x), y(in_y) {}
+
+ int get_x() const { return x; }
+ int get_y() const { return y; }
+ void set_x(int x_) { x = x_; }
+ void set_y(int y_) { y = y_; }
+
+ private:
+
+ int x;
+ int y;
+ };
+}
+
+BOOST_FUSION_ADAPT_ASSOC_ADT(
+ ns::point,
+ (int, int, obj.get_x(), obj.set_x(val), ns::x_member)
+ (int, int, obj.get_y(), obj.set_y(val), ns::y_member)
+)
+
+int
+main()
+{
+ using namespace boost::fusion;
+ using namespace std;
+
+ std::cout << tuple_open('[');
+ std::cout << tuple_close(']');
+ std::cout << tuple_delimiter(", ");
+
+ {
+ BOOST_MPL_ASSERT_NOT((traits::is_view<ns::point>));
+ ns::point p(123, 456);
+
+ std::cout << at_c<0>(p) << std::endl;
+ std::cout << at_c<1>(p) << std::endl;
+ std::cout << p << std::endl;
+ BOOST_TEST(p == make_vector(123, 456));
+
+ at_c<0>(p) = 6;
+ at_c<1>(p) = 9;
+ BOOST_TEST(p == make_vector(6, 9));
+
+ BOOST_STATIC_ASSERT(result_of::size<ns::point>::value == 2);
+ BOOST_STATIC_ASSERT(!result_of::empty<ns::point>::value);
+
+ BOOST_TEST(front(p) == 6);
+ BOOST_TEST(back(p) == 9);
+ }
+
+ {
+ boost::fusion::vector<int, float> v1(4, 2);
+ ns::point v2(5, 3);
+ boost::fusion::vector<long, double> v3(5, 4);
+ BOOST_TEST(v1 < v2);
+ BOOST_TEST(v1 <= v2);
+ BOOST_TEST(v2 > v1);
+ BOOST_TEST(v2 >= v1);
+ BOOST_TEST(v2 < v3);
+ BOOST_TEST(v2 <= v3);
+ BOOST_TEST(v3 > v2);
+ BOOST_TEST(v3 >= v2);
+ }
+
+ {
+ // conversion from ns::point to vector
+ ns::point p(5, 3);
+ boost::fusion::vector<int, long> v(p);
+ v = p;
+ }
+
+ {
+ // conversion from ns::point to list
+ ns::point p(5, 3);
+ boost::fusion::list<int, long> l(p);
+ l = p;
+ }
+
+ {
+ BOOST_MPL_ASSERT((boost::mpl::is_sequence<ns::point>));
+ BOOST_MPL_ASSERT((boost::is_same<
+ boost::fusion::result_of::value_at_c<ns::point,0>::type
+ , boost::mpl::front<ns::point>::type>));
+ }
+
+ {
+ // assoc stuff
+ BOOST_MPL_ASSERT((result_of::has_key<ns::point, ns::x_member>));
+ 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>));
+
+ ns::point p(5, 3);
+
+ BOOST_TEST(at_key<ns::x_member>(p) == 5);
+ BOOST_TEST(at_key<ns::y_member>(p) == 3);
+ }
+
+ return boost::report_errors();
+}
+
Added: sandbox/SOC/2009/fusion/libs/fusion/test/suite1/sequence/adapt_assoc_adt_named.cpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2009/fusion/libs/fusion/test/suite1/sequence/adapt_assoc_adt_named.cpp 2010-09-16 18:33:32 EDT (Thu, 16 Sep 2010)
@@ -0,0 +1,142 @@
+/*=============================================================================
+ Copyright (c) 2010 Christopher Schmidt
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
+#include <boost/detail/lightweight_test.hpp>
+#include <boost/fusion/sequence.hpp>
+#include <boost/fusion/support.hpp>
+#include <boost/fusion/container/list.hpp>
+#include <boost/fusion/container/vector.hpp>
+#include <boost/fusion/container/generation/make_vector.hpp>
+#include <boost/fusion/adapted/adt/adapt_assoc_adt_named.hpp>
+#include <boost/mpl/assert.hpp>
+#include <boost/mpl/not.hpp>
+#include <boost/mpl/front.hpp>
+#include <boost/mpl/is_sequence.hpp>
+#include <boost/type_traits/is_same.hpp>
+#include <boost/static_assert.hpp>
+#include <iostream>
+#include <string>
+
+namespace ns
+{
+ struct x_member;
+ struct y_member;
+ struct z_member;
+
+ class point
+ {
+ public:
+
+ point() : x(0), y(0) {}
+ point(int in_x, int in_y) : x(in_x), y(in_y) {}
+
+ int get_x() const { return x; }
+ int get_y() const { return y; }
+ void set_x(int x_) { x = x_; }
+ void set_y(int y_) { y = y_; }
+
+ private:
+
+ int x;
+ int y;
+ };
+}
+
+BOOST_FUSION_ADAPT_ASSOC_ADT_NAMED(
+ ns::point,
+ point,
+ (int, int, obj.obj.get_x(), obj.obj.set_x(val), ns::x_member)
+ (int, int, obj.obj.get_y(), obj.obj.set_y(val), ns::y_member)
+)
+
+int
+main()
+{
+ using namespace boost::fusion;
+ using namespace std;
+
+ std::cout << tuple_open('[');
+ std::cout << tuple_close(']');
+ std::cout << tuple_delimiter(", ");
+
+ {
+ BOOST_MPL_ASSERT((traits::is_view<adapted::point>));
+ ns::point basep(123, 456);
+ adapted::point p(basep);
+
+ std::cout << at_c<0>(p) << std::endl;
+ std::cout << at_c<1>(p) << std::endl;
+ std::cout << p << std::endl;
+ BOOST_TEST(p == make_vector(123, 456));
+
+ at_c<0>(p) = 6;
+ at_c<1>(p) = 9;
+ BOOST_TEST(p == make_vector(6, 9));
+
+ BOOST_STATIC_ASSERT(result_of::size<adapted::point>::value == 2);
+ BOOST_STATIC_ASSERT(!result_of::empty<adapted::point>::value);
+
+ BOOST_TEST(front(p) == 6);
+ BOOST_TEST(back(p) == 9);
+ }
+
+ {
+ boost::fusion::vector<int, float> v1(4, 2);
+ ns::point basev2(5, 3);
+ adapted::point v2(basev2);
+ boost::fusion::vector<long, double> v3(5, 4);
+ BOOST_TEST(v1 < v2);
+ BOOST_TEST(v1 <= v2);
+ BOOST_TEST(v2 > v1);
+ BOOST_TEST(v2 >= v1);
+ BOOST_TEST(v2 < v3);
+ BOOST_TEST(v2 <= v3);
+ BOOST_TEST(v3 > v2);
+ BOOST_TEST(v3 >= v2);
+ }
+
+ {
+ // conversion from adapted::point to vector
+ ns::point basep(5, 3);
+ adapted::point p(basep);
+ boost::fusion::vector<int, long> v(p);
+ v = p;
+ }
+
+ {
+ // conversion from adated::point to list
+ ns::point basep(5, 3);
+ adapted::point p(basep);
+ boost::fusion::list<int, long> l(p);
+ l = p;
+ }
+
+ {
+ BOOST_MPL_ASSERT((boost::mpl::is_sequence<adapted::point>));
+ BOOST_MPL_ASSERT((boost::is_same<
+ boost::fusion::result_of::value_at_c<adapted::point,0>::type
+ , boost::mpl::front<adapted::point>::type>));
+ }
+
+ {
+ // assoc stuff
+ BOOST_MPL_ASSERT((result_of::has_key<adapted::point, ns::x_member>));
+ BOOST_MPL_ASSERT((result_of::has_key<adapted::point, ns::y_member>));
+ BOOST_MPL_ASSERT((boost::mpl::not_<result_of::has_key<adapted::point, ns::z_member> >));
+
+ BOOST_MPL_ASSERT((boost::is_same<result_of::value_at_key<adapted::point, ns::x_member>::type, int>));
+ BOOST_MPL_ASSERT((boost::is_same<result_of::value_at_key<adapted::point, ns::y_member>::type, int>));
+
+ ns::point basep(5, 3);
+ adapted::point p(basep);
+
+ BOOST_TEST(at_key<ns::x_member>(p) == 5);
+ BOOST_TEST(at_key<ns::y_member>(p) == 3);
+ }
+
+ return boost::report_errors();
+}
+
Deleted: sandbox/SOC/2009/fusion/libs/fusion/test/suite1/sequence/adapt_assoc_class.cpp
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/test/suite1/sequence/adapt_assoc_class.cpp 2010-09-16 18:33:32 EDT (Thu, 16 Sep 2010)
+++ (empty file)
@@ -1,137 +0,0 @@
-/*==============================================================================
- Copyright (c) 2010 Christopher Schmidt
-
- Distributed under the Boost Software License, Version 1.0. (See accompanying
- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-#include <boost/detail/lightweight_test.hpp>
-#include <boost/fusion/sequence.hpp>
-#include <boost/fusion/support.hpp>
-#include <boost/fusion/container/list.hpp>
-#include <boost/fusion/container/vector.hpp>
-#include <boost/fusion/container/generation/make_vector.hpp>
-#include <boost/fusion/adapted/class/adapt_assoc_class.hpp>
-#include <boost/mpl/assert.hpp>
-#include <boost/mpl/not.hpp>
-#include <boost/mpl/front.hpp>
-#include <boost/mpl/is_sequence.hpp>
-#include <boost/type_traits/is_same.hpp>
-#include <boost/static_assert.hpp>
-#include <iostream>
-#include <string>
-
-namespace ns
-{
- struct x_member;
- struct y_member;
- struct z_member;
-
- class point
- {
- public:
-
- point() : x(0), y(0) {}
- point(int x, int y) : x(x), y(y) {}
-
- int get_x() const { return x; }
- int get_y() const { return y; }
- void set_x(int x_) { x = x_; }
- void set_y(int y_) { y = y_; }
-
- private:
-
- int x;
- int y;
- };
-}
-
-BOOST_FUSION_ADAPT_ASSOC_CLASS(
- ns::point,
- (int, int, obj.get_x(), obj.set_x(val), ns::x_member)
- (int, int, obj.get_y(), obj.set_y(val), ns::y_member)
-)
-
-int
-main()
-{
- using namespace boost::fusion;
- using namespace std;
-
- std::cout << tuple_open('[');
- std::cout << tuple_close(']');
- std::cout << tuple_delimiter(", ");
-
- {
- BOOST_MPL_ASSERT_NOT((traits::is_view<ns::point>));
- ns::point p(123, 456);
-
- std::cout << at_c<0>(p) << std::endl;
- std::cout << at_c<1>(p) << std::endl;
- std::cout << p << std::endl;
- BOOST_TEST(p == make_vector(123, 456));
-
- at_c<0>(p) = 6;
- at_c<1>(p) = 9;
- BOOST_TEST(p == make_vector(6, 9));
-
- BOOST_STATIC_ASSERT(result_of::size<ns::point>::value == 2);
- BOOST_STATIC_ASSERT(!result_of::empty<ns::point>::value);
-
- BOOST_TEST(front(p) == 6);
- BOOST_TEST(back(p) == 9);
- }
-
- {
- //TODO
- boost::fusion::vector<int, float> v1(4, 2.0f);
- ns::point v2(5, 3);
- boost::fusion::vector<long, double> v3(5, 4);
- BOOST_TEST(v1 < v2);
- BOOST_TEST(v1 <= v2);
- BOOST_TEST(v2 > v1);
- BOOST_TEST(v2 >= v1);
- BOOST_TEST(v2 < v3);
- BOOST_TEST(v2 <= v3);
- BOOST_TEST(v3 > v2);
- BOOST_TEST(v3 >= v2);
- }
-
- {
- // conversion from ns::point to vector
- ns::point p(5, 3);
- boost::fusion::vector<int, long> v(p);
- v = p;
- }
-
- {
- // conversion from ns::point to list
- ns::point p(5, 3);
- boost::fusion::list<int, long> l(p);
- l = p;
- }
-
- {
- BOOST_MPL_ASSERT((boost::mpl::is_sequence<ns::point>));
- BOOST_MPL_ASSERT((boost::is_same<
- boost::fusion::result_of::value_at_c<ns::point,0>::type
- , boost::mpl::front<ns::point>::type>));
- }
-
- {
- // assoc stuff
- BOOST_MPL_ASSERT((result_of::has_key<ns::point, ns::x_member>));
- 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>));
-
- ns::point p(5, 3);
-
- BOOST_TEST(at_key<ns::x_member>(p) == 5);
- BOOST_TEST(at_key<ns::y_member>(p) == 3);
- }
-
- return boost::report_errors();
-}
-
Deleted: sandbox/SOC/2009/fusion/libs/fusion/test/suite1/sequence/adapt_assoc_class_named.cpp
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/test/suite1/sequence/adapt_assoc_class_named.cpp 2010-09-16 18:33:32 EDT (Thu, 16 Sep 2010)
+++ (empty file)
@@ -1,143 +0,0 @@
-/*==============================================================================
- Copyright (c) 2010 Christopher Schmidt
-
- Distributed under the Boost Software License, Version 1.0. (See accompanying
- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-#include <boost/detail/lightweight_test.hpp>
-#include <boost/fusion/sequence.hpp>
-#include <boost/fusion/support.hpp>
-#include <boost/fusion/container/list.hpp>
-#include <boost/fusion/container/vector.hpp>
-#include <boost/fusion/container/generation/make_vector.hpp>
-#include <boost/fusion/adapted/class/adapt_assoc_class_named.hpp>
-#include <boost/mpl/assert.hpp>
-#include <boost/mpl/not.hpp>
-#include <boost/mpl/front.hpp>
-#include <boost/mpl/is_sequence.hpp>
-#include <boost/type_traits/is_same.hpp>
-#include <boost/static_assert.hpp>
-#include <iostream>
-#include <string>
-
-namespace ns
-{
- struct x_member;
- struct y_member;
- struct z_member;
-
- class point
- {
- public:
-
- point() : x(0), y(0) {}
- point(int x, int y) : x(x), y(y) {}
-
- int get_x() const { return x; }
- int get_y() const { return y; }
- void set_x(int x_) { x = x_; }
- void set_y(int y_) { y = y_; }
-
- private:
-
- int x;
- int y;
- };
-}
-
-BOOST_FUSION_ADAPT_ASSOC_CLASS_NAMED(
- ns::point,
- point,
- (int, int, obj.obj.get_x(), obj.obj.set_x(val), ns::x_member)
- (int, int, obj.obj.get_y(), obj.obj.set_y(val), ns::y_member)
-)
-
-int
-main()
-{
- using namespace boost::fusion;
- using namespace std;
-
- std::cout << tuple_open('[');
- std::cout << tuple_close(']');
- std::cout << tuple_delimiter(", ");
-
- {
- BOOST_MPL_ASSERT((traits::is_view<adapted::point>));
- ns::point basep(123, 456);
- adapted::point p(basep);
-
- std::cout << at_c<0>(p) << std::endl;
- std::cout << at_c<1>(p) << std::endl;
- std::cout << p << std::endl;
- BOOST_TEST(p == make_vector(123, 456));
-
- at_c<0>(p) = 6;
- at_c<1>(p) = 9;
- BOOST_TEST(p == make_vector(6, 9));
-
- BOOST_STATIC_ASSERT(result_of::size<adapted::point>::value == 2);
- BOOST_STATIC_ASSERT(!result_of::empty<adapted::point>::value);
-
- BOOST_TEST(front(p) == 6);
- BOOST_TEST(back(p) == 9);
- }
-
- {
- //TODO
- boost::fusion::vector<int, float> v1(4, 2.0f);
- ns::point basev2(5, 3);
- adapted::point v2(basev2);
- boost::fusion::vector<long, double> v3(5, 4);
- BOOST_TEST(v1 < v2);
- BOOST_TEST(v1 <= v2);
- BOOST_TEST(v2 > v1);
- BOOST_TEST(v2 >= v1);
- BOOST_TEST(v2 < v3);
- BOOST_TEST(v2 <= v3);
- BOOST_TEST(v3 > v2);
- BOOST_TEST(v3 >= v2);
- }
-
- {
- // conversion from adapted::point to vector
- ns::point basep(5, 3);
- adapted::point p(basep);
- boost::fusion::vector<int, long> v(p);
- v = p;
- }
-
- {
- // conversion from adated::point to list
- ns::point basep(5, 3);
- adapted::point p(basep);
- boost::fusion::list<int, long> l(p);
- l = p;
- }
-
- {
- BOOST_MPL_ASSERT((boost::mpl::is_sequence<adapted::point>));
- BOOST_MPL_ASSERT((boost::is_same<
- boost::fusion::result_of::value_at_c<adapted::point,0>::type
- , boost::mpl::front<adapted::point>::type>));
- }
-
- {
- // assoc stuff
- BOOST_MPL_ASSERT((result_of::has_key<adapted::point, ns::x_member>));
- BOOST_MPL_ASSERT((result_of::has_key<adapted::point, ns::y_member>));
- BOOST_MPL_ASSERT((boost::mpl::not_<result_of::has_key<adapted::point, ns::z_member> >));
-
- BOOST_MPL_ASSERT((boost::is_same<result_of::value_at_key<adapted::point, ns::x_member>::type, int>));
- BOOST_MPL_ASSERT((boost::is_same<result_of::value_at_key<adapted::point, ns::y_member>::type, int>));
-
- ns::point basep(5, 3);
- adapted::point p(basep);
-
- BOOST_TEST(at_key<ns::x_member>(p) == 5);
- BOOST_TEST(at_key<ns::y_member>(p) == 3);
- }
-
- return boost::report_errors();
-}
-
Added: sandbox/SOC/2009/fusion/libs/fusion/test/suite1/sequence/adapt_assoc_tpl_adt.cpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2009/fusion/libs/fusion/test/suite1/sequence/adapt_assoc_tpl_adt.cpp 2010-09-16 18:33:32 EDT (Thu, 16 Sep 2010)
@@ -0,0 +1,140 @@
+/*=============================================================================
+ Copyright (c) 2010 Christopher Schmidt
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+==============================================================================*/
+#include <boost/detail/lightweight_test.hpp>
+#include <boost/fusion/sequence.hpp>
+#include <boost/fusion/support.hpp>
+#include <boost/fusion/container/list.hpp>
+#include <boost/fusion/container/vector.hpp>
+#include <boost/fusion/container/generation/make_vector.hpp>
+#include <boost/fusion/adapted/adt/adapt_assoc_adt.hpp>
+#include <boost/mpl/assert.hpp>
+#include <boost/mpl/not.hpp>
+#include <boost/mpl/front.hpp>
+#include <boost/mpl/is_sequence.hpp>
+#include <boost/type_traits/is_same.hpp>
+#include <boost/static_assert.hpp>
+#include <iostream>
+#include <string>
+
+namespace ns
+{
+ struct x_member;
+ struct y_member;
+ struct z_member;
+
+ template<typename X, typename Y>
+ class point
+ {
+ public:
+
+ point() : x(0), y(0) {}
+ point(X in_x, Y in_y) : x(in_x), y(in_y) {}
+
+ X get_x() const { return x; }
+ Y get_y() const { return y; }
+ void set_x(X x_) { x = x_; }
+ void set_y(Y y_) { y = y_; }
+
+ private:
+
+ X x;
+ Y y;
+ };
+}
+
+BOOST_FUSION_ADAPT_ASSOC_TPL_ADT(
+ (X)(Y),
+ (ns::point)(X)(Y),
+ (X, X, obj.get_x(), obj.set_x(val), ns::x_member)
+ (Y, Y, obj.get_y(), obj.set_y(val), ns::y_member)
+)
+
+int
+main()
+{
+ using namespace boost::fusion;
+ using namespace std;
+
+ typedef ns::point<int,int> point;
+
+ std::cout << tuple_open('[');
+ std::cout << tuple_close(']');
+ std::cout << tuple_delimiter(", ");
+
+ {
+ BOOST_MPL_ASSERT_NOT((traits::is_view<point>));
+ point p(123, 456);
+
+ std::cout << at_c<0>(p) << std::endl;
+ std::cout << at_c<1>(p) << std::endl;
+ std::cout << p << std::endl;
+ BOOST_TEST(p == make_vector(123, 456));
+
+ at_c<0>(p) = 6;
+ at_c<1>(p) = 9;
+ BOOST_TEST(p == make_vector(6, 9));
+
+ BOOST_STATIC_ASSERT(result_of::size<point>::value == 2);
+ BOOST_STATIC_ASSERT(!result_of::empty<point>::value);
+
+ BOOST_TEST(front(p) == 6);
+ BOOST_TEST(back(p) == 9);
+ }
+
+ {
+ boost::fusion::vector<int, float> v1(4, 2);
+ point v2(5, 3);
+ boost::fusion::vector<long, double> v3(5, 4);
+ BOOST_TEST(v1 < v2);
+ BOOST_TEST(v1 <= v2);
+ BOOST_TEST(v2 > v1);
+ BOOST_TEST(v2 >= v1);
+ BOOST_TEST(v2 < v3);
+ BOOST_TEST(v2 <= v3);
+ BOOST_TEST(v3 > v2);
+ BOOST_TEST(v3 >= v2);
+ }
+
+ {
+ // conversion from point to vector
+ point p(5, 3);
+ boost::fusion::vector<int, long> v(p);
+ v = p;
+ }
+
+ {
+ // conversion from point to list
+ point p(5, 3);
+ boost::fusion::list<int, long> l(p);
+ l = p;
+ }
+
+ {
+ BOOST_MPL_ASSERT((boost::mpl::is_sequence<point>));
+ BOOST_MPL_ASSERT((boost::is_same<
+ boost::fusion::result_of::value_at_c<point,0>::type
+ , boost::mpl::front<point>::type>));
+ }
+
+ {
+ // assoc stuff
+ BOOST_MPL_ASSERT((result_of::has_key<point, ns::x_member>));
+ BOOST_MPL_ASSERT((result_of::has_key<point, ns::y_member>));
+ BOOST_MPL_ASSERT((boost::mpl::not_<result_of::has_key<point, ns::z_member> >));
+
+ BOOST_MPL_ASSERT((boost::is_same<result_of::value_at_key<point, ns::x_member>::type, int>));
+ BOOST_MPL_ASSERT((boost::is_same<result_of::value_at_key<point, ns::y_member>::type, int>));
+
+ point p(5, 3);
+
+ BOOST_TEST(at_key<ns::x_member>(p) == 5);
+ BOOST_TEST(at_key<ns::y_member>(p) == 3);
+ }
+
+ return boost::report_errors();
+}
+
Deleted: sandbox/SOC/2009/fusion/libs/fusion/test/suite1/sequence/adapt_assoc_tpl_class.cpp
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/test/suite1/sequence/adapt_assoc_tpl_class.cpp 2010-09-16 18:33:32 EDT (Thu, 16 Sep 2010)
+++ (empty file)
@@ -1,141 +0,0 @@
-/*==============================================================================
- Copyright (c) 2010 Christopher Schmidt
-
- Distributed under the Boost Software License, Version 1.0. (See accompanying
- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-#include <boost/detail/lightweight_test.hpp>
-#include <boost/fusion/sequence.hpp>
-#include <boost/fusion/support.hpp>
-#include <boost/fusion/container/list.hpp>
-#include <boost/fusion/container/vector.hpp>
-#include <boost/fusion/container/generation/make_vector.hpp>
-#include <boost/fusion/adapted/class/adapt_assoc_class.hpp>
-#include <boost/mpl/assert.hpp>
-#include <boost/mpl/not.hpp>
-#include <boost/mpl/front.hpp>
-#include <boost/mpl/is_sequence.hpp>
-#include <boost/type_traits/is_same.hpp>
-#include <boost/static_assert.hpp>
-#include <iostream>
-#include <string>
-
-namespace ns
-{
- struct x_member;
- struct y_member;
- struct z_member;
-
- template<typename X, typename Y>
- class point
- {
- public:
-
- point() : x(0), y(0) {}
- point(X x, Y y) : x(x), y(y) {}
-
- X get_x() const { return x; }
- Y get_y() const { return y; }
- void set_x(X x_) { x = x_; }
- void set_y(Y y_) { y = y_; }
-
- private:
-
- X x;
- Y y;
- };
-}
-
-BOOST_FUSION_ADAPT_ASSOC_TPL_CLASS(
- (X)(Y),
- (ns::point)(X)(Y),
- (X, X, obj.get_x(), obj.set_x(val), ns::x_member)
- (Y, Y, obj.get_y(), obj.set_y(val), ns::y_member)
-)
-
-int
-main()
-{
- using namespace boost::fusion;
- using namespace std;
-
- typedef ns::point<int,int> point;
-
- std::cout << tuple_open('[');
- std::cout << tuple_close(']');
- std::cout << tuple_delimiter(", ");
-
- {
- BOOST_MPL_ASSERT_NOT((traits::is_view<point>));
- point p(123, 456);
-
- std::cout << at_c<0>(p) << std::endl;
- std::cout << at_c<1>(p) << std::endl;
- std::cout << p << std::endl;
- BOOST_TEST(p == make_vector(123, 456));
-
- at_c<0>(p) = 6;
- at_c<1>(p) = 9;
- BOOST_TEST(p == make_vector(6, 9));
-
- BOOST_STATIC_ASSERT(result_of::size<point>::value == 2);
- BOOST_STATIC_ASSERT(!result_of::empty<point>::value);
-
- BOOST_TEST(front(p) == 6);
- BOOST_TEST(back(p) == 9);
- }
-
- {
- //TODO
- boost::fusion::vector<int, float> v1(4, 2.0f);
- point v2(5, 3);
- boost::fusion::vector<long, double> v3(5, 4);
- BOOST_TEST(v1 < v2);
- BOOST_TEST(v1 <= v2);
- BOOST_TEST(v2 > v1);
- BOOST_TEST(v2 >= v1);
- BOOST_TEST(v2 < v3);
- BOOST_TEST(v2 <= v3);
- BOOST_TEST(v3 > v2);
- BOOST_TEST(v3 >= v2);
- }
-
- {
- // conversion from point to vector
- point p(5, 3);
- boost::fusion::vector<int, long> v(p);
- v = p;
- }
-
- {
- // conversion from point to list
- point p(5, 3);
- boost::fusion::list<int, long> l(p);
- l = p;
- }
-
- {
- BOOST_MPL_ASSERT((boost::mpl::is_sequence<point>));
- BOOST_MPL_ASSERT((boost::is_same<
- boost::fusion::result_of::value_at_c<point,0>::type
- , boost::mpl::front<point>::type>));
- }
-
- {
- // assoc stuff
- BOOST_MPL_ASSERT((result_of::has_key<point, ns::x_member>));
- BOOST_MPL_ASSERT((result_of::has_key<point, ns::y_member>));
- BOOST_MPL_ASSERT((boost::mpl::not_<result_of::has_key<point, ns::z_member> >));
-
- BOOST_MPL_ASSERT((boost::is_same<result_of::value_at_key<point, ns::x_member>::type, int>));
- BOOST_MPL_ASSERT((boost::is_same<result_of::value_at_key<point, ns::y_member>::type, int>));
-
- point p(5, 3);
-
- BOOST_TEST(at_key<ns::x_member>(p) == 5);
- BOOST_TEST(at_key<ns::y_member>(p) == 3);
- }
-
- return boost::report_errors();
-}
-
Deleted: sandbox/SOC/2009/fusion/libs/fusion/test/suite1/sequence/adapt_class.cpp
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/test/suite1/sequence/adapt_class.cpp 2010-09-16 18:33:32 EDT (Thu, 16 Sep 2010)
+++ (empty file)
@@ -1,180 +0,0 @@
-/*==============================================================================
- Copyright (c) 2001-2009 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/detail/lightweight_test.hpp>
-#include <boost/fusion/adapted/class/adapt_class.hpp>
-#include <boost/fusion/sequence/intrinsic/at.hpp>
-#include <boost/fusion/sequence/intrinsic/size.hpp>
-#include <boost/fusion/sequence/intrinsic/empty.hpp>
-#include <boost/fusion/sequence/intrinsic/front.hpp>
-#include <boost/fusion/sequence/intrinsic/back.hpp>
-#include <boost/fusion/sequence/intrinsic/value_at.hpp>
-#include <boost/fusion/sequence/io/out.hpp>
-#include <boost/fusion/container/vector/vector.hpp>
-#include <boost/fusion/container/list/list.hpp>
-#include <boost/fusion/container/generation/make_vector.hpp>
-#include <boost/fusion/container/vector/convert.hpp>
-#include <boost/fusion/sequence/comparison/equal_to.hpp>
-#include <boost/fusion/sequence/comparison/not_equal_to.hpp>
-#include <boost/fusion/sequence/comparison/less.hpp>
-#include <boost/fusion/sequence/comparison/less_equal.hpp>
-#include <boost/fusion/sequence/comparison/greater.hpp>
-#include <boost/fusion/sequence/comparison/greater_equal.hpp>
-#include <boost/fusion/mpl.hpp>
-#include <boost/fusion/support/is_view.hpp>
-#include <boost/mpl/front.hpp>
-#include <boost/mpl/is_sequence.hpp>
-#include <boost/mpl/assert.hpp>
-#include <boost/static_assert.hpp>
-#include <iostream>
-#include <string>
-
-namespace ns
-{
- class point
- {
- public:
-
- point() : x(0), y(0) {}
- point(int x, int y) : x(x), y(y) {}
-
- int get_x() const { return x; }
- int get_y() const { return y; }
- void set_x(int x_) { x = x_; }
- void set_y(int y_) { y = y_; }
-
- private:
-
- int x;
- int y;
- };
-
-#if !BOOST_WORKAROUND(__GNUC__,<4)
- class point_with_private_members
- {
- friend struct boost::fusion::extension::access;
-
- public:
- point_with_private_members() : x(0), y(0) {}
- point_with_private_members(int x, int y) : x(x), y(y) {}
-
- private:
- int get_x() const { return x; }
- int get_y() const { return y; }
- void set_x(int x_) { x = x_; }
- void set_y(int y_) { y = y_; }
-
- int x;
- int y;
- };
-#endif
-}
-
-BOOST_FUSION_ADAPT_CLASS(
- ns::point,
- (int, int, obj.get_x(), obj.set_x(val))
- (int, int, obj.get_y(), obj.set_y(val))
-)
-
-#if !BOOST_WORKAROUND(__GNUC__,<4)
-BOOST_FUSION_ADAPT_CLASS(
- ns::point_with_private_members,
- (int, int, obj.get_x(), obj.set_x(val))
- (int, int, obj.get_y(), obj.set_y(val))
-)
-#endif
-
-int
-main()
-{
- using namespace boost::fusion;
- using namespace std;
-
- std::cout << tuple_open('[');
- std::cout << tuple_close(']');
- std::cout << tuple_delimiter(", ");
-
- {
- BOOST_MPL_ASSERT_NOT((traits::is_view<ns::point>));
- ns::point p(123, 456);
-
- std::cout << at_c<0>(p) << std::endl;
- std::cout << at_c<1>(p) << std::endl;
- std::cout << p << std::endl;
- BOOST_TEST(p == make_vector(123, 456));
-
- at_c<0>(p) = 6;
- at_c<1>(p) = 9;
- BOOST_TEST(p == make_vector(6, 9));
-
- BOOST_STATIC_ASSERT(result_of::size<ns::point>::value == 2);
- BOOST_STATIC_ASSERT(!result_of::empty<ns::point>::value);
-
- BOOST_TEST(front(p) == 6);
- BOOST_TEST(back(p) == 9);
- }
-
- {
- //TODO
- boost::fusion::vector<int, float> v1(4, 2.0f);
- ns::point v2(5, 3);
- boost::fusion::vector<long, double> v3(5, 4);
- BOOST_TEST(v1 < v2);
- BOOST_TEST(v1 <= v2);
- BOOST_TEST(v2 > v1);
- BOOST_TEST(v2 >= v1);
- BOOST_TEST(v2 < v3);
- BOOST_TEST(v2 <= v3);
- BOOST_TEST(v3 > v2);
- BOOST_TEST(v3 >= v2);
- }
-
- {
- // conversion from ns::point to vector
- ns::point p(5, 3);
- boost::fusion::vector<int, long> v(p);
- v = p;
- }
-
- {
- // conversion from ns::point to list
- ns::point p(5, 3);
- boost::fusion::list<int, long> l(p);
- l = p;
- }
-
- {
- BOOST_MPL_ASSERT((boost::mpl::is_sequence<ns::point>));
- BOOST_MPL_ASSERT((boost::is_same<
- boost::fusion::result_of::value_at_c<ns::point,0>::type
- , boost::mpl::front<ns::point>::type>));
- }
-
-#if !BOOST_WORKAROUND(__GNUC__,<4)
- {
- BOOST_MPL_ASSERT_NOT((traits::is_view<ns::point_with_private_members>));
- ns::point_with_private_members p(123, 456);
-
- std::cout << at_c<0>(p) << std::endl;
- std::cout << at_c<1>(p) << std::endl;
- std::cout << p << std::endl;
- BOOST_TEST(p == make_vector(123, 456));
-
- at_c<0>(p) = 6;
- at_c<1>(p) = 9;
- BOOST_TEST(p == make_vector(6, 9));
-
- BOOST_STATIC_ASSERT(result_of::size<ns::point_with_private_members>::value == 2);
- BOOST_STATIC_ASSERT(!result_of::empty<ns::point_with_private_members>::value);
-
- BOOST_TEST(front(p) == 6);
- BOOST_TEST(back(p) == 9);
- }
-#endif
-
- return boost::report_errors();
-}
-
Deleted: sandbox/SOC/2009/fusion/libs/fusion/test/suite1/sequence/adapt_class_named.cpp
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/test/suite1/sequence/adapt_class_named.cpp 2010-09-16 18:33:32 EDT (Thu, 16 Sep 2010)
+++ (empty file)
@@ -1,137 +0,0 @@
-/*==============================================================================
- Copyright (c) 2001-2009 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/detail/lightweight_test.hpp>
-#include <boost/fusion/adapted/class/adapt_class_named.hpp>
-#include <boost/fusion/sequence/intrinsic/at.hpp>
-#include <boost/fusion/sequence/intrinsic/size.hpp>
-#include <boost/fusion/sequence/intrinsic/empty.hpp>
-#include <boost/fusion/sequence/intrinsic/front.hpp>
-#include <boost/fusion/sequence/intrinsic/back.hpp>
-#include <boost/fusion/sequence/intrinsic/value_at.hpp>
-#include <boost/fusion/sequence/io/out.hpp>
-#include <boost/fusion/container/vector/vector.hpp>
-#include <boost/fusion/container/list/list.hpp>
-#include <boost/fusion/container/generation/make_vector.hpp>
-#include <boost/fusion/container/vector/convert.hpp>
-#include <boost/fusion/sequence/comparison/equal_to.hpp>
-#include <boost/fusion/sequence/comparison/not_equal_to.hpp>
-#include <boost/fusion/sequence/comparison/less.hpp>
-#include <boost/fusion/sequence/comparison/less_equal.hpp>
-#include <boost/fusion/sequence/comparison/greater.hpp>
-#include <boost/fusion/sequence/comparison/greater_equal.hpp>
-#include <boost/fusion/mpl.hpp>
-#include <boost/fusion/support/is_view.hpp>
-#include <boost/mpl/front.hpp>
-#include <boost/mpl/is_sequence.hpp>
-#include <boost/mpl/assert.hpp>
-#include <boost/static_assert.hpp>
-#include <iostream>
-#include <string>
-
-namespace ns
-{
- class point
- {
- public:
-
- point() : x(0), y(0) {}
- point(int x, int y) : x(x), y(y) {}
-
- int get_x() const { return x; }
- int get_y() const { return y; }
- void set_x(int x_) { x = x_; }
- void set_y(int y_) { y = y_; }
-
- private:
-
- int x;
- int y;
- };
-}
-
-// this creates a fusion view: boost::fusion::adapted::point
-BOOST_FUSION_ADAPT_CLASS_NAMED(
- ns::point, point,
- (int, int, obj.obj.get_x(), obj.obj.set_x(val))
- (int, int, obj.obj.get_y(), obj.obj.set_y(val))
-)
-
-int
-main()
-{
- using namespace boost::fusion;
-
- std::cout << tuple_open('[');
- std::cout << tuple_close(']');
- std::cout << tuple_delimiter(", ");
-
- {
- BOOST_MPL_ASSERT((traits::is_view<adapted::point>));
- ns::point basep(123, 456);
- adapted::point p(basep);
-
- std::cout << at_c<0>(p) << std::endl;
- std::cout << at_c<1>(p) << std::endl;
- std::cout << p << std::endl;
- BOOST_TEST(p == make_vector(123, 456));
-
- at_c<0>(p) = 6;
- at_c<1>(p) = 9;
- BOOST_TEST(p == make_vector(6, 9));
-
- BOOST_STATIC_ASSERT(result_of::size<adapted::point>::value == 2);
- BOOST_STATIC_ASSERT(!result_of::empty<adapted::point>::value);
-
- BOOST_TEST(front(p) == 6);
- BOOST_TEST(back(p) == 9);
- }
-
- {
- //TODO
- vector<int, float> v1(4, 2.0f);
- ns::point basep(5, 3);
- adapted::point v2(basep);
-
- vector<long, double> v3(5, 4);
- BOOST_TEST(v1 < v2);
- BOOST_TEST(v1 <= v2);
- BOOST_TEST(v2 > v1);
- BOOST_TEST(v2 >= v1);
- BOOST_TEST(v2 < v3);
- BOOST_TEST(v2 <= v3);
- BOOST_TEST(v3 > v2);
- BOOST_TEST(v3 >= v2);
- }
-
- {
- // conversion from ns::point to vector
- ns::point basep(5, 3);
- adapted::point p(basep);
-
- vector<int, long> v(p);
- v = p;
- }
-
- {
- // conversion from ns::point to list
- ns::point basep(5, 3);
- adapted::point p(basep);
-
- list<int, long> l(p);
- l = p;
- }
-
- {
- BOOST_MPL_ASSERT((boost::mpl::is_sequence<adapted::point>));
- BOOST_MPL_ASSERT((boost::is_same<
- result_of::value_at_c<adapted::point,0>::type
- , boost::mpl::front<adapted::point>::type>));
- }
-
- return boost::report_errors();
-}
-
Deleted: sandbox/SOC/2009/fusion/libs/fusion/test/suite1/sequence/adapt_tpl_class.cpp
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/test/suite1/sequence/adapt_tpl_class.cpp 2010-09-16 18:33:32 EDT (Thu, 16 Sep 2010)
+++ (empty file)
@@ -1,134 +0,0 @@
-/*==============================================================================
- Copyright (c) 2010 Christopher Schmidt
-
- Distributed under the Boost Software License, Version 1.0. (See accompanying
- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-#include <boost/detail/lightweight_test.hpp>
-#include <boost/fusion/adapted/class/adapt_class.hpp>
-#include <boost/fusion/sequence/intrinsic/at.hpp>
-#include <boost/fusion/sequence/intrinsic/size.hpp>
-#include <boost/fusion/sequence/intrinsic/empty.hpp>
-#include <boost/fusion/sequence/intrinsic/front.hpp>
-#include <boost/fusion/sequence/intrinsic/back.hpp>
-#include <boost/fusion/sequence/intrinsic/value_at.hpp>
-#include <boost/fusion/sequence/io/out.hpp>
-#include <boost/fusion/container/vector/vector.hpp>
-#include <boost/fusion/container/list/list.hpp>
-#include <boost/fusion/container/generation/make_vector.hpp>
-#include <boost/fusion/container/vector/convert.hpp>
-#include <boost/fusion/sequence/comparison/equal_to.hpp>
-#include <boost/fusion/sequence/comparison/not_equal_to.hpp>
-#include <boost/fusion/sequence/comparison/less.hpp>
-#include <boost/fusion/sequence/comparison/less_equal.hpp>
-#include <boost/fusion/sequence/comparison/greater.hpp>
-#include <boost/fusion/sequence/comparison/greater_equal.hpp>
-#include <boost/fusion/mpl.hpp>
-#include <boost/fusion/support/is_view.hpp>
-#include <boost/mpl/front.hpp>
-#include <boost/mpl/is_sequence.hpp>
-#include <boost/mpl/assert.hpp>
-#include <boost/static_assert.hpp>
-#include <iostream>
-#include <string>
-
-namespace ns
-{
- template<typename X, typename Y>
- class point
- {
- public:
-
- point() : x(0), y(0) {}
- point(X x, Y y) : x(x), y(y) {}
-
- X get_x() const { return x; }
- Y get_y() const { return y; }
- void set_x(X x_) { x = x_; }
- void set_y(Y y_) { y = y_; }
-
- private:
-
- X x;
- Y y;
- };
-}
-
-BOOST_FUSION_ADAPT_TPL_CLASS(
- (X)(Y),
- (ns::point)(X)(Y),
- (X, X, obj.get_x(), obj.set_x(val))
- (Y, Y, obj.get_y(), obj.set_y(val))
-)
-
-int
-main()
-{
- using namespace boost::fusion;
- using namespace std;
-
- typedef ns::point<int, int> point;
-
- std::cout << tuple_open('[');
- std::cout << tuple_close(']');
- std::cout << tuple_delimiter(", ");
-
- {
- BOOST_MPL_ASSERT_NOT((traits::is_view<point>));
- point p(123, 456);
-
- std::cout << at_c<0>(p) << std::endl;
- std::cout << at_c<1>(p) << std::endl;
- std::cout << p << std::endl;
- BOOST_TEST(p == make_vector(123, 456));
-
- at_c<0>(p) = 6;
- at_c<1>(p) = 9;
- BOOST_TEST(p == make_vector(6, 9));
-
- BOOST_STATIC_ASSERT(result_of::size<point>::value == 2);
- BOOST_STATIC_ASSERT(!result_of::empty<point>::value);
-
- BOOST_TEST(front(p) == 6);
- BOOST_TEST(back(p) == 9);
- }
-
- {
- //TODO
- boost::fusion::vector<int, float> v1(4, 2.0f);
- point v2(5, 3);
- boost::fusion::vector<long, double> v3(5, 4);
- BOOST_TEST(v1 < v2);
- BOOST_TEST(v1 <= v2);
- BOOST_TEST(v2 > v1);
- BOOST_TEST(v2 >= v1);
- BOOST_TEST(v2 < v3);
- BOOST_TEST(v2 <= v3);
- BOOST_TEST(v3 > v2);
- BOOST_TEST(v3 >= v2);
- }
-
- {
- // conversion from point to vector
- point p(5, 3);
- boost::fusion::vector<int, long> v(p);
- v = p;
- }
-
- {
- // conversion from point to list
- point p(5, 3);
- boost::fusion::list<int, long> l(p);
- l = p;
- }
-
- {
- BOOST_MPL_ASSERT((boost::mpl::is_sequence<point>));
- BOOST_MPL_ASSERT((boost::is_same<
- boost::fusion::result_of::value_at_c<point,0>::type
- , boost::mpl::front<point>::type>));
- }
-
- return boost::report_errors();
-}
-
Modified: sandbox/SOC/2009/fusion/libs/fusion/test/suite2/adapted/mpl.cpp
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/test/suite2/adapted/mpl.cpp (original)
+++ sandbox/SOC/2009/fusion/libs/fusion/test/suite2/adapted/mpl.cpp 2010-09-16 18:33:32 EDT (Thu, 16 Sep 2010)
@@ -10,10 +10,10 @@
#include "../internal/base.hpp"
#undef BOOST_FUSION_TEST_NO_ADAPTED_MPL
+#include <boost/fusion/adapted/adt.hpp>
#include <boost/fusion/adapted/array.hpp>
#include <boost/fusion/adapted/boost_array.hpp>
#include <boost/fusion/adapted/boost_tuple.hpp>
-#include <boost/fusion/adapted/class.hpp>
#include <boost/fusion/adapted/std_array.hpp>
#include <boost/fusion/adapted/std_pair.hpp>
#include <boost/fusion/adapted/std_tuple.hpp>
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