[multi_index] Move Semantics

Hi, I've been a user of Boost.MultiIndex for a number of years and think it's a great library. Is there any firm plan to add move semantics? It's been noted under "Future Work" in the docs since Boost 1.32. Regards, Mark

Mark Snelling <mark <at> bakedbeans.com> writes:
Hi, I've been a user of Boost.MultiIndex for a number of years and think it's a great library. Is there any firm plan to add move semantics? It's been noted under "Future Work" in the docs since Boost 1.32.
Hi Mark, In general, Boost.MultiIndex needs to be updated so as to comply with the new requirements for containers in C++11 (move ctors and assignment, initializer_list ctor, emplace.) I'll plan to do so when time permits, but the time I can devote to lib maintaining is increasingly smaller. Patches are most welcome. Best regards, Joaquín M López Muñoz Telefónica, Investigación y Desarrollo

On Mon, Dec 19, 2011 at 8:50 AM, Joaquin M Lopez Munoz <joaquin@tid.es>wrote:
Mark Snelling <mark <at> bakedbeans.com> writes:
Hi, I've been a user of Boost.MultiIndex for a number of years and think
it's a
great library. Is there any firm plan to add move semantics? It's been noted under "Future Work" in the docs since Boost 1.32.
Hi Mark,
In general, Boost.MultiIndex needs to be updated so as to comply with the new requirements for containers in C++11 (move ctors and assignment, initializer_list ctor, emplace.) I'll plan to do so when time permits, but the time I can devote to lib maintaining is increasingly smaller. Patches are most welcome.
Does anyone is working on making Boost.Multiindex move-semantics enabled ? If nobody is doing it, I could work on that. Regards, Fernando Pelliccioni.

On Tue, Feb 26, 2013 at 12:09 PM, Fernando Pelliccioni <fpelliccioni@gmail.com> wrote:
On Mon, Dec 19, 2011 at 8:50 AM, Joaquin M Lopez Munoz <joaquin@tid.es>wrote:
In general, Boost.MultiIndex needs to be updated so as to comply with the new requirements for containers in C++11 (move ctors and assignment, initializer_list ctor, emplace.) I'll plan to do so when time permits, but the time I can devote to lib maintaining is increasingly smaller. Patches are most welcome.
Does anyone is working on making Boost.Multiindex move-semantics enabled ? If nobody is doing it, I could work on that.
Cool. I am also interested in seeing Boost.MultiIndex upgraded. I am currently working on an update for Boost.Bimap (I got ride of a lot of internal machinery that was theoretically sound but in practice it was just slowing down compilation times and giving users unreadable error messages), and I will need MultiIndex updated for the getting the lib into C++11 era. If you are going to work on this, I will like to be around. It will be great if we could already clone Boost.MultiIndex git repository :) Best regards Matias

On Tue, Feb 26, 2013 at 8:35 AM, Matias Capeletto < matias.capeletto@gmail.com> wrote:
On Tue, Feb 26, 2013 at 12:09 PM, Fernando Pelliccioni <fpelliccioni@gmail.com> wrote:
On Mon, Dec 19, 2011 at 8:50 AM, Joaquin M Lopez Munoz <joaquin@tid.es wrote:
In general, Boost.MultiIndex needs to be updated so as to comply with the new requirements for containers in C++11 (move ctors and assignment, initializer_list ctor, emplace.) I'll plan to do so when time permits, but the time I can devote to lib maintaining is increasingly smaller. Patches are most welcome.
Does anyone is working on making Boost.Multiindex move-semantics enabled ? If nobody is doing it, I could work on that.
Cool. I am also interested in seeing Boost.MultiIndex upgraded. I am currently working on an update for Boost.Bimap (I got ride of a lot of internal machinery that was theoretically sound but in practice it was just slowing down compilation times and giving users unreadable error messages), and I will need MultiIndex updated for the getting the lib into C++11 era. If you are going to work on this, I will like to be around. It will be great if we could already clone Boost.MultiIndex git repository :)
Best regards Matias
I'm using quite Boost.MultiIndex and I would like it has support for C++11. I am willing to devote time to it if nobody is doing it. Joaquin has recently stated that hi has changes to commit to one of his libs. ( Thread: "Should I commit to SVN or Git?" ) I wonder if those changes are related to add C++11 support to Boost.Multiindex I like your idea of cloning the repository. Do you know where is located the Boost.Multiindex Git repository? ( Is there such a repository? ) Regards, Fernando P.

On 26 February 2013 13:09, Fernando Pelliccioni wrote:
I like your idea of cloning the repository. Do you know where is located the Boost.Multiindex Git repository? ( Is there such a repository? )
I assume it's https://github.com/boostorg/multi_index Which is part of the modular boost project, see https://svn.boost.org/trac/boost/wiki/WikiStart#GitandModularBoost

On Tue, Feb 26, 2013 at 10:16 AM, Jonathan Wakely <jwakely.boost@kayari.org>wrote:
On 26 February 2013 13:09, Fernando Pelliccioni wrote:
I like your idea of cloning the repository. Do you know where is located the Boost.Multiindex Git repository? ( Is there such a repository? )
I assume it's https://github.com/boostorg/multi_index Which is part of the modular boost project, see https://svn.boost.org/trac/boost/wiki/WikiStart#GitandModularBoost
Oh, thank you very much!

