On Tuesday, 5 December 2017 at 19:01:48 UTC, A Guy With a
Question wrote:
The following doesn't appear to be valid syntax. Array!Item!T
I get the following error:
"multiple ! arguments are not allowed"
Which is ok...I get THAT error, however, this does not work
either:
alias Items(T) = Array!Item(T);
This gives me the error:
Error: function declaration without return type. (Note that
constructors are always named `this`)
Your wrapping the wrong part in parentheses.
Array!(Item!T)
It would actually be Array!(Item!(T)), but if a single type is
specified you're allowed to omit the parentheses when
instantiating.
Item is defined as follows:
interface Item(T)
{
@property
T member();
}
That part compiles fine. However, even when I remove the
aliasing, I can't import this interface. I get "Error:
undefined identifier 'Item'"
I'm not quite sure I understand how to create a generic
container interface or class in D. Half of how I expect it to
work works, but the other half doesn't. The docs aren't too
helpful. I'm not sure if it's a case where there's just too
much to go through or if what I'm trying to do isn't really
covered. Essentially I'm trying to create an array of this type
'Item' that has some generic members. I think people who come
from C# will kind of get what I'm trying to do here, because
I'm trying to port C# code.
What other problems are you having? I did the same and it was
fairly straightforward.