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