difficulties with const structs and alias this / template functions

Dennis dkorpel at gmail.com
Mon Nov 19 00:50:28 UTC 2018


On Sunday, 18 November 2018 at 22:30:52 UTC, Rubn wrote:
> Yah most people tend to avoid const for this reason. It only 
> really works for basic types, if you have a "const int" you can 
> convert it to an "int" by copy. But if you have a type like 
> Vector!(const int) that won't work, you can't even convert 
> Vector!int to Vector!(const int) easily for example.

That's unfortunate. I can relate better to Jonathan's article [1] 
now. But I'll still try to make it working with const since other 
people might want to use it.

I'm also trying to make it work with immutable, and from BigInt 
[2] I learned that constructors need to be `pure` for creating 
immutable objects. (I don't know why.)

Are there any other gotchas? I didn't add an immutable variant 
for toQ32 like Stanislav suggested, but creating an immutable q32 
from a q16 still seems to work fine.

[1] http://jmdavisprog.com/articles/why-const-sucks.html
[2] https://issues.dlang.org/show_bug.cgi?id=17330


More information about the Digitalmars-d-learn mailing list