[graph] ambiguity for 'tie' VC10

Hello, For Windows7 VC10 64 bit, boost_1_43_0 the following code produces an error message #include <tuple> #include <boost/graph/adjacency_list.hpp> typedef boost::adjacency_list< boost::vecS, boost::vecS, boost::undirectedS > G; int main() { G g1; G g2(g1); return 0; } C:\boost\boost_1_43_0\boost/graph/detail/adjacency_list.hpp(2157) : error C2668: 'boost::tuples::tie' : ambiguous call to overloaded function C:\boost\boost_1_43_0\boost/tuple/detail/tuple_basic.hpp(889): could be 'boost::tuples::tuple<T0,T1,T2,T3,T4,T5,T6,T7,T8,T9> boost::tuples::tie<boost::detail::undirected_edge_iter<EdgeIter,EdgeDescriptor,Difference>,boost::detail::undirected_edge_iter<EdgeIter,EdgeDescriptor,Difference>>(boost::detail::undirected_edge_iter<EdgeIter,EdgeDescriptor,Difference> &,boost::detail::undirected_edge_iter<EdgeIter,EdgeDescriptor,Difference> &)' .... OR C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\INCLUDE\xxtuple1(34): or 'std::tr1::tuple<_Arg0,_Arg1,_Arg2,_Arg3,_Arg4,_Arg5,_Arg6,_Arg7,_Arg8,_Arg9> std::tr1::tie<boost::detail::undirected_edge_iter<EdgeIter,EdgeDescriptor,Difference>,boost::detail::undirected_edge_iter<EdgeIter,EdgeDescriptor,Difference>>(boost::detail::undirected_edge_iter<EdgeIter,EdgeDescriptor,Difference> &,boost::detail::undirected_edge_iter<EdgeIter,EdgeDescriptor,Difference> &)' [found using argument-dependent lookup] Best regards, andreas fabri

On Fri, 18 Jun 2010, Andreas Fabri wrote:
Hello,
For
Windows7 VC10 64 bit, boost_1_43_0
the following code produces an error message
#include <tuple> #include <boost/graph/adjacency_list.hpp>
typedef boost::adjacency_list< boost::vecS, boost::vecS, boost::undirectedS > G;
int main() { G g1; G g2(g1);
return 0; }
C:\boost\boost_1_43_0\boost/graph/detail/adjacency_list.hpp(2157) : error C2668: 'boost::tuples::tie' : ambiguous call to overloaded function C:\boost\boost_1_43_0\boost/tuple/detail/tuple_basic.hpp(889): could be 'boost::tuples::tuple<T0,T1,T2,T3,T4,T5,T6,T7,T8,T9> boost::tuples::tie<boost::detail::undirected_edge_iter<EdgeIter,EdgeDescriptor,Difference>,boost::detail::undirected_edge_iter<EdgeIter,EdgeDescriptor,Difference>>(boost::detail::undirected_edge_iter<EdgeIter,EdgeDescriptor,Difference> &,boost::detail::undirected_edge_iter<EdgeIter,EdgeDescriptor,Difference> &)'
....
OR
C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\INCLUDE\xxtuple1(34): or 'std::tr1::tuple<_Arg0,_Arg1,_Arg2,_Arg3,_Arg4,_Arg5,_Arg6,_Arg7,_Arg8,_Arg9> std::tr1::tie<boost::detail::undirected_edge_iter<EdgeIter,EdgeDescriptor,Difference>,boost::detail::undirected_edge_iter<EdgeIter,EdgeDescriptor,Difference>>(boost::detail::undirected_edge_iter<EdgeIter,EdgeDescriptor,Difference> &,boost::detail::undirected_edge_iter<EdgeIter,EdgeDescriptor,Difference> &)' [found using argument-dependent lookup]
I believe I fixed this now in r63085 (on Boost trunk); please see if that version removes these errors. -- Jeremiah Willcock

