|
Boost-Commit : |
Subject: [Boost-commit] svn:boost r58697 - in branches/release: . boost boost/algorithm/string boost/archive boost/config boost/filesystem boost/functional/hash boost/fusion boost/graph boost/integer boost/interprocess boost/intrusive boost/math boost/numeric/ublas boost/program_options boost/property_tree boost/proto boost/proto/context boost/proto/transform boost/python boost/serialization boost/signals boost/signals2 boost/spirit boost/spirit/home boost/spirit/home/karma boost/spirit/home/support boost/system boost/thread boost/tr1 boost/type_traits boost/utility boost/variant boost/wave doc libs libs/config libs/filesystem libs/functional/hash libs/fusion libs/graph_parallel libs/integer libs/interprocess libs/intrusive libs/math libs/mpl/doc/refmanual libs/mpl/doc/src/refmanual libs/numeric/ublas libs/numeric/ublas/doc libs/program_options libs/property_tree libs/python libs/serialization libs/signals libs/signals2 libs/spirit libs/spirit/classic/example libs/spirit/doc libs/spirit/example libs/spirit/phoenix libs/spirit/test libs/spirit/test/qi libs/static_assert libs/system libs/thread libs/thread/doc libs/timer libs/tr1 libs/type_traits libs/utility libs/wave more people status tools tools/boostbook tools/build/v2 tools/inspect tools/regression tools/release tools/wave wiki
From: eric_at_[hidden]
Date: 2010-01-04 20:39:29
Author: eric_niebler
Date: 2010-01-04 20:39:28 EST (Mon, 04 Jan 2010)
New Revision: 58697
URL: http://svn.boost.org/trac/boost/changeset/58697
Log:
Merged revisions 58401,58412 via svnmerge from
https://svn.boost.org/svn/boost/trunk
........
r58401 | eric_niebler | 2009-12-16 09:29:09 +1100 (Wed, 16 Dec 2009) | 1 line
more appropriate use of ellipses when a really bad conversion sequence is needed
........
r58412 | eric_niebler | 2009-12-16 21:30:40 +1100 (Wed, 16 Dec 2009) | 1 line
fix BOOST_PROTO_EXTENDS to work with elaborated types
........
Properties modified:
branches/release/ (props changed)
branches/release/CMakeLists.txt (props changed)
branches/release/INSTALL (props changed)
branches/release/Jamroot (props changed)
branches/release/LICENSE_1_0.txt (props changed)
branches/release/boost/ (props changed)
branches/release/boost-build.jam (props changed)
branches/release/boost.css (props changed)
branches/release/boost.png (props changed)
branches/release/boost/algorithm/string/ (props changed)
branches/release/boost/archive/ (props changed)
branches/release/boost/config/ (props changed)
branches/release/boost/filesystem/ (props changed)
branches/release/boost/functional/hash/ (props changed)
branches/release/boost/fusion/ (props changed)
branches/release/boost/graph/ (props changed)
branches/release/boost/integer/ (props changed)
branches/release/boost/interprocess/ (props changed)
branches/release/boost/intrusive/ (props changed)
branches/release/boost/math/ (props changed)
branches/release/boost/numeric/ublas/ (props changed)
branches/release/boost/program_options/ (props changed)
branches/release/boost/property_tree/ (props changed)
branches/release/boost/python/ (props changed)
branches/release/boost/serialization/ (props changed)
branches/release/boost/signals/ (props changed)
branches/release/boost/signals2/ (props changed)
branches/release/boost/spirit/ (props changed)
branches/release/boost/spirit/home/ (props changed)
branches/release/boost/spirit/home/karma/ (props changed)
branches/release/boost/spirit/home/support/attributes.hpp (props changed)
branches/release/boost/system/ (props changed)
branches/release/boost/thread/ (props changed)
branches/release/boost/thread.hpp (props changed)
branches/release/boost/tr1/ (props changed)
branches/release/boost/type_traits/ (props changed)
branches/release/boost/utility/value_init.hpp (props changed)
branches/release/boost/variant/ (props changed)
branches/release/boost/version.hpp (props changed)
branches/release/boost/wave/ (props changed)
branches/release/bootstrap.bat (props changed)
branches/release/bootstrap.sh (props changed)
branches/release/doc/ (props changed)
branches/release/index.htm (props changed)
branches/release/index.html (props changed)
branches/release/libs/ (props changed)
branches/release/libs/config/ (props changed)
branches/release/libs/filesystem/ (props changed)
branches/release/libs/functional/hash/ (props changed)
branches/release/libs/fusion/ (props changed)
branches/release/libs/graph_parallel/ (props changed)
branches/release/libs/integer/ (props changed)
branches/release/libs/interprocess/ (props changed)
branches/release/libs/intrusive/ (props changed)
branches/release/libs/libraries.htm (props changed)
branches/release/libs/maintainers.txt (props changed)
branches/release/libs/math/ (props changed)
branches/release/libs/mpl/doc/refmanual/broken-compiler-workarounds.html (props changed)
branches/release/libs/mpl/doc/refmanual/categorized-index-concepts.html (props changed)
branches/release/libs/mpl/doc/refmanual/cfg-no-preprocessed-headers.html (props changed)
branches/release/libs/mpl/doc/refmanual/composition-and-argument-binding.html (props changed)
branches/release/libs/mpl/doc/refmanual/data-types-concepts.html (props changed)
branches/release/libs/mpl/doc/refmanual/data-types-miscellaneous.html (props changed)
branches/release/libs/mpl/doc/refmanual/extensible-associative-sequence.html (props changed)
branches/release/libs/mpl/doc/refmanual/inserter-class.html (props changed)
branches/release/libs/mpl/doc/refmanual/tag-dispatched-metafunction.html (props changed)
branches/release/libs/mpl/doc/refmanual/trivial-metafunctions-summary.html (props changed)
branches/release/libs/mpl/doc/src/refmanual/Iterators-Iterator.rst (props changed)
branches/release/libs/numeric/ublas/ (props changed)
branches/release/libs/numeric/ublas/doc/ (props changed)
branches/release/libs/program_options/ (props changed)
branches/release/libs/property_tree/ (props changed)
branches/release/libs/python/ (props changed)
branches/release/libs/serialization/ (props changed)
branches/release/libs/signals/ (props changed)
branches/release/libs/signals2/ (props changed)
branches/release/libs/spirit/ (props changed)
branches/release/libs/spirit/classic/example/ (props changed)
branches/release/libs/spirit/doc/ (props changed)
branches/release/libs/spirit/example/ (props changed)
branches/release/libs/spirit/phoenix/ (props changed)
branches/release/libs/spirit/test/ (props changed)
branches/release/libs/spirit/test/qi/optional.cpp (props changed)
branches/release/libs/static_assert/ (props changed)
branches/release/libs/system/ (props changed)
branches/release/libs/thread/ (props changed)
branches/release/libs/thread/doc/ (props changed)
branches/release/libs/timer/ (props changed)
branches/release/libs/tr1/ (props changed)
branches/release/libs/type_traits/ (props changed)
branches/release/libs/utility/swap.html (props changed)
branches/release/libs/utility/value_init.htm (props changed)
branches/release/libs/utility/value_init_test.cpp (props changed)
branches/release/libs/wave/ (props changed)
branches/release/more/ (props changed)
branches/release/people/ (props changed)
branches/release/rst.css (props changed)
branches/release/status/ (props changed)
branches/release/tools/ (props changed)
branches/release/tools/boostbook/ (props changed)
branches/release/tools/build/v2/ (props changed)
branches/release/tools/inspect/ (props changed)
branches/release/tools/regression/ (props changed)
branches/release/tools/release/ (props changed)
branches/release/tools/wave/ (props changed)
branches/release/wiki/ (props changed)
Text files modified:
branches/release/boost/proto/context/callable.hpp | 36 +++++++++++++-----------------------
branches/release/boost/proto/extends.hpp | 5 +++--
branches/release/boost/proto/make_expr.hpp | 3 +--
branches/release/boost/proto/proto_fwd.hpp | 2 +-
branches/release/boost/proto/transform/call.hpp | 1 -
branches/release/boost/proto/transform/when.hpp | 10 +++-------
6 files changed, 21 insertions(+), 36 deletions(-)
Modified: branches/release/boost/proto/context/callable.hpp
==============================================================================
--- branches/release/boost/proto/context/callable.hpp (original)
+++ branches/release/boost/proto/context/callable.hpp 2010-01-04 20:39:28 EST (Mon, 04 Jan 2010)
@@ -36,21 +36,29 @@
{
namespace detail
{
+ template<typename Context>
+ struct callable_context_wrapper
+ : remove_cv<Context>::type
+ {
+ callable_context_wrapper();
+ typedef private_type_ fun_type(...);
+ operator fun_type *() const;
+ private:
+ callable_context_wrapper &operator =(callable_context_wrapper const &);
+ };
+
template<typename T>
yes_type check_is_expr_handled(T const &);
no_type check_is_expr_handled(private_type_ const &);
- template<typename Context, long Arity>
- struct callable_context_wrapper;
-
template<typename Expr, typename Context, long Arity = Expr::proto_arity_c>
struct is_expr_handled;
template<typename Expr, typename Context>
struct is_expr_handled<Expr, Context, 0>
{
- static callable_context_wrapper<Context, 1> &sctx_;
+ static callable_context_wrapper<Context> &sctx_;
static Expr &sexpr_;
static typename Expr::proto_tag &stag_;
@@ -243,28 +251,10 @@
namespace detail
{
- template<typename Context>
- struct callable_context_wrapper<Context, N>
- : remove_cv<Context>::type
- {
- callable_context_wrapper();
- typedef
- private_type_ const &fun_type(
- BOOST_PP_ENUM_PARAMS(
- BOOST_PP_INC(N)
- , detail::dont_care BOOST_PP_INTERCEPT
- )
- );
- operator fun_type *() const;
-
- private:
- callable_context_wrapper &operator =(callable_context_wrapper const &);
- };
-
template<typename Expr, typename Context>
struct is_expr_handled<Expr, Context, N>
{
- static callable_context_wrapper<Context, N> &sctx_;
+ static callable_context_wrapper<Context> &sctx_;
static Expr &sexpr_;
static typename Expr::proto_tag &stag_;
Modified: branches/release/boost/proto/extends.hpp
==============================================================================
--- branches/release/boost/proto/extends.hpp (original)
+++ branches/release/boost/proto/extends.hpp 2010-01-04 20:39:28 EST (Mon, 04 Jan 2010)
@@ -147,7 +147,8 @@
#define BOOST_PROTO_BASIC_EXTENDS_(Expr, Derived, Domain) \
Expr proto_expr_; \
\
- typedef typename Expr::proto_base_expr proto_base_expr; \
+ typedef Expr proto_base_expr_; /**< INTERNAL ONLY */ \
+ typedef typename proto_base_expr_::proto_base_expr proto_base_expr; \
typedef Domain proto_domain; \
typedef Derived proto_derived_expr; \
typedef typename proto_base_expr::proto_tag proto_tag; \
@@ -156,7 +157,7 @@
typedef typename proto_base_expr::address_of_hack_type_ proto_address_of_hack_type_; \
typedef void proto_is_expr_; /**< INTERNAL ONLY */ \
BOOST_STATIC_CONSTANT(long, proto_arity_c = proto_base_expr::proto_arity_c); \
- typedef boost::proto::tag::proto_expr fusion_tag; \
+ typedef boost::proto::tag::proto_expr fusion_tag; \
BOOST_PP_REPEAT(BOOST_PROTO_MAX_ARITY, BOOST_PROTO_EXTENDS_CHILD, ~) \
\
static proto_derived_expr const make(Expr const &e) \
Modified: branches/release/boost/proto/make_expr.hpp
==============================================================================
--- branches/release/boost/proto/make_expr.hpp (original)
+++ branches/release/boost/proto/make_expr.hpp 2010-01-04 20:39:28 EST (Mon, 04 Jan 2010)
@@ -930,8 +930,7 @@
type;
#else
#define M0(N, F) char (&F)[BOOST_PP_INC(N)]
- static M0(BOOST_PROTO_MAX_ARITY, deducer(
- BOOST_PP_ENUM_PARAMS(N, dont_care BOOST_PP_INTERCEPT)));
+ static M0(BOOST_PROTO_MAX_ARITY, deducer(...));
#define M1(Z, X, DATA) \
typedef typename domain_of<BOOST_PP_CAT(A, X)>::type BOOST_PP_CAT(D, X); \
static BOOST_PP_CAT(D, X) &BOOST_PP_CAT(d, X); \
Modified: branches/release/boost/proto/proto_fwd.hpp
==============================================================================
--- branches/release/boost/proto/proto_fwd.hpp (original)
+++ branches/release/boost/proto/proto_fwd.hpp 2010-01-04 20:39:28 EST (Mon, 04 Jan 2010)
@@ -95,7 +95,7 @@
struct private_type_
{
- private_type_ const &operator ,(int) const;
+ private_type_ operator ,(int) const;
};
template<typename T>
Modified: branches/release/boost/proto/transform/call.hpp
==============================================================================
--- branches/release/boost/proto/transform/call.hpp (original)
+++ branches/release/boost/proto/transform/call.hpp 2010-01-04 20:39:28 EST (Mon, 04 Jan 2010)
@@ -23,7 +23,6 @@
#include <boost/proto/proto_fwd.hpp>
#include <boost/proto/traits.hpp>
#include <boost/proto/transform/impl.hpp>
- #include <boost/proto/detail/dont_care.hpp>
#include <boost/proto/detail/as_lvalue.hpp>
#include <boost/proto/detail/poly_function.hpp>
Modified: branches/release/boost/proto/transform/when.hpp
==============================================================================
--- branches/release/boost/proto/transform/when.hpp (original)
+++ branches/release/boost/proto/transform/when.hpp 2010-01-04 20:39:28 EST (Mon, 04 Jan 2010)
@@ -146,16 +146,12 @@
template<typename Expr, typename State, typename Data>
struct impl : transform_impl<Expr, State, Data>
{
- typedef call<R(BOOST_PP_ENUM_PARAMS(N, A))> call_;
- typedef make<R(BOOST_PP_ENUM_PARAMS(N, A))> make_;
-
+ // OK to evaluate is_callable<R> here. R should be compete by now.
typedef
typename mpl::if_c<
- // OK to evaluate is_callable<R> here.
- // R should be compete by now.
is_callable<R>::value
- , call_ // "R" is a function to call
- , make_ // "R" is an object to construct
+ , call<R(BOOST_PP_ENUM_PARAMS(N, A))> // "R" is a function to call
+ , make<R(BOOST_PP_ENUM_PARAMS(N, A))> // "R" is an object to construct
>::type
which;
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