Unused template arguments; what type to use?

Simen Kjærås simen.kjaras at gmail.com
Fri Jun 26 13:40:57 UTC 2020


On Friday, 26 June 2020 at 13:21:25 UTC, drathier wrote:
> How can I tell the compiler that I will never create a value of 
> type X, while still being able to write code that uses it? 
> Using void as a template parameter is where I started, but I 
> still need to be able to declare variables inside this 
> unreachable function, like `T foo;` even when `T == void`. Can 
> I get any closer to what I want than an empty struct?

Depends on what you care about, I guess. A final abstract class 
has been my go-to on a few occasions. I'd argue the empty struct 
is better in most cases, and a forward-declared struct with no 
implementation might work in some cases.

--
   Simen


More information about the Digitalmars-d-learn mailing list