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)