CodingStyle/C/C++/TypicalCode: различия между версиями
Материал из Etersoft wiki
Перейти к навигацииПерейти к поиску
Строка 2: | Строка 2: | ||
== | |||
== Запрет копирования == | |||
<pre> | |||
NonCopyable( const NonCopyable& ) = delete; | |||
void operator=( const NonCopyable& ) = delete; | |||
</pre> | |||
http://habrahabr.ru/company/abbyy/blog/142595/ | |||
== Семантика перемещения == | == Семантика перемещения == |
Версия 00:05, 26 ноября 2015
Типовые конструкции при программировании на C++
Запрет копирования
NonCopyable( const NonCopyable& ) = delete; void operator=( const NonCopyable& ) = delete;
http://habrahabr.ru/company/abbyy/blog/142595/
Семантика перемещения
std::list<xx> getList() { std::list<xx> lst; ... return lst; }
то либо делать void getList( std::list<xxx>& lst )... либо мириться с копированием..
а сейчас
{ std::list<xx> lst; ... return std::move(lst); }
и копирования не будет
http://habrahabr.ru/post/174019/
Пожелания к компилятору
- Разрешать if (b) только для случаев, когда b имеет тип bool. Например, if (a > b)