只有在某些(编译时)条件为真时,我才想声明一个朋友类。例如:
// pseudo-C++
class Foo {
if(some_compile_time_condition) {
friend class Bar;
}
};
我在互联网上没有找到任何解决方案。我浏览了在编译时动态生成结构问题的所有答案。他们中的许多人使用 C++11 std::conditional
,但我想知道是否可以在不使用预处理器的情况下在 C++03 中执行此操作。
此解决方案https://stackoverflow.com/a/11376710/252576将不起作用,因为friend
船舶未继承(具有继承的朋友类)。
编辑只是为了使它更容易看到,如下评论中所述:此要求是不寻常的。这是我正在从事的硬件仿真新研究项目的一部分。测试台是用 C++ 编写的,我想以波形显示变量。我研究了各种其他选项,并发现出于实际考虑我需要使用 a friend class
。朋友将捕获值并生成波形,但我希望仅在需要波形时才让朋友,而不是一直。