私は学生で、課題を提出する前にそれをチェックするために、いくつかのテスト コードを作成して実行しようとしています。私の割り当てでは、クラスごとに独自のプライベートコピーコンストラクターと割り当て演算子を宣言しましたが、これらには定義がないため、何もしません。それらがテスト プログラムで呼び出されると、予期したとおりにコンパイル エラーが発生します。このようなもの:
エラー: 'myClass::myClass(const &myClass)' はプライベートです'
エラー: 'myClass& myClass::operator=(const myClass&)' は非公開です
テスト コードをコンパイルして実行するために try/catch を使用する方法はありますか? 私はもう試した:
myClass obj1(...);
myClass obj2(...);
try{
obj1 = obj2;
throw 1;
}
catch(int e){
assert(e==1);
}
しかし、コンパイラはまだ上記のエラーを出しています。これらは「例外」ではありませんか?彼らはスローをトリガーしませんか?
私が try/catch を正しく理解していれば、上記の種類のエラーではなく、実行時エラーを処理します。正しいですか?
さらに調査を行った結果、特定のコンパイル エラーを C++ 内でネイティブにテストする (簡単な) 方法はないようです (考えてみると、これはほとんどの言語に当てはまる可能性があります)。C++ コードのスニペットをコンパイルしてエラーをチェックするスクリプト言語でテスト コードを作成することを提案する投稿と、 Boost.Build の使用を推奨する別の投稿を読みました。
私がやろうとしていることを行うための最も簡単で最良の方法は何ですか?
Boost.Build のドキュメントを見ましたが、ちょっと頭がおかしいです。私がそれを使用した場合、「test.cpp」などのファイルがコンパイルされることをどのようにテストし、「test.cpp」で発生する特定のコンパイル エラーを処理するのでしょうか?
ご協力いただきありがとうございます!
PS これは私の最初の投稿の 1 つです。「十分な」調査を行い、他のすべてを適切に行ったことを願っています。しなかったらごめんなさい。