Можете ли вы сделать это:
class X {
void body(){/body ... /} const;
void f() {body(); g(); } const;
void f() {body(); g(); };
void g() const;
void g();
};
Если вы не можете, это потому, что / body ... / имеет постоянную и неконстантную версию?
Если это так,несмотря на то, что это один и тот же источник, он имеет другое значение - он будет компилироваться по-разному, поэтому вы не сможете поделиться исходным кодом, если не хотите поделиться общими строками кода, а не вызывая функцию.
Некоторые идеи:
- Сделать тело макросом
- Поместить тело в body.inc и # включить его в методы (излишнее уничтожение)