Учитывая пример:
double values[] {2.5, -3.5, 4.5, -5.5, 6.5, -7.5};
std::vector<double> squares(std::end(values) - std::begin(values));
std::transform(std::begin(values), std::end(values), std::begin(values), std::begin(squares),
[](double x1, double x2) throw() { return x1 * x2; });
Является ли это функционально эквивалентным следующему?
[](double x1, double x2) noexcept { return x1 * x2; })
Есть ли убедительная причина, почему я должен помечать такое выражение (или подобные базовые выражения) либо модификаторами, либо в этом случае лучше оставить его и просто не заморачиваться?