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)