Сегодня открытие сделал
Вернее, приспособил для себя более удобный способ оставлять [сабж], чтобы чего-то не забыть дописать.
Обычно я делал как?
switch(nodeType)
{
case stringNode:
...
break;
default:
assert(false);
break;
} // switch
Выделенный ассерт нужен для того, чтобы чего не забыть, буде появится новый тип, который надо обработать. Но сообщение, которое выкидывает assert, уж очень неинформативное:
Assertion failed: false, file C:\JOB\Garbage\AssertionTest.cpp, line 85
Почесал я репу и придумал малой кровью велосипед
enum
{
NOT_IMPLEMENTED
};
switch(nodeType)
{
case stringNode:
...
break;
default:
assert( (NOT_IMPLEMENTED >> nodeType) );
break;
} // switch
Теперь все гораздо веселее:
Assertion failed: (NOT_IMPLEMENTED >> nodeType), C:\JOB\Garbage\AssertionTest.cpp, line 85
То есть видно, что именно не имплементировано
Даже стрелочки показывают направление глубокого морального падения
З.Ы. Почему в "Философию"? Затрудняюсь ответить
Наверное потому, что данная заметка и есть частный пример философии удобно-ленивого программирования
З.З.Ы. Как там в "Юморе" говорят? Звиняйте, если байан