In file included from test_adl.cc:1: /usr/lib/gcc/x86_64-redhat-linux/4.7.2/../../../../include/c++/4.7.2/tuple:362:25: error: call to 'swap' is ambiguous noexcept(noexcept(swap(std::declval<_Head&>(), ^~~~ /usr/lib/gcc/x86_64-redhat-linux/4.7.2/../../../../include/c++/4.7.2/tuple:492:25: note: in instantiation of exception specification for '_M_swap' requested here noexcept(noexcept(__in._M_swap(__in))) ^ test_adl.cc:12:5: note: in instantiation of exception specification for 'swap' requested here x.swap(y); ^ /usr/lib/gcc/x86_64-redhat-linux/4.7.2/../../../../include/c++/4.7.2/bits/move.h:167:5: note: candidate function [with _Tp = boost::icl::interval_set, std::allocator>] swap(_Tp& __a, _Tp& __b) ^ /usr/include/boost/icl/concept/container.hpp:62:1: note: candidate function [with Type = boost::icl::interval_set, std::allocator>] swap(Type& left, Type& right) ^ In file included from test_adl.cc:1: /usr/lib/gcc/x86_64-redhat-linux/4.7.2/../../../../include/c++/4.7.2/tuple:367:2: error: call to 'swap' is ambiguous swap(_M_head(*this), _M_head(__in)); ^~~~ /usr/lib/gcc/x86_64-redhat-linux/4.7.2/../../../../include/c++/4.7.2/tuple:493:21: note: in instantiation of member function 'std::_Tuple_impl<0, boost::icl::interval_set, std::allocator> >::_M_swap' requested here { _Inherited::_M_swap(__in); } ^ test_adl.cc:12:5: note: in instantiation of member function 'std::tuple, std::allocator> >::swap' requested here x.swap(y); ^ /usr/lib/gcc/x86_64-redhat-linux/4.7.2/../../../../include/c++/4.7.2/bits/move.h:167:5: note: candidate function [with _Tp = boost::icl::interval_set, std::allocator>] swap(_Tp& __a, _Tp& __b) ^ /usr/include/boost/icl/concept/container.hpp:62:1: note: candidate function [with Type = boost::icl::interval_set, std::allocator>] swap(Type& left, Type& right) ^ 2 errors generated.