
Consider the following snippet (trying to compile with Boost 1.62): ///////////////////////////////////////////////////////////// #include <boost/variant.hpp> 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 { Node child; }; struct var_type : var_base { using var_base::var_base; }; int main() { var_type v1 = 1; } /////////////////////////////////////////////////////////////////// It crashes GCC: http://melpon.org/wandbox/permlink/A6BuYqqrG4COcfFl and produces compilation error with any released version of Clang: http://melpon.org/wandbox/permlink/1JQ7OVLV3crERRJX (Although it does compile with Clang-4 trunk). I'd appreciate if Variant maintainers could take a look at it. Thanks.