Да. Верно. Но в assert_function будет окошко, где скажет что делать дальше. Три варианта - игнорировать, отправить багрепорт, упасть/войти в дебаг). Поведение зависит от релиза или дебаг-сборки (в релизе макрос может не содержать break, а вызывать что-то иное). Если вернет true, то выполнится брейк, иначе ничего не произойдет из-за тернарного оператора - т.е. будет игнор операции. Вам это не надо, я просто показал пример как ассерт макрос реализовать покрасивше.
assert_function кстати можно переопределить в классе, если нужно. И будет контексто-зависимый assert - или вызываться глобальный, или переопределенный.