Random thought: Alternative stuct

Era Scarecrow rtcvb32 at yahoo.com
Tue Sep 4 04:29:47 UTC 2018


On Tuesday, 4 September 2018 at 03:38:41 UTC, Nick Sabalausky 
(Abscissa) wrote:
> We have classes and structs:
>
> Classes:
> - Default Storage: GC Heap
> - Indirection Overhead: Yes
> - Semantics: Reference
> - Passed By: Copying the Data's Address
>
> Structs:
> - Default Storage: Stack
> - Indirection Overhead: No
> - Semantics: Value
> - Passed By: Copying the Data (except where the compiler can 
> determine it can safely and more efficiently pass by 
> reference...at least, IIUC)
>
<snip>
> IIUC, this would give it the *effect* of reference semantics, 
> but without the indirection (and vtable) overhead, and would 
> allow it to perform RAII cleanup in its dtor when it goes out 
> of scope without ever needing reference counting.

  I have been wanting a hybrid to a class/struct. Which is more 
the C++ struct of old. Namely stack based, and inheritance. Where 
it would differ is only having like 1-2 levels you could do 
inheritance, namely for building very similar structures while 
using the same base. Good for smaller building blocks (and 
variants of a struct/idea), not for making huge projects with.


More information about the Digitalmars-d mailing list