|
Boost : |
From: Roland Schwarz (roland.schwarz_at_[hidden])
Date: 2006-04-09 06:06:04
Tobias Schwinger wrote:
> Where is the problem?
[snip]
>
> #include PLATFORM_HEADER(foo.h)
>
> Should work. I've no idea how portable it is, though.
>
This exactly is the problem. This works with MS compilers, but not with
gcc. It complains with: #include' expects "FILENAME" or <FILENAME>"
However the following does work with gcc:
#define PLATFORM_PFX <boost/whatever/windows/
#define PLATFORM_HDR foo.hpp
#define PLATFORM_SFX >
#include PLATFORM_PFX PLATFORM_HDR PLATFORM_SFX
Unfortunately this wont work on MS compilers.
My question was if it would be possible to get something that is
compileable on a couple of platforms. I am aware that macro expansion
after precompiler prefix seems to be implementation dependent. I am not
even sure if the standard has to say anything about this.
At least gcc seems not to conform to what is said in this (rather dated)
document:
http://www.lns.cornell.edu/public/COMP/info/egcs/cpp/cpp_1.html#SEC6
Roland
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk