|
|
|
|
|
|
|
|
|
|
|
|
|
13.10. Советы |
259 |
Никогда не выполняйте чтение объекта после |
применения к |
нему |
std |
: :move () или std:: forward (); |
§13.2.2. |
|
|
|
|
|
|
|
|
|
Предпочитайте span |
интерфейсу, |
состоящему |
|
из указателя |
и количе |
ства |
элементов;§13.3; [CG:F.24]. |
|
|
|
|
|
|
|
|
|
|
|
Используйте |
array |
там, |
где |
вам |
нужна |
|
последовательность |
с |
cons texpr размером; §13.4.1. |
|
|
|
|
|
|
|
|
|
|
|
Предпочитайте array встроенным массивам; §13.4.1; [CG:SL.con.2]. |
Используйте |
Ьitset, если вам нужны N битов, |
и N не обязательно явля |
ется |
числом битов |
во |
встроенном целочисленном типе; §13.4.2. |
|
|
Не |
злоупотребляйте типами pair и tuple; |
именованные |
структуры |
ча |
сто |
приводят к более |
удобочитаемому коду; |
§13.4.3. |
|
|
|
|
|
При |
использовании pair |
используйте |
вывод аргументов |
шаблона |
или |
make_pair (),чтобы избежать излишней |
спецификации типов;§13.4.3. |
При |
использовании |
tuple |
используйте |
вывод шаблонных |
аргумен |
тов |
|
и make_ tuple |
(), чтобы избежать |
излишней спецификации типов; |
§13.4.3; [CG:T.44]. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Предпочитайте variant |
явному |
применению |
union; |
§13.5.1; [СО: |
С.181]. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Используйте |
аллокаторы |
для предотвращения |
фрагментации памяти; |
§13.6. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Выполняйте |
хронометрирование ваших программ, |
прежде чем делать |
какие-либо утверждения об их эффективности; |
§13.7. |
|
|
|
|
Используйте |
для отчета об измерении |
времени |
приведение duration_ |
cast к соответствующими единицам измерения |
времени; |
§13.7. |
|
|
При |
указании dura tion |
используйте |
правильные |
единицы |
измерения |
времени; §13.7. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Используйте mem_ f n ( ) или |
лямбда-выражения |
для |
создания |
функцио |
нальных объектов, |
которые |
могут |
вызывать функции-члены, |
когда |
|
вы |
полняется вызов с |
использованием традиционной записи |
вызова функ |
ции; §13.8.2. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Используйте |
function, когда вам необходимо |
хранить нечто, что |
|
мо |
жет |
быть вызвано; |
§13.8.3. |
|
|
|
|
|
|
|
|
|
|
|
|
Можно писать код, явно зависящий от |
свойств типов; §13.9. |
|
|
|
Предпочитайте концепты |
свойствам типов |
и применению еnаЫе |
|
if, |
где |
это возможно; §13.9. |
|
|
|
|
|
|
|
|
|
|
|
|
|
Используйте |
псевдонимы |
и |
предикаты типов |
для |
упрощения записи; |
§13.9.1, §13.9.2. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|