|
Este artículo proviene de un motor de traducción automática. Mueva el puntero sobre las frases del artículo para ver el texto original. Más información.
|
Traducción
Original
|
Lo nuevo de Visual C++ en Visual Studio 2012
Nota
|
|---|
|
|
Biblioteca de plantillas estándar
-
Compatibilidad para nuevo Encabezados de STL: <atomic>, <chrono>, <condition_variable>, <filesystem>, <future>, <mutex>, <ratio>, y <thread>. -
Para optimizar el uso de los recursos de memoria, los contenedores son menores ahora. Por ejemplo, en modo de lanzamiento x86 con la configuración predeterminada, std::vector ha encogido a partir de 16 bytes en Visual Studio 2010 a 12 bytes en Visual Studio 2012, y std::map ha encogido a partir de 16 bytes en Visual Studio 2010 a 8 bytes en Visual Studio 2012. -
Permitida pero no requerido por el estándar C++11, se han implementado los iteradores de SCARY. Para obtener más información, vea el documento Asignación y inicialización de iterador de SCARY de PDF.
Otras mejoras C++11
-
Intervalo- basado en los bucles. Puede escribir bucles más eficaces que funcionen con matrices, contenedores STL, y las colecciones de Windows en tiempo de ejecución en el formulario for (for-range-declaration :expression ). Esto forma parte del lenguaje básica. Para obtener más información, vea Instrucción for basada en intervalo (C++). -
Lambdas estado, que son los bloques de código que comienza con un presentador vacío lambda [] y no capturan ninguna variable local, es ahora implícitamente convertible a punteros a función a standard C++11. Para obtener más información, vea Expresiones lambda en C++. -
Compatibilidad de las enumeraciones de Ámbito. La enum- clave de C++ enum class se admite ahora. El código siguiente muestra cómo esta enum- clave difiere del comportamiento anterior de enum. enum class Element { Hydrogen, Helium, Lithium, Beryllium }; void func1(Element e); func1(Hydrogen); // error C2065: 'Hydrogen' : undeclared identifier func1(Element::Helium); // OK
-
Modelo XAML-basado natural de la interfaz de usuario. Para las aplicaciones de Tienda Windows, puede utilizar el modelo XAML- basado nuevo natural de la interfaz de usuario. Para obtener más información, vea Tutorial: Cree la primera aplicación de almacén de Windows mediante C++. -
Extensiones de componente de Visual C++. Estas extensiones simplifican el consumo de objetos de Windows en tiempo de ejecución, que son una parte necesaria de las aplicaciones de Tienda Windows. Para obtener más información, vea Guía de orientación para las aplicaciones del almacén de Windows mediante C++ y Referencia del lenguaje Visual C++ (C++/CX) -
Juegos de DirectX. Puede desarrollar juegos de vinculación mediante el nuevo compatibilidad de DirectX para las aplicaciones de Tienda Windows. Para obtener más información, vea Cree el primer juego de almacén de Windows mediante DirectX y Laberinto de mármol que se convierte, Windows almacena el juego en C++ y DirectX. -
Las aplicaciones de Interoperabilidad de XAML/DirectX.Tienda Windows que ahora utilizan XAML y DirectX interactúan eficazmente. -
Windows en tiempo de ejecución Desarrollo de DLL del componente. El desarrollo de DLL del componente crea el entorno de Windows en tiempo de ejecución extensible. Para obtener más información, vea Guía de orientación para las aplicaciones del almacén de Windows mediante C++ y Crear componentes de tiempo de ejecución de Windows en C++.
-
Auto-vectorizer. El compilador analiza bucles en el código y, cuando sea posible, emite las instrucciones que utilizan los registros y las instrucciones vectorial que están presentes en todos los procesadores modernos. Esto hace que los bucles se ejecutan más rápidamente. (Las instrucciones de procesador se denominan SSE, para las extensiones de Streaming SIMD). No tiene que habilitar o solicitar esta optimización porque se aplica automáticamente. -
Auto-parallelizer. El compilador puede analizar bucles en el código y emitir instrucciones que mejoran los cálculos por los núcleos o de varios procesadores. Esto puede hacer que los bucles se ejecutan más rápidamente. Debe solicitar esta optimización porque no está habilitada de forma predeterminada. En muchos casos, ayuda a incluir #pragma loop(hint_parallel(N)) en el código inmediatamente antes de bucles que desee paralelizado. Auto - vectorizer y automático - parallelizer pueden funcionar juntos para mejorar los cálculos a través de varios núcleos y el código en cada base utilizan los registros vectoriales. Para obtener más información, vea Errores y advertencias de Auto-Parallelization.
-
Destino Windows XP cuando compile el código de C++. Puede utilizar el compilador y las bibliotecas de Visual C++ como destino de Windows XP y Windows Server 2003. Para obtener más información, vea Configurar 11 programas de C++ para Windows XP.
C++ aceleró el paralelismo masivo (AMP)
C++ aceleró Massive Paralelismo (AMP) que la depuración y la generación de perfiles
Mejoras paralelos generales de programación
-
Amplio tarea- basándose en el modelo de programación que admite asynchrony y continuaciones. Para obtener más información, vea Paralelismo de tareas (Runtime de simultaneidad). -
Algoritmos paralelos , compatibles con el paralelismo de la bifurcación- unión (parallel_for, parallel_for con afinidad, parallel_for_each, parallel_sort, parallel_reduce, parallel_transform). -
contenedores Simultaneidad-seguros, que proporcionan versiones seguras de las estructuras de datos de std como priority_queue, queue, vector, y map. -
Biblioteca de agentes asincrónicos , que los desarrolladores pueden utilizar para expresar las canalizaciones de flujo de datos que se descomponen naturalmente en unidades simultáneas. -
Un programador y un administrador de recursos personalizables para facilitar la composición suavizado de modelos en esta lista. Vea Programador de tareas (Runtime de simultaneidad).
Mejoras paralelos de depuración generales
-
Compatibilidad de las plantillas de Visual Studio. Ahora puede utilizar la tecnología de las plantillas de Visual Studio el proyecto y las plantillas de elementos de C++ para crear. -
Carga asincrónica de la solución. Ahora los proyectos son partes fundamentales cargan de asynchronously-the de solución primera - en esa puede empezar a trabajar más rápidamente. -
Implementación automatizada para la depuración remota. La implementación de los archivos para la depuración remota en Visual C++ se ha simplificado. La opción de implementar en el menú contextual del proyecto copia automáticamente al equipo remoto los archivos que se especifican en las propiedades de configuración de depuración. Copiar los archivos en el equipo remoto se requiere manualmente no más. Para obtener más información, vea Depuración remota de un proyecto compilado localmente. -
C++/CLI IntelliSense. C++/CLI ahora es totalmente compatible con IntelliSense. Las características de IntelliSense como información rápida, Ayuda de parámetros, miembros enumerados, y Finalización auto funcionan ahora para C++/CLI. Además, el otro IntelliSense y mejoras del IDE enumerados en este documento también funcionan para C++/CLI. -
Información sobre herramientas más avanzadas de IntelliSense. La información sobre herramientas de la información de C++ IntelliSense Quick ahora muestran información más enriquecida de estilo de los Comentarios de documentación XML. Si está utilizando la API de a biblioteca- para el ejemplo, C++ Amp- con Comentarios de documentación XML, la información sobre herramientas de IntelliSense muestra más información que simplemente la declaración. Además, si el código tiene Comentarios de documentación XML, la información sobre herramientas de IntelliSense mostrará información más completa. -
Construcciones de código de C++. En el código estructural está disponible para el modificador, si- otro, para el bucle, y otras construcciones de código básico, en la lista desplegable de los miembros de la lista. Seleccione un fragmento de código de la lista para incrustarlo en el código y después para completar la lógica necesaria. También puede crear dispone de fragmentos de código personalizados para su uso en el editor. Para obtener más información, vea Fragmentos de código. -
Mejoras de Listas de miembros. La lista desplegable de los miembros de la lista aparece automáticamente cuando escribe código en el editor de código. Los resultados se filtran, solo para mostrar miembros pertinentes mientras se escribe. Puede controlar la clase de la lógica de filtrado que sea utilizada por el miembro Lista- en el cuadro de diálogo opciones en Editor de texto, C/C++, Opciones avanzadas. Para obtener más información, vea Utilizar IntelliSense. -
Color semántica. Los tipos, las enumeraciones, las macros, y otros tokens de C++ tienen ahora coloreado de forma predeterminada. Para obtener más información, vea Escribir código en el editor de código y texto. -
El resaltado de la referencia. La selección de un símbolo ahora resalta todas las instancias de símbolos en el archivo actual. Presione la flecha de Ctrl+Shift+Up o la flecha de Ctrl+Shift+Down para desplazarse entre las referencias resaltado. Puede activar esta característica desactivado en el cuadro de diálogo opciones, en Editor de texto, C/C++, Opciones avanzadas.
Análisis de código estático
-
Nueva ayuda de las advertencias de simultaneidad evita los errores de simultaneidad asegurándose de que usa las disciplinas correctas de bloqueo en programas multiproceso de C/C++. El analizador detecta infracciones del contrato condiciones de carrera, inversiones del orden de bloqueo, el bloqueo posibles del llamador y destinatario, las operaciones no coincidentes de la sincronización, y otros errores de simultaneidad. -
Puede especificar reglas de C++ que desea aplicar a las ejecuciones de análisis de código con los conjuntos de reglas. -
En la ventana Análisis de código, puede insertar en el código fuente un pragma que suprime una advertencia seleccionado. -
Puede mejorar la exactitud e integridad de análisis de código estático utilizando la nueva versión de Lenguaje de anotación de código fuente de Microsoft (SAL) para describir cómo una función utiliza parámetros, de las suposiciones que crea sobre ellas, y las garantías que crea cuando finaliza. -
Compatibilidad con proyectos de la C++.
Marco actualizado de la prueba unitaria
Gráficos de dependencias de arquitectura
Explorador de arquitectura
Cobertura de código
Nota