CodingStyle/C/C++/TypicalCode

Материал из Etersoft wiki
Перейти к: навигация, поиск

Типовые конструкции при программировании на 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)