Any plans to support STL value types?
anonymous via Digitalmars-d
digitalmars-d at puremagic.com
Fri May 15 12:51:08 PDT 2015
On Friday, 15 May 2015 at 19:44:29 UTC, Jonathan M Davis wrote:
> On Friday, 15 May 2015 at 18:42:31 UTC, Kagamin wrote:
>> Many STL types inherit from base classes, yet they are used as
>> value types: std::string, std::vector etc. Are there plans to
>> support C++ types with inheritance as proper value types in D
>> frontend?
>
> Given that the inheritance they have is actually undesirable
> when they are treated as value types, I doubt that there's much
> need. If you're using inheritance in C++, you're putting your
> class on the heap and accessing it via pointers, in which case,
> accessing them in D as classes makes sense. And if you're using
> these STL types as value types on the stack, then they can be
> treated as value types. Doing otherwise just risks object
> slicing, which is not desirable in the least.
>
> So, while I don't know how we're going to be handling STL types
> (I don't even know what the current state of C++ state support
> is, since it keeps improving), I really don't see why there's
> value in supported inheritance with value types. It would just
> be begging for bugs - which is why native D types don't support
> it.
>
> - Jonathan M Davis
rust does it just fine without slicing, and supports both static
dispatch and dynamic dispatch through the same interface.
http://blog.rust-lang.org/2015/05/11/traits.html
honestly, this is one of the worst parts of D. Being forced to
code a certain way because it might be misused is the equivalent
of digital socialism.
More information about the Digitalmars-d
mailing list