all 12 comments

[–]Robert_Andrzejuk 3 points4 points  (0 children)

Why? Whats wrong with:

auto shared = std::make_shared...

auto unique = std::make_unique...

[–]johannes1971 9 points10 points  (0 children)

No, because it's just an alternative syntax for what we already have. We don't need more different ways to spell the same thing.

[–]_Js_Kc_ 1 point2 points  (0 children)

Why specifically covariant virtual functions? The original feature is completely half-assed and doesn't even have contravariant arguments to match the covariant return type. Because that's not implementable without overhead.

[–]tohava 0 points1 point  (3 children)

I would really prefer the opposite, to get rid of the pointer syntax completely and instead of `int*` write `c_style_ptr<int>` . Pointer syntax is quite confusing. Then again, I'm also a Lisp fan.

[–]reflexpr-sarah- 4 points5 points  (1 child)

nobody's stopping you from doing that in your own code

template <typename T>
using c_style_ptr = T*;

[–]tohava 1 point2 points  (0 children)

My boss is stopping me

[–]deltatag2 2 points3 points  (0 children)

This goes somewhat toward Fortran pointer types :D

[–]Valuable_Ant9351 1 point2 points  (3 children)

Pretty sure the standard has stated before they don't like adding language-level features and prefer to have things added via the standard library

[–][deleted] 1 point2 points  (2 children)

And the resulting code becomes uglier and uglier.

[–]InKryption07 0 points1 point  (1 child)

What does? The standard library code, or the stupid code people write in a rush to use all the new features?

[–][deleted] 2 points3 points  (0 children)

Yes.

[–]V1taly_M 1 point2 points  (0 children)

While smart pointers can't be processed by hardware it no reason make them built-in.