Почему пакет параметров шаблона функции C++ в список параметров шаблона класса не удался?C++

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

Сообщение Anonymous »

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

#include 
#include 
#include 
#include 
#include 

// template
template
struct Foo {
public:
float foo = 10.f;
};

template 
void another() {
printf("another %d\n", C);
}
template
void bar(T&& b) {
static_assert(sizeof...(Args) == 0);
Foo{};
another();
}

struct BB {
int c = 10;
};
int main(){
constexpr int8_t a = 10;
Foo{};
Foo{};
float c = 11;
bar(c + 11);
}
Я получил ошибку для строки Foo{};:

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

:22:16: error: type/value mismatch at argument 1 in template parameter list for 'template struct Foo'
22 |     Foo{};
|                ^
:22:16: note:   expected a constant of type 'int', got 'Args'
:22:16: note: so any instantiation with a non-empty parameter pack would be ill-formed
Почему другой(); не завершится ошибкой?

Подробнее здесь: https://stackoverflow.com/questions/792 ... ist-failed
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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