Не удалось вычислить аргумент шаблона класса при использовании назначенных инициализаторов с инициализацией спискаC++

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

Сообщение Anonymous »

Компиляторы (GCC и Clang) выдают ошибку при использовании синтаксиса инициализации фигурных скобок с назначенными инициализаторами при инициализации экземпляра шаблона структуры.
Вот:

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

template 
struct Foo
{
const T value;
};

int main( )
{
Foo foo { .value = 5 };        // compiles
// Foo foo { .value = { 5 } }; // does not compile
// Foo foo { .value { 5 } };   // does not compile
}
Сообщение об ошибке:

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

: In function 'int main()':
:11:30: error: class template argument deduction failed:
11 |     Foo foo { .value = { 5 } };
|
Что является причиной этого? Разве в этом контексте не разрешена инициализация списка? Или причина в чем-то другом?

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

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

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

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

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

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

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