当我定义D范围时,front()
应该是@property吗? (或只是一个
“常规”成员函数?)
答案 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
并始终将其用作属性以实现最大的前向兼容性。