Hi Jeremiah, yes, this fixes the problem. Note that I encounter the same problem with breadth_first_search.hpp My guess would be that it should be the same for many other header files of the graph package. Best regards, Andreas Fabri On 18/06/2010 22:31, Jeremiah Willcock wrote:
On Fri, 18 Jun 2010, Andreas Fabri wrote:
Hello,
For
Windows7 VC10 64 bit, boost_1_43_0
the following code produces an error message
#include <tuple> #include <boost/graph/adjacency_list.hpp>
typedef boost::adjacency_list< boost::vecS, boost::vecS, boost::undirectedS > G;
int main() { G g1; G g2(g1);
return 0; }
C:\boost\boost_1_43_0\boost/graph/detail/adjacency_list.hpp(2157) : error C2668: 'boost::tuples::tie' : ambiguous call to overloaded function C:\boost\boost_1_43_0\boost/tuple/detail/tuple_basic.hpp(889): could be 'boost::tuples::tuple<T0,T1,T2,T3,T4,T5,T6,T7,T8,T9> boost::tuples::tie<boost::detail::undirected_edge_iter<EdgeIter,EdgeDescriptor,Difference>,boost::detail::undirected_edge_iter<EdgeIter,EdgeDescriptor,Difference>>(boost::detail::undirected_edge_iter<EdgeIter,EdgeDescriptor,Difference> &,boost::detail::undirected_edge_iter<EdgeIter,EdgeDescriptor,Difference> &)'
....
OR
C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\INCLUDE\xxtuple1(34): or 'std::tr1::tuple<_Arg0,_Arg1,_Arg2,_Arg3,_Arg4,_Arg5,_Arg6,_Arg7,_Arg8,_Arg9> std::tr1::tie<boost::detail::undirected_edge_iter<EdgeIter,EdgeDescriptor,Difference>,boost::detail::undirected_edge_iter<EdgeIter,EdgeDescriptor,Difference>>(boost::detail::undirected_edge_iter<EdgeIter,EdgeDescriptor,Difference> &,boost::detail::undirected_edge_iter<EdgeIter,EdgeDescriptor,Difference> &)' [found using argument-dependent lookup]
I believe I fixed this now in r63085 (on Boost trunk); please see if that version removes these errors.
-- Jeremiah Willcock _______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost

On Mon, 21 Jun 2010, Andreas Fabri wrote:
Hi Jeremiah,
yes, this fixes the problem. Note that I encounter the same problem with breadth_first_search.hpp
My guess would be that it should be the same for many other header files of the graph package.
I got breadth_first_search.hpp now; please report any other of these problems that you catch. -- Jeremiah Willcock

Hi Jeremiah, I guess in the boost graph testsuite you might try to include ANY boost file together with <tuple>. best regards, andreas On 22/06/2010 16:40, Jeremiah Willcock wrote:
On Mon, 21 Jun 2010, Andreas Fabri wrote:
Hi Jeremiah,
yes, this fixes the problem. Note that I encounter the same problem with breadth_first_search.hpp
My guess would be that it should be the same for many other header files of the graph package.
I got breadth_first_search.hpp now; please report any other of these problems that you catch.
-- Jeremiah Willcock _______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost

On Tue, 22 Jun 2010, Andreas Fabri wrote:
Hi Jeremiah,
I guess in the boost graph testsuite you might try to include ANY boost file together with <tuple>.
I don't have an easy way to test this (a copy of Boost set up with GCC 4.5); r63244 fixes all of the bad uses of tie that I could find. Please see if any of your issues go away in that version. -- Jeremiah Willcock

