Visual Studio 2012 RC Visual C++의 새로운 기능
이 문서에서는 새로운 기능과 향상 된 기능 소개 Visual Studio 2012의 Visual C++.
기타 추가 기능에 대 한 자세한 내용은 Visual Studio 2012을 참조 하십시오 Visual Studio 2012 의 새로운 기능.
[!참고]
통합된 개발에 대 한 작성 하는 개발자를 위한 환경 (IDE)을 제공 합니다. Windows 스토어 응용 프로그램을 참조 하십시오. 2012 Visual Studio를 사용 하 여 Windows 저장소 개발 응용 프로그램.
향상 C + + 11 표준을 지원 합니다.
표준 템플릿 라이브러리
Support for new STL headers: <atomic>, <chrono>, <condition_variable>, <filesystem>, <future>, <mutex>, <ratio>, and <thread>.
메모리 리소스 사용량을 최적화 하기 위해 컨테이너 이제 작습니다.예를 들어, x 86에서 기본 설정으로 모드를 해제 std::vector 에서 16 바이트를 축소 한 Visual Studio 2010 12 바이트 Visual Studio 2012, 및 std::map 에서 16 바이트를 축소 한 Visual Studio 2010 8 바이트 Visual Studio 2012.
C가 필요한 허용 하지 + + 11 표준 무서운 반복기를 구현 했다고 합니다.자세한 내용은 PDF 문서 무서운 반복기 할당 및 초기화.
다른 C + + 11 강화
범위 기반 for 루프. 배열 STL 컨테이너 작업 보다 강력한 루프를 작성할 수 있습니다 및 Windows 런타임 컬렉션 형태로 for (for-range-declaration :expression ). 이 핵심 언어 지원의 일부입니다.자세한 내용은 범위 기반 for 문(C++)을 참조하십시오.
상태 비저장 람다에 속해 있는 빈 람다 introducer 시작 하 고 로컬 변수가 없습니다 캡처 코드 블록은 필요에 따라 C의 함수 포인터에 암시적으로 변환 될 + + 11 표준.자세한 내용은 C + +에서 람다 식을 참조하십시오.
범위가 지정된 된 열거형을 지원합니다. C + + enum class 열거형 키 이제 지원 합니다.다음 코드는이 enum 키에서 이전 차이점 보여줍니다 enum 동작 합니다.
enum class Element { Hydrogen, Helium, Lithium, Beryllium }; void func1(Element e); func1(Hydrogen); // error C2065: 'Hydrogen' : undeclared identifier func1(Element::Helium); // OK
Windows 스토어응용 프로그램 개발 지원
네이티브 XAML 기반 UI 모델입니다. 에 대 한 Windows 스토어 응용 프로그램은 네이티브 XAML 기반 UI 모델을 사용할 수 있습니다.자세한 내용은 자습서: c + +를 사용 하 여 첫 번째 Windows 저장소 응용 프로그램을 만드는.
Visual C++ 구성 요소 확장 합니다. 이러한 확장의 소비를 간단 하 게 Windows 런타임 는 필요에 따라 개체의 일부가 Windows 스토어 응용 프로그램.자세한 내용은 c + +를 사용 하 여 Windows 저장소에 대 한 로드맵 응용 프로그램 및 Visual C++ 언어 참조 (C + + / CX)
DirectX 게임입니다. 게임에 대 한 새로운 DirectX 지원을 사용 하 여 노력을 개발할 수 있습니다 Windows 스토어 응용 프로그램입니다.자세한 내용은 만들기 첫 번째 Windows 저장소 게임 Directx를 사용 하 여 및 Windows 저장소 게임 c + +과 DirectX 개발 대리석 미로.
**XAML/DirectX interop.**Windows 스토어 이제 Directx와 XAML을 사용 하는 응용 프로그램 상호 작용 효율적으로 합니다.
Windows 런타임구성 요소 DLL 개발 합니다. 구성 요소 DLL 개발 하는 Windows 런타임 환경을 확장할 수 있습니다.자세한 내용은 c + +를 사용 하 여 Windows 저장소에 대 한 로드맵 응용 프로그램 및 c + +에서 Windows 런타임 컴포넌트 만들기.
Visual C++ 컴파일러 및 링커
자동 벡터기입니다. 컴파일러 루프 코드에서를 분석 하 고 가능한 경우 벡터 레지스터를 사용 하는 지침과 현대의 모든 프로세서에 있는 명령도 내보냅니다.이 루프를 실행 속도가 빨라질 수 있습니다.(프로세서 명령에 대 한 SSE로 알려진 스트리밍 SIMD 확장).설정 하거나 자동으로 적용 되기 때문에이 최적화를 요청할 필요가 없습니다.
자동-parallelizer입니다. 컴파일러 루프 코드에서를 분석 하 고 계산에 다중 핵심 또는 프로세서가 확산 명령을 생성할 수 있습니다.이 루프의 실행 속도가 빨라질 수 있습니다.기본적으로 가능 하기 때문에이 최적화를 요청 해야 합니다.대부분의 경우를 포함 하는 데 도움이 된 #pragma loop(hint_parallel(N)) 원하는 병렬화 된 루프 바로 전에 코드에서.
자동 벡터화 및 자동 parallelizer 여러 코어에 분산 되어 계산 하 고 각 핵심 코드는 벡터 레지스터를 사용 하 여 함께 작업할 수 있습니다.자세한 내용은 자동 병렬 처리 기능 오류 및 경고을 참조하십시오.
새로운 기능Visual Studio 2012 Update 1
C + + 코드를 빌드할 때 대상 Windows XP.
Visual C++ 컴파일러 및 라이브러리 대상 Windows XP 및 Windows Server 2003에 사용할 수 있습니다.자세한 내용은 Windows XP용 C++ 11 프로그램 구성을 참조하십시오.
병렬 프로그래밍 지원
C + + 대용량 병렬 처리 (AMP) 가속
C + + AMP는 일반적으로 개별 그래픽 카드의 gpu가 장착 된 데이터 병렬 하드웨어를 활용 하 여 c + + 코드의 실행 속도 높입니다.다차원 배열, 인덱싱, 메모리 전송, 바둑판식으로 배열 및 수학 함수 라이브러리를 c + + AMP 프로그래밍 모델을 포함합니다.C + + AMP 언어 확장 및 제한 컴파일러를 사용 하 여 데이터에서 CPU는 GPU와 백에 이동 방법 제어할 수 있습니다.자세한 내용은 C++ AMP(C++ Accelerated Massive Parallelism)을 참조하십시오.
C + + 디버깅 및 프로 파일링 대규모 병렬 (AMP) 가속
디버깅할 수 있습니다. C + + AMP를 사용 하 여 GPU를 대상으로 하는 응용 프로그램의 디버깅 환경을 디버깅 같은 다른 c + + 응용 프로그램에 대 한 것입니다.여기에 언급 된 추가 디버깅 하는 새 병렬이 포함 됩니다.자세한 내용은 GPU 코드 디버깅를 참조하십시오.
프로 파일링합니다. 여기 이제 c + + AMP 및 기타 Direct3D 기반 프로그래밍 모델을 기반으로 GPU 동작에 대 한 지원을 프로필이 됩니다.자세한 내용은 GPU 작업 그래프를 참조하십시오.
일반 병렬 프로그래밍 향상
다중 코어 및 다중 코어 아키텍처에 이동 하는 하드웨어와 개발자가 단일 코어의 클럭 속도가 점차 더 이상 의존할 수 없습니다.병렬 프로그래밍 지원에는 동시성 런타임 개발자는 이러한 새로운 아키텍처를 활용할 수 있습니다.
Visual Studio 2010, 같은 강력한 c + + 병렬 처리 라이브러리는 병렬 패턴 라이브러리 정교한 데이터 흐름 파이프라인을 표현 하 여 동시성을 활용 하도록 하는 기능과 함께 도입 되었습니다.Visual Studio 2012패턴의 병렬에 대 한 다양 한 지원, 성능 향상, 더 많은 컨트롤을 제공 하도록 확장 되었습니다 이러한 라이브러리 개발자에 게 가장 필요 합니다.다양 한 제공 이제 사용할 수 있습니다.
숙지 및 연속 지 원하는 다양 한 작업 기반 프로그래밍 모델.자세한 내용은 작업 병렬 처리(동시성 런타임)을 참조하십시오.
병렬 알고리즘, which support fork-join parallelism (parallel_for, parallel_for with affinity, parallel_for_each, parallel_sort, parallel_reduce, parallel_transform).
동시성이 컨테이너을 스레드로부터 안전한 버전을 제공 std 데이터 구조와 같은 priority_queue, queue, vector, 및 map.
비동기 에이전트 라이브러리, 개발자 익스프레스 자연스럽 게 동시 단위로 분해 하는 데이터 흐름 파이프라인에 사용할 수 있습니다.
부드러운 컴퍼지션이이 목록에서 패턴을 용이 하 게 하는 사용자 지정 가능한 스케줄러와 리소스 관리자입니다.자세한 내용은 작업 스케줄러(동시성 런타임)를 참조하십시오.
일반 병렬 디버깅 기능 향상
이외에 병렬 작업 창 및 병렬 창 Visual Studio 2012 새 제공 병렬 조사식 창 모든 스레드 및 프로세스, 식의 값을 검사 하 고 정렬 및 필터링 결과에 수행할 수 있도록 합니다.창을 확장 하려면 직접 시각화 도우미를 사용할 수 있습니다 및 새로운 다중 프로세스 지원의 모든 도구 창을 통해 활용할 수 있습니다.자세한 내용은 방법: 병렬 조사식 창 사용을 참조하십시오.
IDE
Visual Studio IDE의 도구에서 c + +를 코딩할 때 보다 생산성을 높일 수 있도록 획기적으로 개선 했습니다.IDE의 향상 된 기능에 대 한 자세한 내용은 참조 하십시오 Visual Studio 2012의 제품 중요 정보.
Visual Studio 템플릿을 지원 합니다. 이제 만든 c + + 프로젝트 템플릿과 항목 템플릿은 Visual Studio 템플릿 기술과 사용할 수 있습니다.
비동기 솔루션 로드 합니다. 프로젝트는 비동기적으로 로드 되어 이제-솔루션의 주요 부분 첫 번째-더 빠르게 작업을 시작할 수 있도록 합니다.
원격 디버깅에 대 한 배포를 자동화 합니다. Visual C++ 원격 디버깅에 대 한 파일의 배포를 단순화 했습니다.배포 옵션 프로젝트 상황에 맞는 메뉴에는 디버깅 구성 속성에 지정 된 파일에서 원격 컴퓨터에 자동 복사 됩니다.원격 컴퓨터에 파일을 수동으로 복사 하는 더 이상입니다.자세한 내용은 로컬에서 빌드한 프로젝트의 원격 디버깅을 참조하십시오.
C + + CLI IntelliSense. C + + CLI 전체 IntelliSense 지원 되었습니다.IntelliSense 요약 정보, 매개 변수 도움말, 구성원 목록 및 자동 완성 이제 C + 같은 기능 + CLI.또한이 문서에 나열 된의 기타 IntelliSense 및 IDE 향상도 C + 작동 + CLI.
다양 한 IntelliSense 도구를 설명 합니다. 이제 c + +, IntelliSense, 요약 정보 도구는 다양 한 XML 문서 주석에 스타일 정보가 표시 됩니다.라이브러리에서 API를 사용 하는 경우 — 예를 들어, c + + AMP-XML 문서 주석이 있는 다음 IntelliSense 도구 설명이 선언 바로 보다 더 많은 정보를 보여 줍니다.또한 코드에 XML 문서 주석이 있는 경우 IntelliSense 도구는 다양 한 정보가 표시 됩니다.
C + + 코드 구문입니다. 스 켈 레 톤 코드 스위치, if-else, 루프 및 멤버 목록 드롭다운 목록에서 다른 기본 코드 구문을 사용할 수 있습니다.코드 조각을 코드에 삽입 하 고 필요한 논리를 입력 하려면 목록에서 선택 합니다.편집기에서 사용자 지정 말의 사용에 대 한 코드를 만들 수도 있습니다.자세한 내용은 코드 조각을 참조하십시오.
목록 구성원 향상입니다. 멤버 목록 드롭다운 목록에서 코드 편집기에 코드를 입력할 때에 자동으로 나타납니다.입력과 관련 된 구성원만 표시 되도록 결과가 필터링 됩니다.멤버 목록에서 사용 되는 필터링 논리의 종류를 제어할 수 있습니다-에서 옵션 대화 상자에서 텍스트 편집기, C/c + +, 고급.자세한 내용은 IntelliSense 사용을 참조하십시오.
색 지정 의미 합니다. 이제 형식, 열거형, 매크로 및 기타 c + + 토큰 색상화 기본적으로 있습니다.자세한 내용은 코드 및 텍스트 편집기에서 코드 작성을 참조하십시오.
참조를 강조 표시 합니다. 지금 기호를 선택 하면 현재 파일에서 기호의 모든 인스턴스가 강조 표시 됩니다.Ctrl + Shift + 위쪽 화살표 또는 Ctrl + Shift + 아래쪽 화살표 사이에서 강조 표시 된 참조를 이동 하려면 키를 누릅니다.에서는이 기능을 해제할 수 있습니다는 옵션 대화 상자에서 텍스트 편집기, C/c + +, 고급.
응용 프로그램 수명 주기 관리 도구입니다.
정적 코드 분석
C + +에 대 한 정적 분석 풍부한 오류 컨텍스트 정보를 더 이상 분석 규칙을 제공 하도록 업데이트 되었습니다 및 더 나은 분석 결과.새 코드 분석 창에서 키워드, 프로젝트 및 심각도 따라 메시지를 필터링 할 수 있습니다.메시지 창에서 선택 하는 경우 메시지 위치 트리거 코드 줄을에서 코드 편집기에서 강조 표시 됩니다.특정 c + + 경고 메시지 경고에 이어지는 실행 경로 표시 하는 소스 줄 보여 줍니다. 특정 경로 사용 하는 이유 및 결정 사항을 강조 표시 됩니다.
코드 분석의 대부분의 버전에 포함 된 Visual Studio 2012.전문가 및 프리미엄에서 최종 버전에서 모든 규칙이 포함 되어 있습니다.Express 버전에 대 한 Windows 8 및 Windows Phone 가장 중요 한 경고가 포함 됩니다.코드 분석 Express edition에서 웹의 포함 되지 않습니다.
다른 코드 분석 향상은 다음과 같습니다.
새로운 동시성 경고 함으로써 올바른 잠금 분야 다중 스레드 C/c + + 프로그램에서 사용 하 고 있는지 동시성 버그를 방지할 수 있습니다.분석기는 잠재적인 경합 상태, 잠금 순서 inversions, 호출자/호출 수신자 잠금 계약 위반, 일치 하지 않는 동기화 작업 및 다른 동시성 버그를 검색합니다.
코드 분석 실행을 사용 하 여 적용 하려는 c + + 규칙을 지정할 수 있습니다 규칙 설정.
에 코드 분석 창에서 삽입할 소스 코드에는 선택한 경고를 무시 하는 pragma입니다.
새 버전을 사용 하 여 정확성과 완전성의 정적 코드 분석을 향상 수 있는 Microsoft 소스 코드 주석 언어 (SAL) 함수 매개 변수, 알아 있도록 가정 및 종료 될 때에 게 보장 사용 하는 방법에 대해 설명 합니다.
C + + 프로젝트에 대해 64 비트를 지원 합니다.
코드의 품질을 개선 하는 방법에 대 한 자세한 내용은 코드 분석 도구를 사용하여 응용 프로그램 품질 분석.
업데이트 된 단위 테스트 프레임 워크
새 c + + 단위 테스트 프레임 워크를 사용 하 여 Visual Studio c + + 단위 테스트를 작성 합니다.배치 하 여 기존 c + + 솔루션에 새 단위 테스트 프로젝트를 추가 c + + 단위 테스트 프로젝트 템플릿 아래는 Visual C++ 범주에 있는 새 프로젝트 대화 상자.단위 테스트에서 생성 된 작성을 시작 TEST_METHOD 코드 스텁에서의 Unittest1.cpp 파일입니다.테스트 코드를 작성 하는 경우 솔루션을 빌드하십시오.테스트를 실행할 때 열기는 단위 테스트 탐색기 선택 창 보기, 기타 Windows, 단위 테스트 탐색기, 다음 원하는 테스트 사례에 대 한 바로 가기 메뉴에서 선택 하 고 선택한 테스트를 실행할.테스트 실행이 끝나면 테스트 결과 및 자세한 스택 추적 정보를 같은 창에서 볼 수 있습니다.단위 테스트를 사용하여 코드 확인 및 Windows 스토어 앱에 대한 단위 테스트 만들기 및 실행을 참조하십시오.
아키텍처 종속성 그래프
코드를 더 잘 이해 하려면 이진, 클래스, 네임 스페이스에 대 한 종속성 그래프를 생성 하 고 파일을 솔루션에 포함할 이제.메뉴 모음에서 선택 아키텍처, 종속성 그래프 생성, 다음 솔루션 또는 포함 파일에 대 한 종속성 그래프를 생성 합니다.그래프 생성이 완료 되 면 각 노드를 확장 하 여이 탐색, 노드 간에 이동 하 여 종속 관계를 학습 하 선택 하 여 소스 코드를 찾아 콘텐츠 보기 노드에 대 한 바로 가기 메뉴입니다.바로 가기 메뉴에서 포함 파일에 대 한 종속성 그래프를 생성 하는 *.cpp 소스 코드 파일 또는 *.h 헤더 파일을 선택 포함 파일의 그래프를 생성.자세한 내용은 종속성 그래프에서 코드 종속성 시각화를 참조하십시오.
아키텍처 탐색기
아키텍처 탐색기를 사용 하 여 자산을 c + + 솔루션, 프로젝트 또는 파일을 탐색할 수 있습니다.메뉴 모음에서 선택 아키텍처, Windows, 아키텍처 탐색기.원하는, 예를 들어, 노드를 선택할 수 있습니다 클래스 뷰.이 경우 도구 창의 오른쪽 네임 스페이스의 목록으로 확장 됩니다.네임 스페이스를 선택 하면 새 열에이 네임 스페이스에 클래스, 구조체 및 열거형 목록을 보여 줍니다.이러한 자산을 탐색 하거나 왼쪽 끝에 다른 쿼리를 시작 하는 열에 돌아가 계속 수 있습니다.자세한 내용은 아키텍처 탐색기로 코드 찾기를 참조하십시오.
코드 검사
코드 검사를 계측할 바이너리 런타임 시 동적으로 업데이트 되었습니다.구성 오버 헤드가 줄어듭니다 하 고 더 나은 성능을 제공 합니다.C + + 응용 프로그램에 대 한 단위 테스트에서 코드 검사 데이터를 수집할 수도 있습니다.단위 테스트 실행 방법에 대 한 자세한 내용은 단위 테스트 프레임 워크 섹션을이 문서를 참조 하십시오.C + + 단위 테스트를 생성 한 경우 사용할 수 있습니다 단위 테스트 탐색기 솔루션에 테스트를 검색 합니다.단위 테스트를 실행 하 고 코드 검사 데이터에에서 수집 하 단위 테스트 탐색기, 선택 코드 검사 분석.코드 검사 결과에서 확인할 수 있습니다의 코드 검사 결과 창-메뉴 표시줄에서 선택 테스트, Windows, 코드 검사 결과.자세한 내용은 코드 검사를 사용하여 테스트할 코드 범위 결정를 참조하십시오.