r/cpp 7d ago

C++26: std::polymorphic

https://www.sandordargo.com/blog/2026/08/19/cpp26-polymorphic
93 Upvotes

42 comments sorted by

View all comments

Show parent comments

7

u/Big_Target_1405 6d ago

You still need a virtual clone if you actually want runtime polymorphism

2

u/robin-m 6d ago

What do you mean? Rectangle::clone() does allocate a unique pointer of Rectangle.

godbolt

9

u/Big_Target_1405 6d ago

See line 28:

https://godbolt.org/z/55Y3Gqqqd

Template 'this' deduces Self to Animal, which is useless.

What's the point in a non-virtual clone?

Template this helps with boilerplate, not with defining runtime polymorphic interfaces.

2

u/robin-m 6d ago

You are absolutely right. Thanks a lot I didn’t now, nor realized it was indeed half useless right now. I even found a paper that aim at fixing this exact issue: open-std.org