Angel Tsankov wrote: > Can someone recommend a way to create "unique" identifiers for use > in guard macros: > > #if !defined (UNIQUE_GUARD) > #define UNIQUE_GUARD
As you said, the most important thing is to not collide with any existing one. The advise to use a GUID is a good one, another good one is to just use the date when the file is started. I always leave a generic prefix like the module and the filename in uppercase (just in case I need to identify where it's coming from). BTW: you asked for a GUID tool - depending on the system you have, you don't need one, on most unixoid systems you can do this: dd if=/dev/urandom count=1 bs=10 | md5sum This reads ten bytes from a random-number generator and computes their MD5 hash - should be sufficiently unique. ;) > #endif //!defined UNIQUE_GUARD ^^^^^^^^^^^^^^^^^^^^^ I'd recommend rather writing "include guard" there, because this comment doesn't make it clear whether in the lines before this macro was defined - after all, it could have had an #else somewhere in between. Other than include guards, I also tend to indent such things: #if foo # if bar # error foo and bar! # else # define baz # endif #endif I believe that this structure makes it clear what is evaluated when, much better than any comment would do. Uli -- http://gcc.gnu.org/faq.html http://parashift.com/c++-faq-lite/ _______________________________________________ help-gplusplus mailing list help-gplusplus@gnu.org http://lists.gnu.org/mailman/listinfo/help-gplusplus