Inconsistent compile condition of two related macros
In rapidjson.h, the compile conditions of RAPIDJSON_48BITPOINTER_OPTIMIZATION and RAPIDJSON_64BIT are different. But if RAPIDJSON_48BITPOINTER_OPTIMIZATION = 1, RAPIDJSON_64BIT != 1. there will be an error "RAPIDJSON_48BITPOINTER_OPTIMIZATION can only be set to 1 when RAPIDJSON_64BIT=1".
Which is the better solution? Make their conditions consistent or add “#if defined(RAPIDJSON_64BIT ) && (RAPIDJSON_64BIT == 1)” to condition of RAPIDJSON_48BITPOINTER_OPTIMIZATION ? Or any other way?
Perhaps simply change
#define RAPIDJSON_48BITPOINTER_OPTIMIZATION 1
to
#define RAPIDJSON_48BITPOINTER_OPTIMIZATION RAPIDJSON_64BIT
in line 334? Making conditions consistent might not be the best way to go since there may be some 64Bit environments that do make use of those upper bits (if not now, then in the future).