Сколько стоят интеллектуальные указатели по сравнению с обычными указателями в C ++?

Сколько стоят интеллектуальные указатели по сравнению с обычными указателями в C ++ 11? Другими словами, будет ли мой код работать медленнее, если я буду использовать умные указатели, и если да, то насколько медленнее?

В частности, я спрашиваю о C ++ 11 std::shared_ptr и std::unique_ptr

Очевидно, что материал, помещаемый в стек, будет больше (по крайней мере, я так думаю), потому что умный указатель также должен хранить свое внутреннее состояние (счетчик ссылок и т. д.), вопрос на самом деле заключается в насколько это повлияет на мою производительность, если вообще повлияет?

Например, я возвращаю умный указатель из функции вместо обычного указателя:

std::shared_ptr<const Value> getValue();
// versus
const Value *getValue();

Или, например, когда одна из моих функций принимает умный указатель в качестве параметра вместо обычного указателя:

void setValue(std::shared_ptr<const Value> val);
// versus
void setValue(const Value *val);
66 голосов | спросил Venemo 10 MarpmMon, 10 Mar 2014 12:52:30 +04002014-03-10T12:52:30+04:0012 2014, 12:52:30

0 ответов


Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132