Opened 19 years ago

Last modified 10 years ago

#231 reopened Bugs

Graph Header Clashes With Format Header

Reported by: schmoo2k Owned by: jsiek
Milestone: Component: graph
Version: None Severity: Problem
Keywords: Cc:

Description (last modified by Jeremiah Willcock)

The following code produces many errors in MSVC71


#include <boost/format.hpp> 
#include <boost/graph/adjacency_list.hpp>

int _tmain(int argc, _TCHAR* argv[])
{
	std::string s = (boost::format("%1% %2% %
3%") % "a" % "b" % "c").str();
	return 0;
}


Change History (9)

comment:1 by samuel_k, 19 years ago

Logged In: YES 
user_id=545049

Is this about the 1.31.0 released libraries, or CVS head ?

CVS head's boost::format fails compilation on msvc7.1 on its
own at the moment.

comment:2 by nobody, 19 years ago

Logged In: NO 

This refers to the 1_31_0 release.
If you remove the graph header above all is ok...

comment:3 by jsiek, 19 years ago

Logged In: YES 
user_id=32836

I don't have access to msvc7.1, but if somone can provide a
patch/fix
I'll be happy to apply it.

comment:4 by monecke, 19 years ago

Logged In: YES 
user_id=199710

I have the same problem with 1.31.0 ans also msvc7.1 

comment:5 by Douglas Gregor, 18 years ago

Status: assignedclosed

comment:6 by nobody, 18 years ago

Logged In: NO 

I saw that <boost/graph/adjacency_list.hpp> defines a put
function in namespace boost.

format.hpp defines, and uses, a template function with same
name in 
boost::io::detail

Could that be the couse of problem ? MSVC7.1 has trouble
with namespaces ?

btw error logs could help.

comment:7 by johnw@…, 10 years ago

Resolution: Fixed
Severity: Problem
Status: closedreopened

This collision of Boost.Graph's put() and Boost.Format's put() is still occurring in 1.49.0.

comment:8 by anonymous, 10 years ago

One thing to note is that I only the collision when using g++-4.7, not with Clang 3.0 or 3.1.

comment:9 by Jeremiah Willcock, 10 years ago

Description: modified (diff)

I tested that code (with _tmain changed to main and _TCHAR to char) and it worked just fine for me on GCC 4.7.0 on Linux. Do you have a different test program that shows the problem?

Note: See TracTickets for help on using tickets.