Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r67832 - in sandbox/statistics/support/boost/assign/v2/put: . sub
From: erwann.rogard_at_[hidden]
Date: 2011-01-08 20:53:31


Author: e_r
Date: 2011-01-08 20:53:29 EST (Sat, 08 Jan 2011)
New Revision: 67832
URL: http://svn.boost.org/trac/boost/changeset/67832

Log:
addg to boost/assign/v2
Added:
   sandbox/statistics/support/boost/assign/v2/put/deque.hpp (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/put/pipe.hpp (contents, props changed)
   sandbox/statistics/support/boost/assign/v2/put/sub/functor.hpp (contents, props changed)

Added: sandbox/statistics/support/boost/assign/v2/put/deque.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/put/deque.hpp 2011-01-08 20:53:29 EST (Sat, 08 Jan 2011)
@@ -0,0 +1,17 @@
+//////////////////////////////////////////////////////////////////////////////
+// Boost.Assign v2 //
+// //
+// Copyright (C) 2003-2004 Thorsten Ottosen //
+// Copyright (C) 2010 Erwann Rogard //
+// Use, modification and distribution are subject to the //
+// Boost Software License, Version 1.0. (See accompanying file //
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) //
+//////////////////////////////////////////////////////////////////////////////
+#ifndef BOOST_ASSIGN_V2_PUT_DEQUE_ER_2010_HPP
+#define BOOST_ASSIGN_V2_PUT_DEQUE_ER_2010_HPP
+
+#include <boost/assign/v2/put/deque/cont.hpp>
+#include <boost/assign/v2/put/deque/functor.hpp>
+#include <boost/assign/v2/put/deque/csv.hpp>
+
+#endif

Added: sandbox/statistics/support/boost/assign/v2/put/pipe.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/put/pipe.hpp 2011-01-08 20:53:29 EST (Sat, 08 Jan 2011)
@@ -0,0 +1,22 @@
+//////////////////////////////////////////////////////////////////////////////
+// Boost.Assign v2 //
+// //
+// Copyright (C) 2003-2004 Thorsten Ottosen //
+// Copyright (C) 2010 Erwann Rogard //
+// Use, modification and distribution are subject to the //
+// Boost Software License, Version 1.0. (See accompanying file //
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) //
+//////////////////////////////////////////////////////////////////////////////
+#ifndef BOOST_ASSIGN_V2_PUT_PIPE_ER_2010_HPP
+#define BOOST_ASSIGN_V2_PUT_PIPE_ER_2010_HPP
+
+#include <boost/assign/v2/put/pipe/csv.hpp>
+#include <boost/assign/v2/put/pipe/functor.hpp>
+#include <boost/assign/v2/put/pipe/range.hpp>
+#include <boost/assign/v2/put/pipe/convert.hpp>
+
+// Basic usage:
+// using namespace boost::assign::v2;
+// cont | _csv_put(x, y, z)
+
+#endif // BOOST_ASSIGN_V2_PUT_PIPE_ER_2010_HPP

Added: sandbox/statistics/support/boost/assign/v2/put/sub/functor.hpp
==============================================================================
--- (empty file)
+++ sandbox/statistics/support/boost/assign/v2/put/sub/functor.hpp 2011-01-08 20:53:29 EST (Sat, 08 Jan 2011)
@@ -0,0 +1,128 @@
+//////////////////////////////////////////////////////////////////////////////
+// Boost.Assign v2 //
+// //
+// Copyright (C) 2003-2004 Thorsten Ottosen //
+// Copyright (C) 2010 Erwann Rogard //
+// Use, modification and distribution are subject to the //
+// Boost Software License, Version 1.0. (See accompanying file //
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) //
+//////////////////////////////////////////////////////////////////////////////
+#ifndef BOOST_ASSIGN_V2_PUT_SUB_FUNCTOR_ER_2010_HPP
+#define BOOST_ASSIGN_V2_PUT_SUB_FUNCTOR_ER_2010_HPP
+#include <boost/assign/v2/ref/wrapper/copy.hpp>
+#include <boost/assign/v2/put/generic/crtp.hpp>
+#include <boost/assign/v2/put/generic/result_of_modulo.hpp>
+
+namespace boost{
+namespace assign{
+namespace v2{
+namespace put_aux{
+
+ template<typename V,typename F, typename Tag> class sub;
+
+}// put_aux
+namespace result_of_modulo{
+
+ template<typename V,typename F,typename Tag>
+ struct new_fun<put_aux::sub<V,F,Tag> >
+ {
+
+ template<typename F1>
+ struct apply{ typedef put_aux::sub<V,F1,Tag> type; };
+
+ };
+
+ template<typename V, typename F, typename Tag>
+ struct new_modifier<put_aux::sub<V, F, Tag> >
+ {
+ template<typename NewTag>
+ struct apply{ typedef put_aux::sub<V, F, NewTag> type; };
+ };
+
+}//result_of_modulo
+namespace put_aux{
+
+ template<typename V,typename F, typename Tag> class sub;
+
+ template<typename V,typename F, typename Tag>
+ class sub
+ : protected ref::wrapper< // must be the first base.
+ ref::assign_tag::copy,
+ V
+ >,
+ public put_aux::crtp<
+ V,
+ F,
+ Tag,
+ sub<V,F,Tag>
+ >
+ {
+
+ typedef put_aux::crtp<
+ V,
+ F,
+ Tag,
+ sub<V,F,Tag>
+ > super2_t;
+
+ public:
+
+ typedef typename super2_t::result_type result_type;
+
+ protected:
+
+ typedef put_aux::modifier<Tag> modifier_;
+ typedef ref::assign_tag::copy assign_tag_;
+ typedef ref::wrapper<assign_tag_,V> super1_t;
+
+ public:
+
+ sub(){}
+ explicit sub( V& v ) : super1_t( v ) {}
+ explicit sub( V& v, F const& f )
+ : super1_t( v ), super2_t( f )
+ {
+ // This constructor is required by crtp
+ // when Tag or F is modified.
+ }
+
+ explicit sub( V& v, F const& f, modifier_ const& m )
+ : super1_t( v ), super2_t( f, m )
+ {
+ // This constructor is required by crtp
+ // when Tag or F is modified.
+ }
+
+ V& unwrap()const{
+ return static_cast<super1_t const&>(*this).unwrap();
+ }
+
+ };
+
+}// put_aux
+namespace result_of{
+
+ template<typename V>
+ struct put
+ {
+ typedef put_aux::crtp_traits<V> traits_;
+ typedef typename traits_::functor_type f_;
+ typedef typename traits_::modifier_tag modifier_tag_;
+ typedef put_aux::sub<V,f_,modifier_tag_> type;
+ };
+
+}// result_of
+
+ template<typename V>
+ typename result_of::put<V>::type
+ put( V& v )
+ {
+ typedef typename result_of::put<V>::type result_;
+ return result_( v );
+ }
+
+}// v2
+}// assign
+}// boost
+
+#endif


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