对于D范围,front()应该是@property吗?

时间:2019-01-12 10:31:57

标签: properties iterator range d

当我定义D范围时,front()应该是@property吗? (或只是一个 “常规”成员函数?)

1 个答案:

答案 0 :(得分:7)

是的,应该是这样(正式定义在文档中的isInputRange模板下,请参见:http://dpldocs.info/experimental-docs/std.range.primitives.isInputRange.html)。

实际上,它仍然可以工作,但是由于文档说它和typeof(range.front)是范围约束的常见检查,因此@property实际上会在dmd实现中发生改变,最好使用它来使其合规。

现在,@property当前不禁止使用括号括起来像range.front()那样调用,您不应该这样做,因为在将来的某个时候,@ property可能会更改以阻止该行为。 / p>

是的,在range.front上使用@property并始终将其用作属性以实现最大的前向兼容性。