CodingStyle/C/C++/TypicalCode: различия между версиями
Материал из Etersoft wiki
Перейти к навигацииПерейти к поиску
(Новая страница: «Типовые конструкции при программировании на C++ == Пожелания к компилятору == * Разрешать…») |
|||
(не показаны 2 промежуточные версии этого же участника) | |||
Строка 2: | Строка 2: | ||
== Запрет копирования == | |||
<pre> | |||
NonCopyable( const NonCopyable& ) = delete; | |||
void operator=( const NonCopyable& ) = delete; | |||
</pre> | |||
http://habrahabr.ru/company/abbyy/blog/142595/ | |||
== Семантика перемещения == | |||
<pre> | |||
std::list<xx> getList() | |||
{ | |||
std::list<xx> lst; | |||
... | |||
return lst; | |||
} | |||
</pre> | |||
то либо делать void getList( std::list<xxx>& lst )... | |||
либо мириться с копированием.. | |||
а сейчас | |||
<pre> | |||
{ | |||
std::list<xx> lst; | |||
... | |||
return std::move(lst); | |||
} | |||
</pre> | |||
и копирования не будет | |||
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)