Ticket #1 (closed defect: invalid)
Build errors with defined IGSB_TEMPLATE_TEMPLATE_STATUS=1
| Reported by: | mloskot | Owned by: | somebody |
|---|---|---|---|
| Priority: | critical | Milestone: | |
| Component: | component1 | Version: | |
| Keywords: | Cc: | ||
| LAS Format Version: |
Description
First, there is something wrong _MSC_VER to IGSB_MSC_VER value mapping, so Visual C++ 8.0 (1400) compiler is not correctly detected (see platform.h). If _MSC_VER is used directly, then the compiler is detected correctly:
// platform.h #ifndef IGSB_TEMPLATE_TEMPLATE_STATUS #if _MSC_VER && _MSC_VER <= 1200 #define IGSB_TEMPLATE_TEMPLATE_STATUS 0 #else #define IGSB_TEMPLATE_TEMPLATE_STATUS 1 #endif #endif
Now, when building with Visual C++ 8.0, the macro IGSB_TEMPLATE_TEMPLATE_STATUS is correctly set to 1.
BTW, for GCC, macro IGSB_TEMPLATE_TEMPLATE_STATUS is automatically set to 1, as expected.
After this change, compilation fails with long flood of errors, unfortunately. Both, GCC and Visual C++ 8.0 fails with very similar errors.
I was trying to fix them and I manged to get rid of problem with casting templates in rc_ptr.h, but there seems to be a huge number of very basic errors, like undefined types, missing headers, names clashes because of namespaces are used incorrectly or types are not used with full name qualification, etc.
One of the problems is also a lot of unused code, commented code and number of variants of declarations, so it's completely unclear if these parts are supposed to say there is some work in progress or they are unused and can be removed, etc.
I suppose that significant changes to the current code will affect the logic so it's important to do any cleanup very carefully.
