【发布时间】:2014-03-16 19:50:15
【问题描述】:
我有一个带有 bool 模板参数 (is_const) 的类方法,它仅在 is_const 为 false 时调用可变函数(使用静态 if)。我怎样才能告诉 D 编译器使这个函数为 is_const = true 而不是为 is_const = false? 我不想复制粘贴该功能,但我看不到任何其他方法。 (我不能使用 inout,因为它对于 is_const=false 和 is_const=true 的行为确实不同)
【问题讨论】:
-
我认为复制函数体是唯一的方法。 static if 和 mixin 都只适用于整个声明——它们不能有选择地只对签名添加一点点变化。我还没有发布这个作为答案,因为我不太确定,但几乎可以肯定,到目前为止我尝试过的任何黑客都没有得到任何地方。