ある(コンパイル時の)条件が真の場合にのみ、フレンドクラスを宣言したい。例えば:
// pseudo-C++
class Foo {
if(some_compile_time_condition) {
friend class Bar;
}
};
インターネット上で解決策は見つかりませんでした。コンパイル時に構造を動的に生成するという質問に対するすべての回答を調べました。それらの多くはC++11を使用していますが、プリプロセッサを使用せずstd::conditional
にC++03でこれを実行できるかどうかを知りたいと思います。
このソリューションhttps://stackoverflow.com/a/11376710/252576friend
は、 shipが継承されていないため機能しません(継承されたフレンドクラス)。
以下のコメントで説明されているように、これをより見やすくするために編集してください。この要件は珍しいものです。これは、私が取り組んでいるハードウェアシミュレーションの新しい研究プロジェクトの一部です。テストベンチはC++で記述されており、変数を波形で表示したいと思います。私は他のさまざまなオプションを調査しましたが、friend class
実際的な考慮事項から、を使用する必要があることがわかりました。友人は値をキャプチャして波形を生成しますが、波形が必要な場合にのみ友人がいることを望みます。常にではありません。