On Tue, Feb 26, 2013 at 2:19 PM, Fernando Pelliccioni <fpelliccioni@gmail.com> wrote:
On Tue, Feb 26, 2013 at 10:16 AM, Jonathan Wakely <jwakely.boost@kayari.org>wrote:
On 26 February 2013 13:09, Fernando Pelliccioni wrote:
I like your idea of cloning the repository. Do you know where is located the Boost.Multiindex Git repository? ( Is there such a repository? )
I assume it's https://github.com/boostorg/multi_index Which is part of the modular boost project, see https://svn.boost.org/trac/boost/wiki/WikiStart#GitandModularBoost
Oh, thank you very much!
Yes, I was thinking on this. Joaquin was also asking about whether to start using this repository or wait and keep using SVN. In the meanwhile, I do not see any harm by forking that rep and start working on it, you can later generate some patches for Joaquin to apply to the current trunk at the time you finish your work (hopefully we will be already in GitHub and you will just issue a pull request).

On Tue, Feb 26, 2013 at 10:24 AM, Matias Capeletto < matias.capeletto@gmail.com> wrote:
On Tue, Feb 26, 2013 at 2:19 PM, Fernando Pelliccioni <fpelliccioni@gmail.com> wrote:
On Tue, Feb 26, 2013 at 10:16 AM, Jonathan Wakely <jwakely.boost@kayari.org>wrote:
On 26 February 2013 13:09, Fernando Pelliccioni wrote:
I like your idea of cloning the repository. Do you know where is located the Boost.Multiindex Git repository? ( Is there such a repository? )
I assume it's https://github.com/boostorg/multi_index Which is part of the modular boost project, see https://svn.boost.org/trac/boost/wiki/WikiStart#GitandModularBoost
Oh, thank you very much!
Yes, I was thinking on this. Joaquin was also asking about whether to start using this repository or wait and keep using SVN. In the meanwhile, I do not see any harm by forking that rep and start working on it, you can later generate some patches for Joaquin to apply to the current trunk at the time you finish your work (hopefully we will be already in GitHub and you will just issue a pull request).

El 26/02/2013 14:09, Fernando Pelliccioni escribió:
I'm using quite Boost.MultiIndex and I would like it has support for C++11. I am willing to devote time to it if nobody is doing it.
Joaquin has recently stated that hi has changes to commit to one of his libs. ( Thread: "Should I commit to SVN or Git?" ) I wonder if those changes are related to add C++11 support to Boost.Multiindex
Hi Fernando and team, The latest changes I commited to the lib are unfortunately not related to C++11 upgrading but very minor patches to suppress warnings and such. Boost.MultiIndex sorely needs to have move semantics, initializer list construction and emplace functions. Even though I'm willing (and have been for some months) to add these myself the sad reality is that the time I can devote to this is increasingly small, so if any other contributor wants to take up the task I'll be more than happy to assist. A few words on the changes: * In general, when implementing a new feature I've had more work upgrading tests and docs that writing the feature itself. Many patch contributors forget to provide the former, though. * Implementing move construction and initializer list support should be straightforward. Probably the design decisions in Boost.Unordered (and part of the code itself) can be reused here. * emplace is a different animal: apart from the interface implementation (which, again, might benefit of the work already done in Boost.Unordered) some internal scaffolding needs to be put in place. I'll be happy to discuss this. Joaquín M López Muñoz Telefónica Digital ________________________________ Este mensaje se dirige exclusivamente a su destinatario. Puede consultar nuestra política de envío y recepción de correo electrónico en el enlace situado más abajo. This message is intended exclusively for its addressee. We only send and receive email on the basis of the terms set out at: http://www.tid.es/ES/PAGINAS/disclaimer.aspx

On Wed, Feb 27, 2013 at 4:22 AM, Joaquín Mª López Muñoz <joaquin@tid.es>wrote:
El 26/02/2013 14:09, Fernando Pelliccioni escribió:
I'm using quite Boost.MultiIndex and I would like it has support for C++11. I am willing to devote time to it if nobody is doing it.
Joaquin has recently stated that hi has changes to commit to one of his libs. ( Thread: "Should I commit to SVN or Git?" ) I wonder if those changes are related to add C++11 support to Boost.Multiindex
Hi Fernando and team,
The latest changes I commited to the lib are unfortunately not related to C++11 upgrading but very minor patches to suppress warnings and such.
Boost.MultiIndex sorely needs to have move semantics, initializer list construction and emplace functions. Even though I'm willing (and have been for some months) to add these myself the sad reality is that the time I can devote to this is increasingly small, so if any other contributor wants to take up the task I'll be more than happy to assist. A few words on the changes:
* In general, when implementing a new feature I've had more work upgrading tests and docs that writing the feature itself. Many patch contributors forget to provide the former, though. * Implementing move construction and initializer list support should be straightforward. Probably the design decisions in Boost.Unordered (and part of the code itself) can be reused here. * emplace is a different animal: apart from the interface implementation (which, again, might benefit of the work already done in Boost.Unordered) some internal scaffolding needs to be put in place. I'll be happy to discuss this.
Joaquín M López Muñoz Telefónica Digital
Hi Joaquín, I will try to send both patches and updates to the test. Regarding to the documentation perhaps we should work together. Casually, one of the first changes I thought implement is emplace, I was not aware of the problem you mention. I will check the design decisions taken in Unordered and Container, in any case we can discuss it. Thank you very much for your advice and keep in touch. Regards, Fernando Pelliccioni.
participants (6)
-
Fernando Pelliccioni
-
Joaquin M Lopez Munoz
-
Joaquín Mª López Muñoz
-
Jonathan Wakely
-
Mark Snelling
-
Matias Capeletto