Наиболее очевидным ответом будет то, что "assert.h" не включен или не найден в вашем пути включения. Другое объяснение состоит в том, что макрос assert был неопределенным в какой-то момент после включения заголовка.
Edit: так как вы говорите, что assert.h включен, и на данный момент мы предполагаем, что он найден, поскольку это стандартный заголовок, то у нас остается последняя возможность, о которой я говорил выше, то есть макрос не определено.
Поскольку cpool.h сам не будет этого делать, это должно быть в том случае, если assert.h был включен ранее вами или косвенно другим сторонним заголовком, и между этим и вашим включением в cpool.h происходит неопределенное событие. Это легко проверить, переместив ваш файл cpool.h в начало файла.