CodingStyle/C/C++/TypicalCode: различия между версиями

Материал из Etersoft wiki
Перейти к навигацииПерейти к поиску
 
Строка 36: Строка 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)