Пакет параметров вызывает «неинициализированную локальную переменную» в Visual Studio - PullRequest
1 голос
/ 06 мая 2019

Следующий код хорошо компилируется в gcc и clang, но выдает ошибку C4700 «неинициализированная локальная переменная« используется »в Visual Studio 2015 и более ранних версиях:

template<int T>
class V
{
public:
    int v[T];

    V() = default;
    template<typename ...A>
    V(A... args):
        v{args...}
    {}
};

int main()
{
    V<2> a(2, 2);
    V<2> b = a;
    return 0;
}

Если добавить тело в конструктор(удалив = default и добавив {}) ошибка исчезнет.Я не могу найти ничего, что предписывает такое поведение в спецификации.Это ошибка в компиляторе Visual C ++ или я что-то упускаю в спецификации?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...