[LLVMbugs] [Bug 16965] New: Compilation failed when using boost::make_recursive_variant

bugzilla-daemon at llvm.org bugzilla-daemon at llvm.org
Wed Aug 21 20:48:42 PDT 2013


http://llvm.org/bugs/show_bug.cgi?id=16965

            Bug ID: 16965
           Summary: Compilation failed when using
                    boost::make_recursive_variant
           Product: clang
           Version: trunk
          Hardware: PC
                OS: MacOS X
            Status: NEW
          Severity: normal
          Priority: P
         Component: C++11
          Assignee: unassignedclangbugs at nondot.org
          Reporter: 191919 at gmail.com
                CC: dgregor at apple.com, llvmbugs at cs.uiuc.edu
    Classification: Unclassified

The following code failed to compile with clang svn trunk:

#include <map>
#include <boost/variant.hpp>

typedef boost::make_recursive_variant<
        int,
        std::map<std::string, boost::recursive_variant_>
    >::type t_t;
typedef std::map<int, t_t> dictionary_t;

void foo(dictionary_t& d)
{
    dictionary_t::const_iterator bit = d.find(42);
    d[24] = bit->second;
}

The compilation command line was:

/opt/bin/clang++ -std=c++11 -stdlib=libc++ -c 1.cpp

clang++ gave the error oracle as follows:

------------------------------------------------------

In file included from 1.cpp:2:
In file included from /usr/local/include/boost/variant.hpp:17:
/usr/local/include/boost/variant/variant.hpp:1751:9: error: call to member
function 'convert_construct' is ambiguous
        convert_construct( detail::variant::move(operand), 1L );
        ^~~~~~~~~~~~~~~~~
/opt/bin/../lib/c++/v1/utility:349:15: note: in instantiation of function
template specialization
'boost::variant<boost::detail::variant::recursive_flag<int>,
      std::__1::map<std::__1::basic_string<char>, boost::recursive_variant_,
std::__1::less<std::__1::basic_string<char> >,
      std::__1::allocator<std::__1::pair<const std::__1::basic_string<char>,
boost::recursive_variant_> > >, boost::detail::variant::void_,
      boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_,
      boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_,
      boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_,
      boost::detail::variant::void_,
boost::detail::variant::void_>::variant<const
boost::variant<boost::detail::variant::recursive_flag<int>,
      std::__1::map<std::__1::basic_string<char>, boost::recursive_variant_,
std::__1::less<std::__1::basic_string<char> >,
      std::__1::allocator<std::__1::pair<const std::__1::basic_string<char>,
boost::recursive_variant_> > >, boost::detail::variant::void_,
      boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_,
      boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_,
      boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_,
      boost::detail::variant::void_, boost::detail::variant::void_> >'
