競争力のあるプログラミングを行うとき、次のようなテストとソリューションを含む自己完結型のディレクトリに各問題があります。
problem_a/
tests/
default.in default.out
main.c
また、ソリューション (常に単一のファイル) をコンパイルし、入力ファイルを入力して実行し、単純なコマンド ライン コマンドを使用して結果を出力ファイルと比較できることも気に入っています。私は通常、次のようなものを使用します。
make main && (./main < tests/default.in | diff tests/default.out - ; rm main)
今、同じディレクトリに (異なるプログラミング言語の) 複数のソリューションを配置できるようにしたいと考えています。たとえば、main.cpp
. make
ただし、 CPP ルールよりもデフォルトの C ルールが常に優先されるため、これは上記のコマンドと競合します。
これに対する最も現実的な解決策は、ファイル名を追加_c
の_cpp
記述子で後置することだけですか? 私の純粋主義者は、これは冗長であると考えており、より良い方法を望んでいますmake
。