"foreach (e; pointer_to_range)" currently fails with: Error: foreach: Range* is not an aggregate type
It can be worked around with struct RangePtr(R) { R* ptr; alias ptr this; @property front()() { return ptr.front; } } but this adds unnecessary overhead (unfortunately such struct is not always treated the same as a real pointer, eg when passing it around). Is there some reason that makes the is-aggregate check necessary, or could it be dropped? Thanks, artur