Hello!
I have problems to compile this code with Visual Studio 9.0 SP1 and
Boost 1.41:
-------------------------------------------------------------------
#include
#include <deque>
typedef boost::variant SemanticValue;
int main() {
SemanticValue v1;
SemanticValue v2;
v1.swap(v2);
}
-------------------------------------------------------------------
I got this error:
c:\program files\boost\boost_1_41_0\boost\variant\detail\move.hpp(155) :
error C2668: 'std::swap' : ambiguous call to overloaded function
c:\program
files\boost\boost_1_41_0\boost\variant\detail\move.hpp(141): could be
'void boost::detail::variant::detail::move_swap::swap<T>(T &,T &)'
with
[
T=T0
]
c:\program files\microsoft visual studio
9.0\vc\include\utility(16): or 'void std::swap<T>(_Ty &,_Ty &)'
[found using argument-dependent lookup]
with
[
T=T0,
_Ty=T0
]
while trying to match the argument list '(T0, T0)'
c:\program
files\boost\boost_1_41_0\boost\variant\variant.hpp(698) : see reference
to function template instantiation 'void
boost::detail::variant::move_swap<T>(T &,T &)' being compiled
with
[
T=T0
]
c:\program
files\boost\boost_1_41_0\boost\variant\variant.hpp(825) : see reference
to function template instantiation 'void
boost::detail::variant::swap_with<Variant>::operator ()<T>(T &) const'
being compiled
with
[
Variant=boost::variant>,
T=T0
]
c:\program
files\boost\boost_1_41_0\boost\variant\detail\visitation_impl.hpp(141) :
see reference to function template instantiation 'void
boost::detail::variant::invoke_visitor<Visitor>::internal_visit<T>(T
&,int)' being compiled
with
[
Visitor=boost::detail::variant::swap_with>>,
T=T0
]
c:\program
files\boost\boost_1_41_0\boost\variant\detail\visitation_impl.hpp(169) :
see reference to function template instantiation 'void
boost::detail::variant::visitation_impl_invoke_impl(int,Visitor
&,VoidPtrCV,T *,boost::mpl::false_)' being compiled
with
[
Visitor=boost::detail::variant::invoke_visitor>>>,
VoidPtrCV=void *,
T=T0
]
c:\program
files\boost\boost_1_41_0\boost\variant\detail\visitation_impl.hpp(252) :
see reference to function template instantiation 'void
boost::detail::variant::visitation_impl_invoke(int,Visitor
&,VoidPtrCV,T *,NoBackupFlag,int)' being compiled
with
[
Visitor=boost::detail::variant::invoke_visitor>>>,
VoidPtrCV=void *,
NoBackupFlag=boost::variant>::has_fallback_type_,
T=T0
]
c:\program
files\boost\boost_1_41_0\boost\variant\variant.hpp(1769) : see reference
to function template instantiation 'void
boost::detail::variant::visitation_impl::has_fallback_type_>(const
int,const int,Visitor &,VoidPtrCV,boost::mpl::false_,NoBackupFlag,Which
*,step0 *)' being compiled
with
[
Visitor=boost::detail::variant::invoke_visitor>>>,
VoidPtrCV=void *,
T0_=std::_Deque_iterator,
NoBackupFlag=boost::variant>::has_fallback_type_,
Which=first_which,
step0=first_step
]
c:\program
files\boost\boost_1_41_0\boost\variant\variant.hpp(1780) : see reference
to function template instantiation 'void
boost::variant::internal_apply_visitor_impl(int,int,Visitor
&,VoidPtrCV)' being compiled
with
[
T0_=std::_Deque_iterator,
Visitor=boost::detail::variant::invoke_visitor>>>,
VoidPtrCV=void *
]
c:\program
files\boost\boost_1_41_0\boost\variant\variant.hpp(1803) : see reference
to function template instantiation 'void
boost::variant::internal_apply_visitor(boost::detail::variant::invoke_visitor<Visitor>
&)' being compiled
with
[
T0_=std::_Deque_iterator,
Visitor=boost::detail::variant::swap_with>>
]
c:\program
files\boost\boost_1_41_0\boost\variant\variant.hpp(1637) : see reference
to function template instantiation 'void
boost::variant::apply_visitor(Visitor
&)' being compiled
with
[
T0_=std::_Deque_iterator,
Variant=boost::variant>,
Visitor=boost::detail::variant::swap_with>>
]
c:\program
files\boost\boost_1_41_0\boost\variant\variant.hpp(1631) : while
compiling class template member function 'void
boost::variant::swap(boost::variant &)'
with
[
T0_=std::_Deque_iterator
]
d:\dokumenty\visual studio
2008\projects\pokus4\pokus4\pokus4.cpp(20) : see reference to class
template instantiation 'boost::variant' being compiled
with
[
T0_=std::_Deque_iterator
]
Do you have any ideas?
Thanks.
OK