Jonathan M Davis wrote: > I'd like to know which modifiers are considered to be storage classes. The > term > seems to be used on a lot more than actually qualifies (including using the > term for the type qualfiers: const, immutable, and shared), and even the > documentation uses it on stuff that I wouldn't have thought would be > considered > storage classes, because they have no effect on how variables are stored or > linked (e.g. synchronized). > > Someone asked about it on stackoverflow, and my explanation is not as good as > it should be simply because I can't find a definitive list anywhere: > > http://stackoverflow.com/questions/10150510/what-are-the-storage-classes-in-d
I would say that static is the only storage class. By default data is thread local and not shared. enum is not a storage class because nothing is stored here (I mean in memory at run time). extern is not a storage class. Because it just says that the symbol needs to be resolved at link-time. lazy says something about time of evaluation not how a variable's memory is stored. out is about parameter passing. Same for ref. So I think ref is not a storage class. If it was I would expect ref a = 10 to be valid code. Don't know about scope. I never used it. Is it going to be deprecated, isn't is? Jens