Сколько накладных расходов на интеллектуальные указатели по сравнению с обычными указателями в 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);