CodingStyle/C/C++/TypicalCode: различия между версиями
Материал из Etersoft wiki
Перейти к навигацииПерейти к поиску
(не показана 1 промежуточная версия этого же участника) | |||
Строка 2: | Строка 2: | ||
== | |||
== Запрет копирования == | |||
<pre> | |||
NonCopyable( const NonCopyable& ) = delete; | |||
void operator=( const NonCopyable& ) = delete; | |||
</pre> | |||
http://habrahabr.ru/company/abbyy/blog/142595/ | |||
== Семантика перемещения == | == Семантика перемещения == | ||
Строка 29: | Строка 36: | ||
http://habrahabr.ru/post/174019/ | http://habrahabr.ru/post/174019/ | ||
== Умный указатель == | |||
http://habrahabr.ru/post/191018/ | |||
== Пожелания к компилятору == | == Пожелания к компилятору == | ||
* Разрешать if (b) только для случаев, когда b имеет тип bool. Например, if (a > b) | * Разрешать if (b) только для случаев, когда b имеет тип bool. Например, if (a > b) |
Текущая версия на 01:25, 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/
Умный указатель
http://habrahabr.ru/post/191018/
Пожелания к компилятору
- Разрешать if (b) только для случаев, когда b имеет тип bool. Например, if (a > b)