Разрешены ли структурированные связующие пакеты в заявлениях о расширении за пределами шаблона?C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Разрешены ли структурированные связующие пакеты в заявлениях о расширении за пределами шаблона?

Сообщение Anonymous »

Недавно заявления о расширении были приняты в проект C ++ 26. Это означает, что это дает нам другой способ итерации через членов разрушительных типов, таких как «точка», определенная ниже. < /P>

Код: Выделить всё

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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»