Hi Edward,
It is because BOOST_PP_FILENAME_1 expands in a Boost PP header file. In GCC a relative file name is relative only to the file in which it is included. Since it is a Boost PP header file that does the including, your relative header file will not be found.
In VC++ on Windows relative header files are relative to an entire chain of header files being included to that point from the source file on down, so a relative header file as you have above would be found.
Well, isn't this addressable in Boost PP? I mean, can Boost PP just not make its expansion compatible with this cross-compiler issue?
I ran into this same problem also and ended up just using a non-relative name of the form
for all compilers as the easiest solution.
But, this requires my clients to copy my stuff under their local Boost directory, right? TIA, --Hossein