Код: Выделить всё
const
Код: Выделить всё
constexpr
[*]
Код: Выделить всё
noexcept
Код: Выделить всё
noexcept
< li> e.12: используйте noExctempt при выходе из функции из -за броска невозможна или неприятно из CPP -основных руководств, что является менее гиппотетическим из CPP -основного руководства, который является менее гиппотетическим из CPP -основных руководств, что является менее гибкой, чем гипотетическим из CPP -основного руководства, который является менее гиппометичным из CPP -основного руководства, который является менее гибкой, чем гипотетической из CPP -основных
Код: Выделить всё
noexcept
У меня нет emc ++ под рукой, но я помню, что Скотт Мейерс слишком подчеркнул, что нет никакого возвращения от noexcept for fund. Когда я объявляю параметр функции как const & , я не принимаю решение о интерфейсе, которое я не смогу вернуться в будущем, потому что он сломал всех моих клиентов? Возьмите случай с функцией, которая была разработана в первые дни C ++ 11, чтобы цикть в стандартном контейнере с доступом к чтению. Полагаю, можно было бы спроектировать его как это < /p>
Код: Выделить всё
void work(auto const& r) {
for (auto const& e : r) {
…
}
}
Но с C ++ 20 (или даже C ++ 14+range-v3), это уже не так, даже не в «обычном» сценарии, потому что можно учитывать, что вызывы не могут перенести контейнеры , но . Важно отметить, что эти представления могут потребоваться, чтобы мутировать, когда они перевернуты, как в случае для Filter_view :
Код: Выделить всё
std::vector v;
work(v); // ok
work(v | std::views::transform(std::identity{})); // ok
work(v | std::views::filter(std::identity{})); // compile-time failure
Решение, , по крайней мере, в этом случае , это то, что работа должна принимать Auto && вместо Auto const & Code>. Две строки, которые были // OK , в первую очередь, поэтому выясняется, что древнее решение об объявлении Porm S R параметр Auto const & на самом деле не было клятвой кровавой кровавой кровавой кровавой кровавой.
Код: Выделить всё
constexpr
Код: Выделить всё
const
Подробнее здесь: https://stackoverflow.com/questions/797 ... -i-const-a