ビジネス ロジック関数をマクロとして実装することは良い考えですか?
いくつかのレガシー C++ コードを継承しましたが、多くのビジネス ロジック関数が長い不可解なマクロとして実装されていることがわかりました。
関数に対するマクロの利点はありますか? マクロを使用する一般的な理由は何ですか?
マクロに最適なロジックは何ですか?
これはコードの簡単なサンプルです
#define INSERT_VALUES(IN,ID,EO) {\
double evaluationOutput = EO;\
int controls = 0;\
int input_controls = m_input_controls[IN];\
if(m_value_list[IN].ShouldProcess())\
{\
evaluationOutput = m_evaluationOutput[IN];\
controls = m_controls[IN];\
}\
VALUE_EXIST(evaluationOutput,controls,input_controls,IN,ID,Adj);\
m_evaluationOutput[IN] = controls > 0 ? evaluationOutput : 0.0;\
m_controls[IN] = controls;\
m_input_controls[IN] = input_controls;\
}