Для диапазона D, front () должен быть @property? - PullRequest
0 голосов
/ 12 января 2019

Когда я определяю свой диапазон D, должен ли front() быть @property? (или просто "обычная" функция-член?)

1 Ответ

0 голосов
/ 12 января 2019

Да, это должно быть (формальное определение находится в шаблоне isInputRange в документации, см .: http://dpldocs.info/experimental-docs/std.range.primitives.isInputRange.html).

На практике это может работать в любом случае, но поскольку в документах это сказано, а typeof(range.front) - это обычная проверка ограничений диапазона, и это единственное, что @property действительно изменится в реализации dmd прямо сейчас, то лучше всего использовать его, чтобы соответствовать.

Теперь, @property в настоящее время не запрещает называть его как range.front(), с круглыми скобками, вы НЕ должны этого делать, поскольку в какой-то момент в будущем @property может измениться, чтобы заблокировать это поведение.

Так что да, используйте @property на range.front и всегда используйте его как свойство для максимальной прямой совместимости.

...