Boost logo

Boost :

From: (noreply_at_[hidden])
Date: 2007-04-18 05:59:38

Bugs item #1702803, was opened at 2007-04-18 12:59
Message generated for change (Tracker Item Submitted) made by Item Submitter
You can respond by visiting:

Please note that this message will contain a full copy of the comment thread,
including the initial issue submission, for this request,
not just the latest update.
Category: None
Group: None
Status: Open
Resolution: None
Priority: 5
Private: No
Submitted By: Efi Fogel (efifogel)
Assigned to: Nobody/Anonymous (nobody)
Summary: Erroneous boost qualification in a global function call

Initial Comment:
I believe that I've encountered a bug in the BGL. I'm using version 103200, but I think it hasn't been reported/fixed yet.

File boost/graph/detail/array_binary_tree.hpp, Lines 157 and 158 contain the following statements:

     edata[ boost::get(id, tmp) ] = i;
     edata[ boost::get(id, value()) ] = x.i;

I think that the qualification should be removed.

The first parameter 'id' in both calls is of type 'ID', which is a template parameter. It could be instantiated with a type defined in a different namespace, say CGAL. The global 'get()' function, which accept the CGAL id
parameter is also defined in CGAL namespace. It must, because other calls to the get() function do not have the qualification, and according to ADL (Koenig Lookup), the function is searched in CGAL namespace. As a consequence the compiler (g++ >= 4.1.0) complains that there is no match, and reports an error.



You can respond by visiting:

This email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
Boost-bugs mailing list

Boost list run by bdawes at, gregod at, cpdaniel at, john at