2 background colors can be recycled when drawing nested blocks, and with third one you can draw subsequent same level blocks differently so they can be distinguished even if there aren't any "parent block" lines between.
Hum... not convinced. Maybe I do not see correctly what you mean... I have nothing against such feature, but just let me disable it.
HS:
Freem:
Why use macros if there could be more elegant way?
Because sometimes, macro are the elegant way.
I used them in a professional project. Without macros, users of my library had to writes classes of near 100 lines. 100 lines which could be mostly written by a robot, with not so well known calls to stl (my colleagues are not C++ dev). With macros, the resulting code was of 20 lines of a pseudo language, far easier to write and read. Those macros also allowed me to fix some bugs I never understood, thanks to gain of readability.
Interest of macros against inline functions, by example, is that they do not need to respect C or C++ syntax, and that give some powerful features. Now I am thinking about that,
maybe in C++11 some of macros uses can be replaced by lambdas, but I do not think lambdas are so easy to read. Other problem is that some people can not use C++11 at the moment.