У меня есть класс со многими методами, и я хотел бы проверить условия до / после, такие как mMember == null, и вызвать функцию x (), если нет.
Можно ли автоматически добавлять условия до / после каждого члена этого класса? Класс определен в class.h, а все методы определены в class.cpp. Возможность определения макроса в начале class.cpp была бы идеальной, если бы она вставлялась только в каждую запись функции в этом файле.
Я знаю, что могу вручную добавить одно и то же предусловие / постусловие (используя деструкторы) к каждой записи функции, но я продолжаю сталкиваться с этой проблемой снова и снова. Это не идеально, так как я не могу проверить эти изменения и должен поддерживать их локально, и они имеют корень от изменений других людей.
Мне никогда не удавалось сделать это на C ++; Я всегда использовал набор макросов, добавляемых вручную к каждой функции-члену.
Это звучит как работа, которая может хорошо подходить для аспектно-ориентированного программирования, и я вижу, что существуют библиотеки для АОП в C ++, такие как AspectC ++. Возможно, стоит хотя бы взглянуть на один из них и посмотреть, можно ли его использовать для решения вашей проблемы.