Код: Выделить всё
struct Point {
int x, y, z;
};
auto sum(Point p) -> int {
int result = 0;
template for (int c : p)
result += c;
return result;
}
Для цели поиска и инстанции for-range-declaration и составного создания expansion-statement . /> < /blockquote>
Что если бы я включил структурированные пакеты связывания, которые должны быть объявлены внутри составления составления < /em>. < /p>
Если тело расширения рассматривается как определение шаблона, это означает, что любой объект определяется в носовано, что изнаносилось, что в носовано, впервые завязываемое, в носовано, что в носовано. Поэтому добавлено:
Сущность в шаблоне, если это объект, определенная или созданная в рамках for-range-declaration или compound-statement , если это будет связано, что это будет связано, если это будет связан, что это будет связано, что это будет связано, что это будет тело (так как упаковка может быть объявлен только как шаблон)? < /p>
auto sum(Point p) -> int {
template for (auto _ : {0}) {
auto [...parts] = p;
return (... + parts);
}
// proposed P3525: Explicit Template Regions
// template {
// auto [...parts] = p;
// return (... + parts);
// }
}
< /code>
Я знаю, что многие люди, включая меня, предпочли бы первый пример, так как он более элегантный и читаемый, чем второй, который хакерский. Но я спрашиваю здесь только о достоверности этой программы.
Я что -то здесь пропустил?
Подробнее здесь: https://stackoverflow.com/questions/796 ... f-template