c++ - space added to num by some prepro bug?
- dan (45/45) Nov 28 2003 Fatal Error: g:\BAKNET\BAKNET.MAK(10865368): don't know how to make
- Walter (7/52) Nov 28 2003 It's a bug in the boost headers. It's relying on juxtaposition to
Fatal Error: g:\BAKNET\BAKNET.MAK(10865368): don't know how to make .\boost-1.30.2\boost\mpl\list\list10 .hpp Errors: 1 Warnings: 0 Build failed notice the space between "list10" and ".hpp" The file exists as named but without the space. Copying the file and adding the space to the name appears to solve the problem. I can't find any bug in the boost file that should be causing the anomaly, even highlighted the text in all those macros to try and catch hidden blank spaces, and nothing. Here's the relevant boost code: //from boost\mpl\list.hpp (the line where the error occurs): //from boost\preprocessor\stringize.hpp: //from boost\mpl\list.hpp: BOOST_PP_CAT(list,BOOST_MPL_LIMIT_LIST_SIZE).hpp \ /**/ //I'd say probably the problem occurs either in the macro above, //or the one right below... //from boost\preprocessor\cat.hpp: //from boost\mpl\limits\list.hpp: #if !defined(BOOST_MPL_LIMIT_LIST_SIZE) #endif Cheers!
Nov 28 2003
It's a bug in the boost headers. It's relying on juxtaposition to "dan" <dan_member pathlink.com> wrote in message news:bq8qvi$jn4$1 digitaldaemon.com...Fatal Error: g:\BAKNET\BAKNET.MAK(10865368): don't know how to make .\boost-1.30.2\boost\mpl\list\list10 .hpp Errors: 1 Warnings: 0 Build failed notice the space between "list10" and ".hpp" The file exists as named but without the space. Copying the file andadding thespace to the name appears to solve the problem. I can't find any bug intheboost file that should be causing the anomaly, even highlighted the textin allthose macros to try and catch hidden blank spaces, and nothing. Here's the relevant boost code: //from boost\mpl\list.hpp (the line where the error occurs): //from boost\preprocessor\stringize.hpp: //from boost\mpl\list.hpp: BOOST_PP_CAT(list,BOOST_MPL_LIMIT_LIST_SIZE).hpp \ /**/ //I'd say probably the problem occurs either in the macro above, //or the one right below... //from boost\preprocessor\cat.hpp: //from boost\mpl\limits\list.hpp: #if !defined(BOOST_MPL_LIMIT_LIST_SIZE) #endif Cheers!
Nov 28 2003
In article <bq8u65$obq$1 digitaldaemon.com>, Walter says...It's a bug in the boost headers. It's relying on juxtaposition toThe boost guys appear to... not quite 'disagree', but... I'm too low level in C++ to dare express an opinion of my own, but the following is the bug report I submitted to boost, and the reply I got:Initial Comment: in file "...boost\mpl\list.hpp": BOOST_PP_CAT(list,BOOST_MPL_LIMIT_LIST_SIZE).hpp /**/ Results in a space being inserted in the filename, before problem, i.e.: I'm using latest betas for boost, STLport and Digital Mars. Regards. danThe compilers are wrong to insert a space, and a concatenation here is undefined behavior. A better way to fix it would be to try this: #define MPL_AUX_LIST_HEADER MPL_AUX_LIST_HEADER_I(BOOST_PP_CAT(list,BOOST_MPL_LIMIT_LIST _SIZE)) /**/ #define MPL_AUX_LIST_HEADER_I(name) name.hpp Regards, Paul Mensonides
Dec 01 2003
"dan" <dan_member pathlink.com> wrote in message news:bqfdld$nhl$1 digitaldaemon.com...In article <bq8u65$obq$1 digitaldaemon.com>, Walter says...inIt's a bug in the boost headers. It's relying on juxtaposition toThe boost guys appear to... not quite 'disagree', but... I'm too low levelC++ to dare express an opinion of my own, but the following is the bugreport Isubmitted to boost, and the reply I got:I don't see how that derives from the spec. The only token concatentionInitial Comment: in file "...boost\mpl\list.hpp": BOOST_PP_CAT(list,BOOST_MPL_LIMIT_LIST_SIZE).hpp /**/ Results in a space being inserted in the filename, before problem, i.e.: I'm using latest betas for boost, STLport and Digital Mars.The compilers are wrong to insert a space,and a concatenation here is undefined behavior.Or perhaps I misunderstood you.A better way to fix it would be to try this: #define MPL_AUX_LIST_HEADER MPL_AUX_LIST_HEADER_I(BOOST_PP_CAT(list,BOOST_MPL_LIMIT_LIST _SIZE)) /**/ #define MPL_AUX_LIST_HEADER_I(name) name.hppIf that works, I suppose it's good enough <g>.
Dec 01 2003
In article <bqgkt3$2jsj$1 digitaldaemon.com>, Walter says...I don't see how that derives from the spec. The only token concatentionWalter, I'm no professed expert in C++, I don't even know what the Standard looks like :) I'm just acting as messenger between you and the boost guys. I once used concatenation, years ago, and I still shiver from the experience. May I suggest a bit of a compromise? I'm not sure he's right when he says...and a concatenation here is undefined behavior.Or perhaps I misunderstood you... but I'm sure it wouldn't hurt to remove it either. After all, you ARE concatenating for them, right? So why not remove the space while someone figures out the best way to concatenate the file extension? Just my 2c. PS, I have a couple other postings about other problems, sorry that it took me 4 tries to submit one report right.The compilers are wrong to insert a space,A better way to fix it would be to try this: #define MPL_AUX_LIST_HEADER MPL_AUX_LIST_HEADER_I(BOOST_PP_CAT(list,BOOST_MPL_LIMIT_LIST _SIZE)) /**/ #define MPL_AUX_LIST_HEADER_I(name) name.hppIf that works, I suppose it's good enough <g>.
Dec 01 2003
Even if 'concatenation' per-se is not called for, and against the Standard, could it be that the "." (dot) relieves the preprocessor from responsibility for adding a space at the end of the preceding string (since the dot already acts as a kind of 'separator'..)? I just find it hilarious how the boost libraries work with so many compilers, surprised at all that they'd be all wrong; --won't be the first time that everybody is wrong, but this bug may be just about ready for acceptance by ANSI/ISO/whatever... ;-) Cheers! dan
Dec 01 2003
"dan" <dan_member pathlink.com> wrote in message news:bqgrf1$2t4t$1 digitaldaemon.com...Even if 'concatenation' per-se is not called for, and against theStandard,could it be that the "." (dot) relieves the preprocessor fromresponsibility foradding a space at the end of the preceding string (since the dot alreadyacts asa kind of 'separator'..)? I just find it hilarious how the boost libraries work with so manycompilers,surprised at all that they'd be all wrong; --won't be the first time that everybody is wrong, but this bug may be just about ready for acceptance by ANSI/ISO/whatever... ;-)The separator inserted by dmc is to make the preprocessor work right, it isn't easilly removed. I don't really understand why boost seems to want to added to Standard C specifically to move away from that practice.
Dec 01 2003
The separator inserted by dmc is to make the preprocessor work right, it isn't easilly removed. I don't really understand why boost seems to want to added to Standard C specifically to move away from that practice.Ok, I'll re-report to them. Have you noticed my post titled "(my god, I forgot"? There appears to be some missed inheritance relationship. I reported that to STLport and they say it's the compiler. Also, when I try to compile boost's state-machine example... G:\boost-1.30.2\libs\mpl\example\fsm\player.cpp ..I get "no type for T" problem for quote.hpp and another header. I reported this to boost, and they blame the compiler... ;-) Anyways, this is the more crucial problem for me because, a) I haven't a clue how to work around it and b) I have a job to do for work with state machines (a BACnet interface) which I coded entirely with boost's fsm while waiting for the DM CD. Cheers! dan
Dec 02 2003