Boost logo

Boost :

Subject: [boost] [variant] spirit broken
From: Jürgen Hunold (jhunold_at_[hidden])
Date: 2016-06-03 03:30:41

Hi Antony,

according to git bisect, your commit
commit b3650685f941a0c35cadfd878a185f274e132788
Author: Antony Polukhin <antoshkka_at_[hidden]>
Date: Sat May 28 01:29:52 2016 +0300
    Variant constructors and assignment operators now do not participate in
overload resolutions if variant can not hold the input type (trac 5871, trac

broke Boost.Spirit. The test failures can be seen in the regression matrix.
For example:

fails with

../boost/variant/variant.hpp:1152:7: note: while substituting deduced template
arguments into function template 'operator=' [with T =
boost::variant<boost::spirit::info::nil_, std::__1::basic_string<char>,
boost::spirit::info> >,
std::__1::allocator<boost::spirit::info> > > >]
class variant
../boost/spirit/home/support/info.hpp:29:12: note: definition of
'boost::spirit::info' is not complete until the closing '}'
    struct info

It seems that the commit somehow disabled support for recursive variant usage.

To reproduce this, just run the Spirit regression test.



* Dipl.-Math. Jürgen Hunold  ! 
* voice: ++49 4257 300       ! Fährstraße 1
* fax  : ++49 4257 300       ! 31609 Balge/Sebbenhausen
*             ! Germany

Boost list run by bdawes at, gregod at, cpdaniel at, john at