Why use std::make_unique in C++17?

You’re right that the main reason was removed. There are still the don’t use new guidelines and that it is less typing reasons (don’t have to repeat the type or use the word new). Admittedly those aren’t strong arguments but I really like not seeing new in my code.

Also don’t forget about consistency. You absolutely should be using make_shared so using make_unique is natural and fits the pattern. It’s then trivial to change std::make_unique<MyClass>(param) to std::make_shared<MyClass>(param) (or the reverse) where the syntax A requires much more of a rewrite.

Leave a Comment

Hata!: SQLSTATE[HY000] [1045] Access denied for user 'divattrend_liink'@'localhost' (using password: YES)