tags:

views:

49

answers:

2

Hello,

I have the following code :

#define LIMIT_DATE \"01-03-2010\"

#ifdef LIMIT_DATE
    #if _MSC_VER
        #pragma message ("Warning : this release will expire on " LIMIT_DATE)
    #elif   __GNUC__
        #warning ("Warning : this release will expire on " LIMIT_DATE)
    #endif
#endif

The problem is that LIMIT_DATE is not evaluated when printing the warning.

I searched on Google, but didn't found yet the solution.

Thanks for help.

+1  A: 

From gcc preprocessor documentation

Neither #error nor #warning macro-expands its argument. Internal whitespace sequences are each replaced with a single space. The line must consist of complete tokens. It is wisest to make the argument of these directives be a single string constant; this avoids problems with apostrophes and the like.

So it's not possible at least in gcc.

According to MSDN this should work for MSVC althrough I don't have access to Visual Studio currently to test this

lollinus
A: 

Thanks to all !

As it seems not possible in GCC, I'll so put this code aside.

Oodini