From: Mat M. <mm...@ad...> - 2008-04-01 18:25:50
|
Hi Daniel, Great, thanks for your efforts. One of the ASL authors is traveling to a conference. We'll review your suggested in a week or so. Sorry for the delay. - Mat "Daniel James" <dan...@fm...> writes: > Hi, > > David Abrahams suggested 'boostifying' the adobe move library during > the Boost.Unordered review - so I'm currently working on doing that. > Other than changing the namespaces, I'm planning to supply a fallback > for compilers without SFINAE and add support for Boost.Thread's move > semantics. And possibly add some support for objects that aren't > regular. > > I've attached a patch for a few small changes to the documentation. > Hopefully, it should be self-explanatory. Does it look okay? > > thanks, > > Daniel > > --- adobe/move.hpp.orig 2008-03-31 00:52:50.000000000 +0100 > +++ adobe/move.hpp 2008-03-31 01:22:30.000000000 +0100 > @@ -42,7 +42,7 @@ > > \par Implementing a Movable Type > > -A movable type models \ref concept_movable. There are four components of a movable type: > +A movable type models \ref concept_movable. There are three components of a movable type: > - Satisfy the requirements of concept \ref concept_regular_type. > - Implement a move-ctor using move_from<>. > - Modify the assignment operator to take the operand by value and consume it. > @@ -70,7 +70,7 @@ > > struct implementation : boost::equality_comparable<implementation> > { > - implementation(int x = 0) : member(x) { } > + explicit implementation(int x = 0) : member(x) { } > > implementation(const implementation& x) : member(x.member) > { std::cout << "copy remote part: " << member << std::endl; } > @@ -93,7 +93,7 @@ > public: > // model concept Regular > > - movable(int x = 0) : member(new implementation(x)) { } > + explicit movable(int x = 0) : member(new implementation(x)) { } > ~movable() { delete member; } > movable(const movable& x) : member(new implementation(*x.member)) { } > // operator=() implemented below > @@ -107,8 +107,8 @@ > // model concept Movable > > // move-ctor assumes ownership of remote part > - movable(move_from<movable> x) : member(x.source.member) > - { x.member = 0; } > + movable(adobe::move_from<movable> x) : member(x.source.member) > + { x.source.member = 0; } > > // operator=() on a movable type takes parameter by value and consumes it > movable& operator=(movable x) > @@ -212,13 +212,12 @@ > > <table> > <tr><td><b>Move</b></td><td><b>Copy</b></td><td><b>Comment</b></td></tr> > -<tr><td>adobe::move()<td><td>std::copy</td><td>Not to be confused with the single argument adobe::move()</td></tr> > -<tr><td>adobe::move_backward()<td><td>std::copy_backward</td></tr> > -<tr><td>adobe::move_backward()<td><td>std::copy_backward</td></tr> > -<tr><td>adobe::back_move_iterator()<td><td>std::back_insert_iterator</td></tr> > -<tr><td>adobe::back_mover()<td><td>std::back_inserter</td></tr> > -<tr><td>adobe::move_construct()<td><td>std::construct</td></tr> > -<tr><td>adobe::uninitialized_move()<td><td>std::uninitialized_copy</td></tr> > +<tr><td>adobe::move()</td><td>std::copy</td><td>Not to be confused with the single argument adobe::move()</td></tr> > +<tr><td>adobe::move_backward()</td><td>std::copy_backward</td></tr> > +<tr><td>adobe::back_move_iterator()</td><td>std::back_insert_iterator</td></tr> > +<tr><td>adobe::back_mover()</td><td>std::back_inserter</td></tr> > +<tr><td>adobe::move_construct()</td><td>std::construct</td></tr> > +<tr><td>adobe::uninitialized_move()</td><td>std::uninitialized_copy</td></tr> > </table> > > \par Advanced Topics > ------------------------------------------------------------------------- > Check out the new SourceForge.net Marketplace. > It's the best place to buy or sell services for > just about anything Open Source. > http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace_______________________________________________ > Adobe-source-devel mailing list > Ado...@li... > https://lists.sourceforge.net/lists/listinfo/adobe-source-devel |