Iniciar sesión con Microsoft
Iniciar sesión o crear una cuenta
Hola:
Seleccione una cuenta diferente.
Tiene varias cuentas
Elija la cuenta con la que desea iniciar sesión.

Síntomas

Cuando se intenta declarar una plantilla de función variadic como amigo de una plantilla de clase, el compilador de C++ devolverá un mensaje de error en lugar de aceptar el código. Por ejemplo, al hacer la siguiente declaración:

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{};
};

Puede recibir el siguiente mensaje de error:

Error C2783: 'void f (C < tipos... >, B < U >)': no se pudo deducir el argumento de plantilla para 'U'

Causa

La causa es que el compilador de C++ no puede coincidir con la declaración de la función friend con una declaración existente.

Solución

Esta actualización está disponible desde el Centro de descarga de Microsoft.

Centro de descarga de Microsoft

Para obtener más información acerca de cómo descargar archivos de soporte técnico de Microsoft, haga clic en el número de artículo siguiente para ver el artículo en Microsoft Knowledge Base:

119591 Obtención de archivos de soporte técnico de Microsoft desde los servicios en línea

Microsoft analizó este archivo en busca de virus. Microsoft ha utilizado el software de detección de virus más reciente que estaba disponible en la fecha en que se publicó el archivo. El archivo se almacena en servidores seguros que ayudan a evitar cambios no autorizados en el archivo.

Requisitos previos

Esta revisión requiere Visual Studio 2015 actualización 3.

Información de reinicio

Tendrá que reiniciar el equipo después de aplicar este hotfix.

Información de reemplazo

Esta revisión no sustituye cualquier revisión lanzada anteriormente.

Información de archivo

La versión en inglés de esta revisión tiene los atributos de archivo (o atributos del archivo más reciente) mostrados en la tabla siguiente. Las fechas y horas de estos archivos se muestran en la hora Universal coordinada (UTC). Al ver la información del archivo, se convierte en hora local. Para encontrar la diferencia entre la hora UTC y la hora local, utilice la ficha Zona horaria en el elemento de Fecha y hora del Panel de control.

Nombre del archivo

Versión del archivo

Tamaño de archivo

Fecha

Hora

Plataforma

VC14-KB4096429.exe

14.0.24240

19,177,304

04/19/2018

02:32 A.M.

X86

Solución alternativa

Para evitar este problema, no declare el variadic función plantilla como amigo de una plantilla de clase.

¿Necesita más ayuda?

¿Quiere más opciones?

Explore las ventajas de las suscripciones, examine los cursos de aprendizaje, aprenda a proteger su dispositivo y mucho más.

Las comunidades le ayudan a formular y responder preguntas, enviar comentarios y leer a expertos con conocimientos extensos.

¿Le ha sido útil esta información?

¿Cuál es tu grado de satisfacción con la calidad del lenguaje?
¿Qué ha afectado a su experiencia?
Si presiona Enviar, sus comentarios se usarán para mejorar los productos y servicios de Microsoft. El administrador de TI podrá recopilar estos datos. Declaración de privacidad.

¡Gracias por sus comentarios!

×