Причини
Під час спроби оголосити variadic шаблон функції, як один клас шаблон, C++ компілятор повернутися повідомлення про помилку, а не приймає код. Наприклад, коли ви таке оголошення:
template<typename T>
struct B { };
template<typename... Types>
struct C { };
template<typename... Types, typename U>
void f(C<Types...>, B<U>)
{
}
template<typename T>
class A {
template<typename... Types, typename U>
friend void f(C<Types...>, B<U>);
};
int main()
{
f(C<int>{}, B<int>{});
A<int> a{};
};
Може з'явитися таке повідомлення про помилку:
Помилка C2783: 'недійсним f (C < типи.... >, B < U >)': може не вивести аргументом шаблон 'U'
Причина
Причиною є в тому, що компілятор C++ не відповідають функцію одного з наявних Декларація декларації.
Вирішення
Це оновлення, доступне з веб-сайту Центру завантажень Microsoft.
Центр завантажень Microsoft
Щоб отримати додаткові відомості про завантаження файлів підтримки Microsoft, клацніть номер статті в базі знань Microsoft:
119591 Як отримати файли технічної підтримки Microsoft від онлайнових служб
Microsoft перевірив цей файл на наявність вірусів. Корпорація Майкрософт використала останню версію програмного забезпечення для виявлення вірусів, що доступне на час публікації файлу. Файл зберігається на добре захищених серверах, які запобігають внесенню до файлу будь-яких несанкціонованих змін.
Попередні вимоги
Це виправлення, потрібно Visual Studio 2015 оновлення 3.
Відомості про перезавантаження
Можливо, доведеться перезавантажити комп'ютер, після застосування цього виправлення.
Відомості про заміну
Це виправлення не замінює будь-які попередні випуски виправлень.
Відомості про файли
Англійська версія цього виправлення на комп'ютері має атрибути файлів (або новіші атрибути файлів), подані в нижченаведеній таблиці. Значення дати й часу для цих файлів наведено за всесвітнім координованим часом (UTC). Переглядаючи відомості про файл, час конвертується у місцевий час. Щоб визначити різницю між UTC і місцевим часом, використайте вкладку Часовий пояс у Дата й час на панелі керування.
Ім'я файлу |
Версія файлу |
Розмір файлу |
Дата |
Час |
Платформа |
VC14-KB4096429.exe |
14.0.24240 |
19,177,304 |
04/19/2018 |
02:32 AM |
X86 |
Виправлення помилок
Щоб вирішити цю проблему, не оголосити на variadic функції шаблон як шаблон клас друга.