On Tuesday, 15 July 2014 at 17:50:13 UTC, Johannes Pfau wrote:
Then we have a templated struct. Which generates TypeInfo for every instance. Which might generate an Initializer for every instance and
it might generate extended debug info for every instance.

These are exactly the kind of workarounds I don't want. Sure we can make it work: @noTypeInfo @noInit @noDebug (struct volatile). But then I don't see why we don't just use the proposal in this DIP. It's less
complicated, has got fewer corner case, ...

And that's why I say first class support: We don't have shared!(T) we have shared T. And volatile should get it's own qualifier as well.

Also some things will just not work with Volatile!T, for example
volatile/nonvolatile member function overloading.

Functions can take Volatile!T, of course, and you can always have "set/volatileSet". You might even be able to use opDispatch to make it less DRY.

Reply via email to