Boost logo

Boost Users :

Subject: Re: [Boost-users] [Preprocessor] Relative Addresses in BOOST_PP_FILENAME_1
From: Edward Diener (eldiener_at_[hidden])
Date: 2011-01-24 15:43:47


On 1/24/2011 1:49 PM, Hossein Haeri wrote:
> Dear TONGARI,
>
>> Where I said<> I meant<something in compiler's include path>, that
>> works fine, just as Edward and Steven said.
>
> Well, my working directory is already in my compiler's include path. And, inside Header.hpp, the following line
>
> #define BOOST_PP_FILENAME1<Header.hpp>

This should be:

#define BOOST_PP_FILENAME_1 <header.hpp>

>
> fails to compiler in GCC 4.5.1 because GCC says it can't find Header.hpp. And, I am missing anything here? Maybe it's better that you tell me what you'd be writing instead of the line above if it would have been you...

So you are saying that if in your own files you have:

#include <header.hpp>

that gcc 4.5.1 finds it but if you have:

#define BOOST_PP_FILENAME_1 <header.hpp>

that gcc 4.5.1 does not find it ?

That really is odd.

>
>> If this is not a bug with a specific compiler, I hope at least it should
>> be noted in Boost.PP's doc.
>
> It's not. Both quote and angle brackets are mentioned to work in the specs:
>
> http://www.boost.org/doc/libs/1_45_0/libs/preprocessor/doc/ref/filename_x.html

I agree it should be noted in the Boost PP docs that quote brackets may
fail.

But it is not that the quote brackets always do not work since the rules
for how a compiler searches for header files within quote brackets is
compiler dependent. As noted VC++ works with quoted brackets because its
search rules are much more extended than gcc.


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