Struct vs. Class

Chris via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Fri Jun 26 04:39:20 PDT 2015


On Friday, 26 June 2015 at 11:28:38 UTC, Daniel Kozák wrote:
>
> On Fri, 26 Jun 2015 11:11:15 +0000
> Chris via Digitalmars-d-learn 
> <digitalmars-d-learn at puremagic.com> wrote:
>
>> I have still some classes lying around in my code. As 
>> threading is becoming more and more of an issue, classes and 
>> OOP in general turn out to be a nuisance. It's not so hard to 
>> turn the classes into structs, a lot of classes are in fact 
>> singletons (yes, I've been kinda fading out classes for a 
>> while now). My question is now, what do I have to keep in mind 
>> if I turn a cached class into a cached struct, i.e.
>> 
>> initProgram()
>> {
>>    auto myClass = new AwesomeDoEverything.instance();  // lives
>> for the rest of the program, is a singleton
>> }
>> 
>> // ...
>> 
>>    myClass.call(input);
>> 
>> initProgram()
>> {
>>    auto myStruct = AwesomeDoEverything();  // lives for the 
>> rest
>> of the program
>> }
>> 
>> // ...
>> 
>>    myStruct.call(input);  // Can live in different threads 
>> without
>> reinitializing it.
>> 
>> Or is there a way I can make a singleton class "thread-able"?
>> 
>> I cannot afford to re-initialize certain classes / structs 
>> because I don't wanna hit the file system every time I do so.
> bad link: http://dlang.org/phobos/std_concurrency.html#.initOnce

Thanks a million! This might do the trick and my classes can live 
happily ever after :-)


More information about the Digitalmars-d-learn mailing list