对于 D 范围,front() 应该是 @属性 吗?
For a D range, should front() be a @property?
当我定义我的 D 范围时,front()
应该是 @属性 吗? (或者只是一个
"regular" 成员函数?)
是的,应该是(正式定义在文档中的 isInputRange
模板下,参见:http://dpldocs.info/experimental-docs/std.range.primitives.isInputRange.html)。
在实践中,无论如何它都可以工作,但由于文档说 typeof(range.front)
是范围约束中的常见检查,这是 @property
在 dmd 实现中实际改变的一件事现在,最好使用它来兼容。
现在,@property
目前不禁止像 range.front()
那样调用它,带括号,你不应该那样做,因为在将来的某个时候,@属性 可能会改变阻止这种行为。
所以是的,在 range.front 上使用 @property
并始终将其用作 属性 以获得最大的向前兼容性。
当我定义我的 D 范围时,front()
应该是 @属性 吗? (或者只是一个
"regular" 成员函数?)
是的,应该是(正式定义在文档中的 isInputRange
模板下,参见:http://dpldocs.info/experimental-docs/std.range.primitives.isInputRange.html)。
在实践中,无论如何它都可以工作,但由于文档说 typeof(range.front)
是范围约束中的常见检查,这是 @property
在 dmd 实现中实际改变的一件事现在,最好使用它来兼容。
现在,@property
目前不禁止像 range.front()
那样调用它,带括号,你不应该那样做,因为在将来的某个时候,@属性 可能会改变阻止这种行为。
所以是的,在 range.front 上使用 @property
并始终将其用作 属性 以获得最大的向前兼容性。