Opened 19 years ago

Closed 17 years ago

#232 closed Bugs (Wont Fix)

Compiling problems with Regex / MSVC++ 7

Reported by: johneddy Owned by: John Maddock
Milestone: Component: regex
Version: None Severity:
Keywords: Cc:

Description

hello 
VC++ will not compile the following code with the
newest version of the regex library whereas it would
with the previous version (g++ 3.2.2 does not have a
problem with it).

#include <locale>
using namespace std;
#include <boost/regex.hpp>

int main (int argc, char **argv) { return 0; }

The error produced is:

regbase.hpp(120) : error C2955: 'std::collate' : use of
class template requires template argument list

The offending line of code is inside an enumeration
declaration and looks like this:

collate = ::boost::regbase::collate,

It seems that VC++ cannot resolve the difference
between the enumeration constant and the STL collate
class.  The same error can be produced with the
following code (or anything like it).

#include <vector>
using namespace std;
enum SomeEnum {  vector = 0  };

int main (int argc, char **argv) { return 0; }

I cannot think of a good way around this short of
changing the collate constant name and re-building. 
The examples are boiled down and it would not be
possible for me to change the order of the includes nor
would it be easy  remove the using delcaration.

John

Change History (4)

comment:1 by johneddy, 19 years ago

Summary: Compiling problems with MSVC++ 7Compiling problems with Regex / MSVC++ 7

comment:2 by John Maddock, 19 years ago

Logged In: YES 
user_id=14804

I can't rename that constant: we've agreed the use of that 
name with the C++ committee as part of the regex 
standardisation proposal.  You can get your code to compile 
either by:
1) switching to a conforming compiler (both gcc and VC.NET 
2003 handle the code correctly).
2) moving the using namespace std; clause to after the 
include of the regex header.

I realise that neither of these may be attractive options for 
an existing project, and I've tried to find a workaround, but 
so far to no avail.

John.

comment:3 by ramanand, 18 years ago

Logged In: YES 
user_id=1243119

Hello John Maddock,

I am working with MSVStudio .NET 2000 and therefore I tried
using option 2 in the solution you propose. But that does not
seem to help either. Any thoughts...

Cheers

Ramanand

comment:4 by John Maddock, 17 years ago

Status: assignedclosed
Logged In: YES 
user_id=14804

I'm closing this issue, as it appears to be unfixable (and
relates to an obsolete compiler).

John Maddock
Note: See TracTickets for help on using tickets.