Почему пакет параметров не работает, как и ожидалось в концепциях?C++

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

Сообщение Anonymous »

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

template
inline constexpr auto c = sizeof(T) + sizeof...(Args) > 1;

template
requires c // ok
void f1() {
}

template
concept C = sizeof(T) + sizeof...(Args) > 1;

template
requires C // error: Pack expansion used as argument
//        for non-pack parameter of concept.
void f2() {
}

int main() {
f1(); // ok
f2(); // error
}
см. https://godbolt.org/z/gewfoqdg9> Почему f1 () ok, но f2 () плохо образуется? Концепция не может принять пакет параметров в качестве его параметров, в то время как другие временные темаплоиды могут.

Подробнее здесь: https://stackoverflow.com/questions/797 ... n-concepts
Ответить

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

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

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

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

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