tgoop.com/cxx95/35
Create:
Last Update:
Last Update:
#advice
Избыточный const снижает перфоманс ⏱
Правильное использование const
это большая тема в C++. Самое крутое объяснение я видел на Const Correctness, C++ FAQ, но там не показан один из минусов "избыточного" const
.
Пусть у нас есть структура, которая представляет собой API-объект. Содержимое этой структуры не планируется как-то изменять после создания, поэтому с первого взгляда логично, чтобы все поля были объявлены константными:
struct Widget {Но это плохо, если в коде объекты этого типа перемещаются, хранятся в векторе, и так далее.
const std::size_t radius;
const std::vector<Event> events;
const Element element;
};
Дело в том, что
const
-поля нельзя мувнуть, поэтому в записи Widget w2{std::move(w1)}
поля events
и element
скопируются.(пример на godbolt с логами)
Также константность полей часто просто не нужна - для нашей цели достаточно, чтобы константным был сам объект (или ссылка на него), а не его поля.
void Do(const Widget& widget);
BY C++95
Share with your friend now:
tgoop.com/cxx95/35