Добавление инвариантной проверки к каждому методу класса

У меня есть класс со многими методами, и я хотел бы проверить условия до / после, такие как mMember == null, и вызвать функцию x (), если нет.

Можно ли автоматически добавлять условия до / после каждого члена этого класса? Класс определен в class.h, а все методы определены в class.cpp. Возможность определения макроса в начале class.cpp была бы идеальной, если бы она вставлялась только в каждую запись функции в этом файле.

Я знаю, что могу вручную добавить одно и то же предусловие / постусловие (используя деструкторы) к каждой записи функции, но я продолжаю сталкиваться с этой проблемой снова и снова. Это не идеально, так как я не могу проверить эти изменения и должен поддерживать их локально, и они имеют корень от изменений других людей.

1
задан Benoît 6 August 2010 в 08:16
поделиться

1 ответ

Мне никогда не удавалось сделать это на C ++; Я всегда использовал набор макросов, добавляемых вручную к каждой функции-члену.

Это звучит как работа, которая может хорошо подходить для аспектно-ориентированного программирования, и я вижу, что существуют библиотеки для АОП в C ++, такие как AspectC ++. Возможно, стоит хотя бы взглянуть на один из них и посмотреть, можно ли его использовать для решения вашей проблемы.

2
ответ дан 2 September 2019 в 22:23
поделиться
Другие вопросы по тегам:

Похожие вопросы: