Boost logo

Boost Users :

Subject: Re: [Boost-users] Boost fusion problem
From: Lee Clagett (forum_at_[hidden])
Date: 2016-06-05 14:40:40


On Mon, 30 May 2016 11:52:09 +1000
Jess Morecroft <jess_at_[hidden]> wrote:

> Hi Lee,
>
> We actually noticed that by changing the tuple to a (fusion) vector,
> it just works. This was unexpected as we'd thought/read in the boost
> doc that tuple was just effectively an alias for a vector, but
> apparently not. This is good enough for us so no solution required
> beyond this.
>
> Regards
> Jess
>

Yes I noticed this as well during my testing for a patch. In C++03 and
C++11 `fusion::tuple` inherits from `fusion::vector`, so they are
functionally identical but unique types. So copying/moving from tuple to
vector (or vice-versa) triggers the "copy from another sequence type"
code. You found a bug in that code for C++11, and while trying to
identify a fix I found a similar bug in the C++03 version, and issues
with the C++11 list too.

Joel has [merged my fix][0] for your particular use case, and I hope to
continue working on a fixes for the other cases too.

Lee

[0] https://github.com/boostorg/fusion/pull/132


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net