"""
The only purpose for which #ifndef, #define, and #endif directives can be used is to create a double-include block.
"""
This seems rather odd... if that is truly the only purpose, can't that be a rule the compiler must implement - no files will be processed more than once?
Is your statement also meant to preclude the inclusion/exclusion of code by setting a macro outside the file like so:
compiler -DDEBUG source_file.ice
------------------ source_file.ice ----------------
interface myInterface {
void foo();
#ifdef DEBUG
void printInternalState();
#endif
};
Oh, and for goodness sakes, can't we make the semicolon at the end of a type definition optional (or kill it altogether)? Forgetting it will be a very common mistake.
It was easy enough to remember when all you programed in was C++, but now with Java, C#, etc, it becomes half impossible to remember it!
-Yonik

Reply With Quote