requested here
              second(_VSTD::forward<typename tuple_element<1,
              ^
/opt/bin/../lib/c++/v1/map:746:15: note: in instantiation of function template
specialization 'std::__1::pair<const std::__1::basic_string<char>,
      boost::variant<boost::detail::variant::recursive_flag<int>,
std::__1::map<std::__1::basic_string<char>, boost::recursive_variant_,
      std::__1::less<std::__1::basic_string<char> >,
std::__1::allocator<std::__1::pair<const std::__1::basic_string<char>,
boost::recursive_variant_> > >,
      boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_,
      boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_,
      boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_,
      boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_> >::pair<const std::__1::pair<const
      std::__1::basic_string<char>,
boost::variant<boost::detail::variant::recursive_flag<int>,
std::__1::map<std::__1::basic_string<char>,
      boost::recursive_variant_, std::__1::less<std::__1::basic_string<char> >,
std::__1::allocator<std::__1::pair<const std::__1::basic_string<char>,
      boost::recursive_variant_> > >, boost::detail::variant::void_,
boost::detail::variant::void_, boost::detail::variant::void_,
      boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_,
      boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_,
      boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_>
      >, void>' requested here
            : __cc(std::move(__v.__cc)) {}
              ^
/opt/bin/../lib/c++/v1/memory:1641:31: note: in instantiation of member
function 'std::__1::map<std::__1::basic_string<char>,
      boost::variant<boost::detail::variant::recursive_flag<int>,
std::__1::map<std::__1::basic_string<char>, boost::recursive_variant_,
      std::__1::less<std::__1::basic_string<char> >,
std::__1::allocator<std::__1::pair<const std::__1::basic_string<char>,
boost::recursive_variant_> > >,
      boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_,
      boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_,
      boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_,
      boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_>, std::__1::less<std::__1::basic_string<char> >,
      std::__1::allocator<std::__1::pair<const std::__1::basic_string<char>,
boost::variant<boost::detail::variant::recursive_flag<int>,
      std::__1::map<std::__1::basic_string<char>, boost::recursive_variant_,
std::__1::less<std::__1::basic_string<char> >,
      std::__1::allocator<std::__1::pair<const std::__1::basic_string<char>,
boost::recursive_variant_> > >, boost::detail::variant::void_,
      boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_,
      boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_,
      boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_,
      boost::detail::variant::void_, boost::detail::variant::void_> > >
>::__value_type::__value_type' requested here
            ::new((void*)__p) _Up(_VSTD::forward<_Args>(__args)...);
                              ^
/opt/bin/../lib/c++/v1/memory:1568:18: note: in instantiation of function
template specialization
     
'std::__1::allocator<std::__1::__tree_node<std::__1::map<std::__1::basic_string<char>,
boost::variant<boost::detail::variant::recursive_flag<int>,
      std::__1::map<std::__1::basic_string<char>, boost::recursive_variant_,
std::__1::less<std::__1::basic_string<char> >,
      std::__1::allocator<std::__1::pair<const std::__1::basic_string<char>,
boost::recursive_variant_> > >, boost::detail::variant::void_,
      boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_,
      boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_,
      boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_,
      boost::detail::variant::void_, boost::detail::variant::void_>,
std::__1::less<std::__1::basic_string<char> >,
std::__1::allocator<std::__1::pair<const
      std::__1::basic_string<char>,
boost::variant<boost::detail::variant::recursive_flag<int>,
std::__1::map<std::__1::basic_string<char>,
      boost::recursive_variant_, std::__1::less<std::__1::basic_string<char> >,
std::__1::allocator<std::__1::pair<const std::__1::basic_string<char>,
      boost::recursive_variant_> > >, boost::detail::variant::void_,
boost::detail::variant::void_, boost::detail::variant::void_,
      boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_,
      boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_,
      boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_>
      > > >::__value_type, void *>
>::construct<std::__1::map<std::__1::basic_string<char>,
boost::variant<boost::detail::variant::recursive_flag<int>,
      std::__1::map<std::__1::basic_string<char>, boost::recursive_variant_,
std::__1::less<std::__1::basic_string<char> >,
      std::__1::allocator<std::__1::pair<const std::__1::basic_string<char>,
boost::recursive_variant_> > >, boost::detail::variant::void_,
      boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_,
      boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_,
      boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_,
      boost::detail::variant::void_, boost::detail::variant::void_>,
std::__1::less<std::__1::basic_string<char> >,
std::__1::allocator<std::__1::pair<const
      std::__1::basic_string<char>,
boost::variant<boost::detail::variant::recursive_flag<int>,
std::__1::map<std::__1::basic_string<char>,
      boost::recursive_variant_, std::__1::less<std::__1::basic_string<char> >,
std::__1::allocator<std::__1::pair<const std::__1::basic_string<char>,
      boost::recursive_variant_> > >, boost::detail::variant::void_,
boost::detail::variant::void_, boost::detail::variant::void_,
      boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_,
      boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_,
      boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_>
      > > >::__value_type, const std::__1::map<std::__1::basic_string<char>,
boost::variant<boost::detail::variant::recursive_flag<int>,
      std::__1::map<std::__1::basic_string<char>, boost::recursive_variant_,
std::__1::less<std::__1::basic_string<char> >,
      std::__1::allocator<std::__1::pair<const std::__1::basic_string<char>,
boost::recursive_variant_> > >, boost::detail::variant::void_,
      boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_,
      boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_,
      boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_,
      boost::detail::variant::void_, boost::detail::variant::void_>,
std::__1::less<std::__1::basic_string<char> >,
std::__1::allocator<std::__1::pair<const
      std::__1::basic_string<char>,
boost::variant<boost::detail::variant::recursive_flag<int>,
std::__1::map<std::__1::basic_string<char>,
      boost::recursive_variant_, std::__1::less<std::__1::basic_string<char> >,
std::__1::allocator<std::__1::pair<const std::__1::basic_string<char>,
      boost::recursive_variant_> > >, boost::detail::variant::void_,
boost::detail::variant::void_, boost::detail::variant::void_,
      boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_,
      boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_,
      boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_>
      > > >::__value_type &>' requested here
            {__a.construct(__p, _VSTD::forward<_Args>(__args)...);}
                 ^
/opt/bin/../lib/c++/v1/memory:1449:14: note: in instantiation of function
template specialization
     
'std::__1::allocator_traits<std::__1::allocator<std::__1::__tree_node<std::__1::map<std::__1::basic_string<char>,
      boost::variant<boost::detail::variant::recursive_flag<int>,
std::__1::map<std::__1::basic_string<char>, boost::recursive_variant_,
      std::__1::less<std::__1::basic_string<char> >,
std::__1::allocator<std::__1::pair<const std::__1::basic_string<char>,
boost::recursive_variant_> > >,
      boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_,
      boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_,
      boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_,
      boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_>, std::__1::less<std::__1::basic_string<char> >,
      std::__1::allocator<std::__1::pair<const std::__1::basic_string<char>,
boost::variant<boost::detail::variant::recursive_flag<int>,
      std::__1::map<std::__1::basic_string<char>, boost::recursive_variant_,
std::__1::less<std::__1::basic_string<char> >,
      std::__1::allocator<std::__1::pair<const std::__1::basic_string<char>,
boost::recursive_variant_> > >, boost::detail::variant::void_,
      boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_,
      boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_,
      boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_,
      boost::detail::variant::void_, boost::detail::variant::void_> > >
>::__value_type, void *> >
>::__construct<std::__1::map<std::__1::basic_string<char>,
      boost::variant<boost::detail::variant::recursive_flag<int>,
std::__1::map<std::__1::basic_string<char>, boost::recursive_variant_,
      std::__1::less<std::__1::basic_string<char> >,
std::__1::allocator<std::__1::pair<const std::__1::basic_string<char>,
boost::recursive_variant_> > >,
      boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_,
      boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_,
      boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_,
      boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_>, std::__1::less<std::__1::basic_string<char> >,
      std::__1::allocator<std::__1::pair<const std::__1::basic_string<char>,
boost::variant<boost::detail::variant::recursive_flag<int>,
      std::__1::map<std::__1::basic_string<char>, boost::recursive_variant_,
std::__1::less<std::__1::basic_string<char> >,
      std::__1::allocator<std::__1::pair<const std::__1::basic_string<char>,
boost::recursive_variant_> > >, boost::detail::variant::void_,
      boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_,
      boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_,
      boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_,
      boost::detail::variant::void_, boost::detail::variant::void_> > >
>::__value_type, const std::__1::map<std::__1::basic_string<char>,
      boost::variant<boost::detail::variant::recursive_flag<int>,
std::__1::map<std::__1::basic_string<char>, boost::recursive_variant_,
      std::__1::less<std::__1::basic_string<char> >,
std::__1::allocator<std::__1::pair<const std::__1::basic_string<char>,
boost::recursive_variant_> > >,
      boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_,
      boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_,
      boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_,
      boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_>, std::__1::less<std::__1::basic_string<char> >,
      std::__1::allocator<std::__1::pair<const std::__1::basic_string<char>,
boost::variant<boost::detail::variant::recursive_flag<int>,
      std::__1::map<std::__1::basic_string<char>, boost::recursive_variant_,
std::__1::less<std::__1::basic_string<char> >,
      std::__1::allocator<std::__1::pair<const std::__1::basic_string<char>,
boost::recursive_variant_> > >, boost::detail::variant::void_,
      boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_,
      boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_,
      boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_,
      boost::detail::variant::void_, boost::detail::variant::void_> > >
>::__value_type &>' requested here
            {__construct(__has_construct<allocator_type, pointer, _Args...>(),
             ^
/opt/bin/../lib/c++/v1/__tree:1731:20: note: (skipping 11 contexts in
backtrace; use -ftemplate-backtrace-limit=0 to see all)
    __node_traits::construct(__na, _VSTD::addressof(__h->__value_),
_VSTD::forward<_Args>(__args)...);
                   ^
/usr/local/include/boost/variant/variant.hpp:2321:33: note: in instantiation of
function template specialization
      'boost::detail::variant::visitation_impl<mpl_::int_<0>,
boost::detail::variant::visitation_impl_step<boost::mpl::l_iter<boost::mpl::l_item<mpl_::long_<2>,
      int, boost::mpl::l_item<mpl_::long_<1>,
boost::recursive_wrapper<std::__1::map<std::__1::basic_string<char>,
      boost::variant<boost::detail::variant::recursive_flag<int>,
std::__1::map<std::__1::basic_string<char>, boost::recursive_variant_,
      std::__1::less<std::__1::basic_string<char> >,
std::__1::allocator<std::__1::pair<const std::__1::basic_string<char>,
boost::recursive_variant_> > >,
      boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_,
      boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_,
      boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_,
      boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_>, std::__1::less<std::__1::basic_string<char> >,
      std::__1::allocator<std::__1::pair<const std::__1::basic_string<char>,
boost::variant<boost::detail::variant::recursive_flag<int>,
      std::__1::map<std::__1::basic_string<char>, boost::recursive_variant_,
std::__1::less<std::__1::basic_string<char> >,
      std::__1::allocator<std::__1::pair<const std::__1::basic_string<char>,
boost::recursive_variant_> > >, boost::detail::variant::void_,
      boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_,
      boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_,
      boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_,
      boost::detail::variant::void_, boost::detail::variant::void_> > > > >,
boost::mpl::l_end> > >, boost::mpl::l_iter<boost::mpl::l_end> >,
      boost::detail::variant::assign_storage, void *,
boost::variant<boost::detail::variant::recursive_flag<int>,
std::__1::map<std::__1::basic_string<char>,
      boost::recursive_variant_, std::__1::less<std::__1::basic_string<char> >,
std::__1::allocator<std::__1::pair<const std::__1::basic_string<char>,
      boost::recursive_variant_> > >, boost::detail::variant::void_,
boost::detail::variant::void_, boost::detail::variant::void_,
      boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_,
      boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_,
      boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_, boost::detail::variant::void_,
      boost::detail::variant::void_>::has_fallback_type_>' requested here
        return detail::variant::visitation_impl(
                                ^
/usr/local/include/boost/variant/variant.hpp:2335:16: note: in instantiation of
function template specialization
      'boost::variant<boost::detail::variant::recursive_flag<int>,
std::__1::map<std::__1::basic_string<char>, boost::recursive_variant_,
      std::__1::less<std::__1::basic_string<char> >,
std::__1::allocator<std::__1::pair<const std::__1::basic_string<char>,
boost::recursive_variant_> > >,
      boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_,
      boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_,
      boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_,
      boost::detail::variant::void_, boost::detail::variant::void_,
     
boost::detail::variant::void_>::internal_apply_visitor_impl<boost::detail::variant::assign_storage,
void *>' requested here
        return internal_apply_visitor_impl(
               ^
/usr/local/include/boost/variant/variant.hpp:2085:19: note: in instantiation of
function template specialization
      'boost::variant<boost::detail::variant::recursive_flag<int>,
std::__1::map<std::__1::basic_string<char>, boost::recursive_variant_,
      std::__1::less<std::__1::basic_string<char> >,
std::__1::allocator<std::__1::pair<const std::__1::basic_string<char>,
boost::recursive_variant_> > >,
      boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_,
      boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_,
      boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_,
      boost::detail::variant::void_, boost::detail::variant::void_,
     
boost::detail::variant::void_>::internal_apply_visitor<boost::detail::variant::assign_storage>'
requested here
            this->internal_apply_visitor(visitor);
                  ^
/usr/local/include/boost/variant/variant.hpp:2175:9: note: in instantiation of
member function 'boost::variant<boost::detail::variant::recursive_flag<int>,
      std::__1::map<std::__1::basic_string<char>, boost::recursive_variant_,
std::__1::less<std::__1::basic_string<char> >,
      std::__1::allocator<std::__1::pair<const std::__1::basic_string<char>,
boost::recursive_variant_> > >, boost::detail::variant::void_,
      boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_,
      boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_,
      boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_,
      boost::detail::variant::void_,
boost::detail::variant::void_>::variant_assign' requested here
        variant_assign(rhs);
        ^
1.cpp:13:8: note: in instantiation of member function
'boost::variant<boost::detail::variant::recursive_flag<int>,
std::__1::map<std::__1::basic_string<char>,
      boost::recursive_variant_, std::__1::less<std::__1::basic_string<char> >,
std::__1::allocator<std::__1::pair<const std::__1::basic_string<char>,
      boost::recursive_variant_> > >, boost::detail::variant::void_,
boost::detail::variant::void_, boost::detail::variant::void_,
      boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_,
      boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_,
      boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_, boost::detail::variant::void_,
      boost::detail::variant::void_>::operator=' requested here
        d[24] = bit->second;
              ^
/usr/local/include/boost/variant/variant.hpp:1563:71: note: candidate function
[with T = const boost::variant<boost::detail::variant::recursive_flag<int>,
      std::__1::map<std::__1::basic_string<char>, boost::recursive_variant_,
std::__1::less<std::__1::basic_string<char> >,
      std::__1::allocator<std::__1::pair<const std::__1::basic_string<char>,
boost::recursive_variant_> > >, boost::detail::variant::void_,
      boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_,
      boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_,
      boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_,
      boost::detail::variant::void_, boost::detail::variant::void_>]
    typename boost::enable_if<boost::is_rvalue_reference<T&&> >::type
convert_construct(
                                                                      ^
/usr/local/include/boost/variant/variant.hpp:1677:10: note: candidate function
[with U0 = boost::detail::variant::recursive_flag<int>, U1 =
      std::__1::map<std::__1::basic_string<char>, boost::recursive_variant_,
std::__1::less<std::__1::basic_string<char> >,
      std::__1::allocator<std::__1::pair<const std::__1::basic_string<char>,
boost::recursive_variant_> > >, U2 = boost::detail::variant::void_, U3 =
      boost::detail::variant::void_, U4 = boost::detail::variant::void_, U5 =
boost::detail::variant::void_, U6 = boost::detail::variant::void_, U7 =
      boost::detail::variant::void_, U8 = boost::detail::variant::void_, U9 =
boost::detail::variant::void_, U10 = boost::detail::variant::void_, U11 =
      boost::detail::variant::void_, U12 = boost::detail::variant::void_, U13 =
boost::detail::variant::void_, U14 = boost::detail::variant::void_, U15 =
      boost::detail::variant::void_, U16 = boost::detail::variant::void_, U17 =
boost::detail::variant::void_, U18 = boost::detail::variant::void_, U19 =
      boost::detail::variant::void_]
    void convert_construct(
         ^
/usr/local/include/boost/variant/variant.hpp:1542:10: note: candidate function
[with T = const boost::variant<boost::detail::variant::recursive_flag<int>,
      std::__1::map<std::__1::basic_string<char>, boost::recursive_variant_,
std::__1::less<std::__1::basic_string<char> >,
      std::__1::allocator<std::__1::pair<const std::__1::basic_string<char>,
boost::recursive_variant_> > >, boost::detail::variant::void_,
      boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_,
      boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_,
      boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_, boost::detail::variant::void_,
boost::detail::variant::void_,
      boost::detail::variant::void_, boost::detail::variant::void_>]
    void convert_construct(
         ^
/usr/local/include/boost/variant/variant.hpp:1668:10: note: candidate template
ignored: substitution failure [with U0 =
      boost::detail::variant::recursive_flag<int>, U1 =
std::__1::map<std::__1::basic_string<char>, boost::recursive_variant_,
      std::__1::less<std::__1::basic_string<char> >,
std::__1::allocator<std::__1::pair<const std::__1::basic_string<char>,
boost::recursive_variant_> > >, U2 =
      boost::detail::variant::void_, U3 = boost::detail::variant::void_, U4 =
boost::detail::variant::void_, U5 = boost::detail::variant::void_, U6 =
      boost::detail::variant::void_, U7 = boost::detail::variant::void_, U8 =
boost::detail::variant::void_, U9 = boost::detail::variant::void_, U10 =
      boost::detail::variant::void_, U11 = boost::detail::variant::void_, U12 =
boost::detail::variant::void_, U13 = boost::detail::variant::void_, U14 =
      boost::detail::variant::void_, U15 = boost::detail::variant::void_, U16 =
boost::detail::variant::void_, U17 = boost::detail::variant::void_, U18 =
      boost::detail::variant::void_, U19 = boost::detail::variant::void_]
    void convert_construct(
         ^
/usr/local/include/boost/variant/variant.hpp:1687:10: note: candidate template
ignored: substitution failure [with U0 =
      boost::detail::variant::recursive_flag<int>, U1 =
std::__1::map<std::__1::basic_string<char>, boost::recursive_variant_,
      std::__1::less<std::__1::basic_string<char> >,
std::__1::allocator<std::__1::pair<const std::__1::basic_string<char>,
boost::recursive_variant_> > >, U2 =
      boost::detail::variant::void_, U3 = boost::detail::variant::void_, U4 =
boost::detail::variant::void_, U5 = boost::detail::variant::void_, U6 =
      boost::detail::variant::void_, U7 = boost::detail::variant::void_, U8 =
boost::detail::variant::void_, U9 = boost::detail::variant::void_, U10 =
      boost::detail::variant::void_, U11 = boost::detail::variant::void_, U12 =
boost::detail::variant::void_, U13 = boost::detail::variant::void_, U14 =
      boost::detail::variant::void_, U15 = boost::detail::variant::void_, U16 =
boost::detail::variant::void_, U17 = boost::detail::variant::void_, U18 =
      boost::detail::variant::void_, U19 = boost::detail::variant::void_]
    void convert_construct(
         ^
/usr/local/include/boost/variant/variant.hpp:1584:10: note: candidate function
template not viable: requires 3 arguments, but 2 were provided
    void convert_construct(
         ^
/usr/local/include/boost/variant/variant.hpp:1598:77: note: candidate function
template not viable: requires 3 arguments, but 2 were provided
    typename boost::enable_if<boost::is_rvalue_reference<Variant&&> >::type
convert_construct(
                                                                            ^
1 error generated.

------------------------------------------------------

My clang version is:

clang version 3.4 (trunk 188979)
Target: x86_64-apple-darwin12.4.0
Thread model: posix

-- 
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-bugs/attachments/20130822/5ab5d7f0/attachment.html>


More information about the llvm-bugs mailing list