Я смотрел companion code из "Hourglass API" talk из CppCon 2014, который посвящен предоставлению C API для библиотеки C++ главным образом путем обертывания функций-членов класса с функциями, которые имеют C-подпись.новый T (...) vs. std :: make_unique (...). Release()
Среди прочего, я был заинтригован тем, как объект построен. В функции hairpoll_construct
, что создает новый объект hairpoll
, указатель получается
std::make_unique<hairpoll>(person).release()
, который на самом деле называется в функции, которая обрабатывает исключения. Более простой способ - обратиться к равнине
new hairpoll(person)
Каковы сценарии, где предпочтительнее первое? Связано ли это с тем, как работает этот API peticuliar или является ли это более общим, чем это?
Возможно, больше не использовать 'new', когда это возможно. – Jarod42