Boost logo

Boost Users :

Subject: [Boost-users] Problem with MSVS 2008 with gregorian
From: Dan Smithers (dan_at_[hidden])
Date: 2008-11-14 10:20:31


Hi I have a problem building under studio 2008. It appears that

#define max(a,b) ...

collides with the member function greg_month::max() and won't compile
complaining that not enough arguments are provided.

I have stripped the code down

test.cpp

#include <windows.h>

//#undef max
#include "boost/date_time/gregorian/gregorian.hpp"

void foo()
{
        boost::gregorian::greg_month::max();
}

If I put #undef max before including gregorian.h then it compiles.

Without I get the errors

warning C4003: not enough actual parameters for macro 'max'
error C2589: '(' illegal token on right side of '::'
error C2143: syntax error : missing ';' before '::'

Has anyone seen this before?

Is there a workaround?

I have tried this with boost 1.37.0 and it still causes problems.

thanks

dan


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net