Re: [Boost-bugs] [Boost C++ Libraries] #7120: ambiguous overload of convert_construct in variant when one of variant's value types derives from variant

Subject: Re: [Boost-bugs] [Boost C++ Libraries] #7120: ambiguous overload of convert_construct in variant when one of variant's value types derives from variant
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2016-08-21 18:32:27


#7120: ambiguous overload of convert_construct in variant when one of variant's
value types derives from variant
-------------------------------+-----------------------
  Reporter: jeffrey.hellrung | Owner: apolukhin
      Type: Bugs | Status: assigned
 Milestone: Boost 1.62.0 | Component: variant
   Version: Boost 1.51.0 | Severity: Problem
Resolution: | Keywords:
-------------------------------+-----------------------

Comment (by Igor R.):

 Replying to [comment:2 apolukhin]:
> Fixed in
 [https://github.com/boostorg/variant/commit/d23cdd3502b452231c6c6bc2f2d4298ca24b5650
 d23cdd35 develop], will be merged to master branch as soon as the tests
 will cycle.


 Just for the record: the proposed fix fails the following code:

 {{{
 #include <boost/variant.hpp>
 #include <array>

 template<class Node>
 struct node1_type;

 struct var_type;

 using var_base = boost::variant<int,
   boost::recursive_wrapper<node1_type<var_type>>
>;

 template<class Node>
 struct node1_type
 {
   std::array<Node, 1> children;
 };

 struct var_type : var_base
 {
   using var_base::var_base;
 };

 int main()
 {
   var_type v1 = 1;
 }
 }}}

-- 
Ticket URL: <https://svn.boost.org/trac/boost/ticket/7120#comment:4>
Boost C++ Libraries <http://www.boost.org/>
Boost provides free peer-reviewed portable C++ source libraries.

This archive was generated by hypermail 2.1.7 : 2017-02-16 18:50:20 UTC