How to define property type to Array!struct?

WebFreak001 d.forum at webfreak.org
Tue Dec 14 08:28:01 UTC 2021


On Tuesday, 14 December 2021 at 08:12:04 UTC, zoujiaqing wrote:
> My code:
>
> ```D
> module http.HttpRequest;
>
> import std.container;
> import std.array : Appender;
>
> struct HttpRequest
> {
>     struct Header()
>     {
>         Appender!string name;
>         Appender!string value;
>     }
>
>     string method;
>     string uri;
>     int versionMajor = 0;
>     int versionMinor = 0;
>     Array!Header headers;
>     ubyte[] content;
>     bool keepAlive = false;
> }
> ```
>
> Error code:
> ```D
> source/http/HttpRequest.d(18,5): Error: struct 
> `std.container.array.Array` does not match any template 
> declaration
> ```

the problem is that your header is a template, so you need to 
instantiate it:
```d
Array!(Header!()) headers;
```

the error message is kinda poor here.

Alternatively, remove the template `()` from your `struct Header`


More information about the Digitalmars-d-learn mailing list