View Single Post
  #1 (permalink)  
Old 03-26-2004
peter.s peter.s is offline
Registered User
 
 
Join Date: Mar 2004
Posts: 12
problem in C++ include file ordering

I don't know if this really can be called a bug, anyway the effect of this issue is not nice:

if I have a test.ice and include the following header files:

Code:
#include <stdint.h>
#include <test.h>
the file will not compile, because:

the generated test.h includes IceUtil/Config.h
which sets the parameter __STDC_LIMIT_MACROS and afterwards includes <stdint.h>

but, if stdint.h has already been included before, it won't be included a second time and the INT64_MAX ... macros won't be defined and the compiler exits with an error at the lines:

Code:
    198 // Assumes ISO C99 types
    199 //
    200 typedef int64_t Int64;
    201 const Int64 Int64Min = INT64_MIN;
    202 const Int64 Int64Max = INT64_MAX;
in IceUtil/Config.h with the error message that INT64_MIN and INT64_MAX are not defined.

I think this is not really a nice way to include stdint.h but I have to admit I don't know if using one of the other methods which already are in IceUtil.h could deliver all needed variables.

greetings,
Peter
Reply With Quote