私が使用しているサードパーティ製のオープンソース アプリケーションは、奇妙な動作をします。これが間違っている/悪い/忌まわしい/などだと思うかどうか、またはこれを行う正当な理由があるかどうかについて、あなたの意見を聞きたい.
簡単に言えば、#include pre-proc ディレクティブを使用して、コードのフラグメントを含む「ヘッダー ファイル」をインクルードします。関数のプロトタイプではありません。インライン関数ではありません。コードの一部のみ。
簡単な例を次に示します。最初に main.cpp ファイル:
#include <iostream>
//Other "normal" includes here...
int main(int argc, char *argv[]) {
cout << "Initializing program..." << endl;
#include "parseArgs.h"
// ... remainder of the program
cout << "Exiting." << endl;
return 0;
}
parseArgs.h ヘッダー ファイル内には、小さなコード フラグメントがあります。これはまさに parseArgs.h ファイルにあるものだけであることに注意してください。これは関数の一部ではありません。インクルード ガードはなく、次の 4 行だけです。
argList args(argc, argv);
if(!args.valid()) {
cout << "Invalid arguments.";
exit(1);
}
実際のプログラムには、これらの #include ディレクティブがいくつかあり、それぞれが別の小さなタスクを実行します。
危険でクレイジーに思えます。これらを関数として記述して呼び出さない理由がわかりません。
あなたのアイデアや意見は?