Hi Jeremiah, Here comes the next one C:\CGAL\boost_1_43_0\stage64\include\boost/graph/filtered_graph.hpp(352) : error C2668: 'std::tr1::tie' : ambiguous call to overloaded function C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\INCLUDE\xxtuple1(34): could be 'std::tr1::tuple<_Arg0,_Arg1,_Arg2,_Arg3,_Arg4,_Arg5,_Arg6,_Arg7,_Arg8,_Arg9> std::tr1::tie<CGAL::Counting_iterator<I,Val>,CGAL::Counting_iterator<I,Val>>(CGAL::Counting_iterator<I,Val> &,CGAL::Counting_iterator<I,Val> &)' [found using argument-dependent lookup] OR: C:\CGAL\boost_1_43_0\stage64\include\boost/tuple/detail/tuple_basic.hpp(889): or 'boost::tuples::tuple<T0,T1,T2,T3,T4,T5,T6,T7,T8,T9> boost::tuples::tie<CGAL::Counting_iterator<I,Val>,CGAL::Counting_iterator<I,Val>>(CGAL::Counting_iterator<I,Val> &,CGAL::Counting_iterator<I,Val> &)' As I am not a boost developer I don't know how you test, but the easiest thing would be to add #ifdef BOOST_TESTSUITE #ifdef VISUAL 10 #include <tuple> #endif #endif in a boost config file. Then you should experience a regression in your testsuite. Best regards, Andreas On 22/06/2010 20:04, Jeremiah Willcock wrote:
On Tue, 22 Jun 2010, Andreas Fabri wrote:
Hi Jeremiah,
I guess in the boost graph testsuite you might try to include ANY boost file together with <tuple>.
I don't have an easy way to test this (a copy of Boost set up with GCC 4.5); r63244 fixes all of the bad uses of tie that I could find. Please see if any of your issues go away in that version.
-- Jeremiah Willcock _______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost

and the same for breadth_first_search.hpp andreas On 25/06/2010 09:45, Andreas Fabri wrote:
Hi Jeremiah,
Here comes the next one
C:\CGAL\boost_1_43_0\stage64\include\boost/graph/filtered_graph.hpp(352) : error C2668: 'std::tr1::tie' : ambiguous call to overloaded function
C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\INCLUDE\xxtuple1(34): could be 'std::tr1::tuple<_Arg0,_Arg1,_Arg2,_Arg3,_Arg4,_Arg5,_Arg6,_Arg7,_Arg8,_Arg9> std::tr1::tie<CGAL::Counting_iterator<I,Val>,CGAL::Counting_iterator<I,Val>>(CGAL::Counting_iterator<I,Val> &,CGAL::Counting_iterator<I,Val> &)' [found using argument-dependent lookup]
OR:
C:\CGAL\boost_1_43_0\stage64\include\boost/tuple/detail/tuple_basic.hpp(889): or 'boost::tuples::tuple<T0,T1,T2,T3,T4,T5,T6,T7,T8,T9> boost::tuples::tie<CGAL::Counting_iterator<I,Val>,CGAL::Counting_iterator<I,Val>>(CGAL::Counting_iterator<I,Val> &,CGAL::Counting_iterator<I,Val> &)'
As I am not a boost developer I don't know how you test, but the easiest thing would be to add
#ifdef BOOST_TESTSUITE #ifdef VISUAL 10 #include <tuple> #endif #endif
in a boost config file.
Then you should experience a regression in your testsuite.
Best regards,
Andreas
On 22/06/2010 20:04, Jeremiah Willcock wrote:
On Tue, 22 Jun 2010, Andreas Fabri wrote:
Hi Jeremiah,
I guess in the boost graph testsuite you might try to include ANY boost file together with <tuple>.
I don't have an easy way to test this (a copy of Boost set up with GCC 4.5); r63244 fixes all of the bad uses of tie that I could find. Please see if any of your issues go away in that version.
-- Jeremiah Willcock _______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost

On Fri, 25 Jun 2010, Andreas Fabri wrote:
and the same for breadth_first_search.hpp
Have you tried the Boost trunk again? After one of your previous messages on this topic, I went through and qualified all of the uses of tie() that I could find in BGL, including especially breadth_first_search.hpp. -- Jeremiah Willcock
participants (2)
-
Andreas Fabri
-
Jeremiah Willcock