Co nowego w Visual C++ dla Visual Studio 2012
Ten dokument wprowadza nowe i ulepszone funkcje w Visual C++ w programie Visual Studio 2012.
Aby uzyskać informacje o innych dodatków w Visual Studio 2012, zobacz Nowości w Visual Studio 2012.
[!UWAGA]
Aby uzyskać informacje dotyczące zintegrowanego rozwoju środowiska (IDE) funkcje dla deweloperów, którzy tworzą Windows Store aplikacji, zobacz Sklep Windows opracowanie aplikacje przy użyciu programu Visual Studio 2012 r..
Ulepszone C ++ obsługuje standardy 11
Standardowa biblioteka szablonów
Support for new STL headers: <atomic>, <chrono>, <condition_variable>, <filesystem>, <future>, <mutex>, <ratio>, and <thread>.
Aby zoptymalizować wykorzystanie zasobów pamięci, pojemniki są mniejsze.Na przykład w x 86 wydania tryb z domyślnymi ustawieniami, std::vector zmalał z 16 bajtów w Visual Studio 2010 12 bajtów w Visual Studio 2012, i std::map zmalał z 16 bajtów w Visual Studio 2010 do 8 bajtów w Visual Studio 2012.
Jako dozwolone, ale nie wymagane przez C ++ 11 norma, Iteratory PRZERAŻAJĄCE zostały wdrożone.Aby uzyskać więcej informacji, zobacz dokument PDF PRZERAŻAJĄCE przypisania sterująca i inicjalizacji.
Inne C ++ powiększenie 11
Oparte na zakresie dla pętli. Można napisać solidniejszą pętli, współpracujących z tablicami, kontenerów STL i Środowisko wykonawcze systemu Windows w postaci for (for-range-declaration :expression ). Jest to część obsługi języka podstawowego.Aby uzyskać więcej informacji, zobacz Range-based for — instrukcja (C++).
Bezstanowa lambdas, które są bloki kodu, które rozpoczyna się od [] wprowadzający lambda puste i przechwytywać żadnych zmiennych lokalnych, teraz są niejawnie konwertowane wskaźników funkcji zgodnie z wymaganiami C ++ 11 Standard.Aby uzyskać więcej informacji, zobacz Lambda wyrażenia w języku C++.
Obsługuje wyliczenia zakresu. C++ enum class klucza enum jest obecnie obsługiwane.Poniższy kod demonstruje, jak klucza enum różni się od poprzedniej enum zachowanie.
enum class Element { Hydrogen, Helium, Lithium, Beryllium }; void func1(Element e); func1(Hydrogen); // error C2065: 'Hydrogen' : undeclared identifier func1(Element::Helium); // OK
Windows StoreWsparcie rozwoju aplikacji
Model macierzystego interfejsu użytkownika opartego na języku XAML. Dla Windows Store aplikacji, można użyć nowego modelu macierzystego interfejsu użytkownika opartego na języku XAML.Aby uzyskać więcej informacji, zobacz Samouczek: Tworzenie pierwszej aplikacji magazynu systemu Windows przy użyciu języka C++.
Visual C++ składnik rozszerzeń. Rozszerzenia te uproszczenia zużycie Środowisko wykonawcze systemu Windows obiektów, które są niezbędne jest częścią Windows Store aplikacji.Aby uzyskać więcej informacji, zobacz aplikacji mapy drogowej dla magazynu systemu Windows przy użyciu języka C++ i Visual C++ Language Reference (C + +/ CX)
Gry DirectX. Można opracować, angażowanie gry za pomocą nowej obsłudze DirectX dla Windows Store aplikacji.Aby uzyskać więcej informacji, zobacz Tworzenie pierwsza gra magazynu systemu Windows przy użyciu programu DirectX i Rozwój Labirynt marmur, gra magazynu systemu Windows w języku C++ i DirectX.
**XAML/DirectX interop.**Windows Store aplikacje, które używają języka XAML i DirectX teraz skutecznie współdziałać.
Środowisko wykonawcze systemu WindowsProjektowanie biblioteki DLL składnika. Projektowanie biblioteki DLL składnika sprawia, że Środowisko wykonawcze systemu Windows rozszerzalne środowisko.Aby uzyskać więcej informacji, zobacz aplikacji mapy drogowej dla magazynu systemu Windows przy użyciu języka C++ i Tworzenie składników systemu Windows środowiska wykonawczego języka c++.
Kompilator Visual C++ i program łączący
Auto-vectorizer. Kompilator analizuje pętle w kodzie i, w miarę potrzeb, emituje instrukcje używające rejestrów wektorowych i instrukcje, które są obecne w wszystkie Nowoczesne procesory.Dzięki temu pętle działa szybciej.(Instrukcje procesora są znane jako SSE, dla Streaming SIMD Extensions).Nie trzeba włączyć lub zażądać Optymalizacja, ponieważ jest stosowane automatycznie.
Auto-parallelizer. Kompilator można analizować pętle w kodzie i wygenerować polecenia, które rozprzestrzeniają się obliczenia wielu rdzeni lub procesory.Może to pętle działa szybciej.Optymalizacja musi zażądać, ponieważ nie jest włączona domyślnie.W wielu przypadkach pomaga obejmują #pragma loop(hint_parallel(N)) w kodzie bezpośrednio przed pętli, które mają być jednordzeniowym.
Auto-vectorizer i auto-parallelizer mogą wspólnie pracować tak, że obliczenia jest umieszczonych na wielu rdzeni i kod na każdy rdzeń korzysta z rejestrem vector.Aby uzyskać więcej informacji, zobacz Auto wykonywania błędy i ostrzeżenia.
Nowe wVisual Studio 2012 Update 1
Cel systemu Windows XP, podczas tworzenia kodu C++.
Można użyć kompilatora Visual C++ i bibliotek do docelowego systemu Windows XP i Windows Server 2003.Aby uzyskać więcej informacji, zobacz Konfigurowanie programów w języku C++ 11 pod kątem systemu Windows XP.
Obsługa programowania równoległego
C++ przyspieszane równoległości masowe (AMP)
C++ AMP przyspiesza wykonywanie kodu języka C++, wykorzystując zalety sprzętu równoległe danych, który jest zwykle obecny jako GPU na kartę graficzną.Model programowania C++ AMP zawiera tablice wielowymiarowe, indeksowanie, transfer pamięci, układanie i bibliotekę funkcji matematycznych.Przy użyciu rozszerzeń języka C++ AMP i ograniczenia kompilatora, można kontrolować sposób przenoszenia danych z Procesora GPU i na odwrót.Aby uzyskać więcej informacji, zobacz C++ AMP (C++ przyspieszyć równoległości prostych masowe).
C++ przyspieszane równoległości masowe (AMP) debugowanie i profilowanie
Debugowanie. Proces debugowania dla aplikacji używających języka C++ AMP się nauczyć GPU jest jak debugowanie dla innych aplikacji C++.Obejmuje to nowe równoleżnika debugowanie dodatków, które zostały wymienione wcześniej.Zobacz Debugowanie kodu GPU.
Profilowanie. Teraz jest profilowanie pomocy technicznej dla działania GPU, opartego na C++ AMP i inne modele programowania oparty na Direct3D.Zobacz Wykres aktywności procesora GPU.
Ulepszenia programowania równoległego ogólne
Ze sprzętem do architektury wielordzeniowej i wielu rdzeni deweloperzy nie jest już może polegać na coraz większą szybkość zegara za pomocą pojedynczego rdzeni.Podstawy programowania równoległego w Współbieżność Runtime umożliwia programistom skorzystanie z tych nowej architektury.
W Visual Studio 2010, potężny bibliotek zrównolegleniu C++, takie jak Równoległych wzorów biblioteki zostały wprowadzone, łącznie z funkcji do wykorzystania zalet współbieżności wyrażając rurociągów wyrafinowanych przepływ danych.W Visual Studio 2012, te biblioteki zostało rozszerzone, aby zapewnić lepszą wydajność, większą kontrolę i bogatsze obsługę równoleżnika wzorców, które deweloperzy muszą większość.Szerokość oferta obejmuje obecnie:
Bogate związanych z zadaniami model programowania, który obsługuje asynchrony i kontynuacji.Aby uzyskać więcej informacji, zobacz Zadanie równoległości (współbieżności Runtime).
Algorytmy równoległe, which support fork-join parallelism (parallel_for, parallel_for with affinity, parallel_for_each, parallel_sort, parallel_reduce, parallel_transform).
Pojemniki palety współbieżności, które zapewniają wersjach wątków std struktur danych, takich jak priority_queue, queue, vector, i map.
Biblioteka agentów asynchroniczne, Której deweloperzy mogą używać do express rurociągów przepływ danych, dzielących się naturalnie na równoczesne jednostek.
Można dostosować harmonogram i zasobów menedżerem, aby ułatwić skład gładkie wzorków na tej liście.Zobacz Harmonogram zadań (współbieżności Runtime).
Ulepszenia debugowanie równoleżnika ogólne
W uzupełnieniu do Zadań równoległych okna i Stosów równoległych okna, Visual Studio 2012 oferuje nowy Równoległych czujki okna tak, aby sprawdzić wartości wyrażenia we wszystkich wątków i procesów i wykonać sortowanie i filtrowanie na podstawie wyników.Umożliwia także własne podglądaczy rozszerzenie okna, a mogą Państwo skorzystać z obsługi wielu nowych przez wszystkie okna narzędzia.Aby uzyskać więcej informacji, zobacz Jak: równoległy okno czujki.
IDE
Narzędzia w programie Visual Studio IDE ma znaczną poprawę, które pomogą Ci zwiększyć swoją produktywnooć gdy kod w języku C++.Aby uzyskać więcej informacji dotyczących ulepszeń IDE, zobacz Visual Studio 2012 — wyróżnienia produktów.
Szablony programu Visual Studio obsługuje. Program technologii Visual Studio szablonów do autora C++ szablony projektu i elementu.
Asynchroniczne ładowanie rozwiązanie. Projekty wczytują asynchronicznie — najważniejsze części roztworu pierwszy — tak, aby można było rozpocząć działa szybciej.
Zautomatyzowanego wdrażania dla zdalnego debugowania. Wdrażanie plików dla zdalnego debugowania w środowisku Visual C++ został uproszczony.Opcja wdrażanie w menu kontekstowym projektu automatycznie kopiuje do komputera zdalnego pliki, które są określone we właściwościach konfiguracji debugowania.Ręczne kopiowanie plików na komputer zdalny nie jest już wymagane.Aby uzyskać więcej informacji, zobacz Zdalne debugowanie projektu, zbudowany lokalnie.
C + +/ CLI IntelliSense. C + +/ CLI ma teraz pełną obsługę technologii IntelliSense.Funkcje IntelliSense, takich jak szybkie informacje, pomoc parametr, lista członków i Autouzupełnianie teraz pracy C + +/ CLI.Ponadto inne IntelliSense i IDE rozszerzenia wymienione w niniejszym dokumencie są także dążyć do C + +/ CLI.
Bogatsze podpowiedzi IntelliSense. Etykietki narzędzi C++ IntelliSense szybkie informacje teraz zawierać informacje o stylu bogatsze komentarzy dokumentacji XML.W przypadku korzystania z interfejsem API z biblioteki — na przykład C++ AMP — zawierającego komentarzy dokumentacji XML, a następnie IntelliSense tooltip Wyświetla więcej informacji niż tylko deklarację.Ponadto jeśli kod zawiera komentarzy dokumentacji XML, IntelliSense etykietki narzędzi są wyświetlane informacje bogatsze.
Konstrukcje kodu języka C++. Szkielet kodu jest dostępna dla przełącznika, jeśli inaczej, dla pętli i inne konstrukcje podstawowe kodu, na liście rozwijanej listy członków.Zaznacz fragment kodu z listy, aby wstawić go w kodzie, a następnie wypełnij wymagane logikę.Można również utworzyć własne niestandardowe fragmentów kodu do użytku w edytorze.Aby uzyskać więcej informacji, zobacz Wstawki kodu programu.
Lista członków ulepszenia. Lista członków listy rozwijanej pojawia się automatycznie podczas pisania kodu w edytorze kodu.Wyniki są filtrowane, tak aby tylko istotne elementy są wyświetlane podczas pisania.Można kontrolować rodzaj logiki filtrowania, który jest używany przez listy elementów członkowskich — w Opcje okno dialogowe, w obszarze Edytor tekstu, C/C++, Zaawansowane.Aby uzyskać więcej informacji, zobacz Za pomocą technologii IntelliSense.
Semantyczne kolorowania. Typy, wyliczeń, makra i innych tokenów C++ już kolorowania domyślnie.Aby uzyskać więcej informacji, zobacz Pisanie kodu w edytorze kodu i tekstu.
Wyróżnianie odniesienia. Teraz zaznaczenie symbolu powoduje wyróżnienie wszystkich instancji symbolu w bieżącym pliku.Naciśnij kombinację klawiszy Ctrl + Strzałka w górę lub Ctrl + Shift + Strzałka w dół strzałkę, aby przejść wśród wyróżnionych odwołania.Można wyłączyć tę funkcję Opcje dialogowe, pod Edytor tekstu, C/C++, Zaawansowane.
Narzędzia do zarządzania cyklem życia aplikacji
Statycznej analizy kodu
Analizy statycznej dla języka C++ został zaktualizowany w celu dostarczenia informacji kontekstu błędu bogatsze, więcej reguł analizy, i ułatwia analizę wyniki.W nowym Analizy kodu okna, można filtrować wiadomości według słowa kluczowego, projekt i wskaźnik ważności.Po wybraniu w oknie wiadomości, w kodzie, w jakim został wyzwolony wiadomości jest ona w edytorze kodu.Dla niektórych ostrzeżeń C++, wiadomości wyświetlane źródła wiersze dotyczące ścieżki wykonanie, która prowadzi do ostrzeżenia; punkty decyzji oraz o powodach podjęcia tej określonej ścieżki są wyróżnione.
Analizy kodu znajduje się w większości wersji systemu Visual Studio 2012.W Professional, Premium i ostateczny wydania zawarte są wszystkie reguły.W wersji Express dla Windows 8 podobnie jak Windows Phone tylko najbardziej krytyczne ostrzeżenia.Analizy kodu jest niedostępna w wersji Express dla sieci Web.
Oto niektóre inne rozszerzenia analizy kodu:
Nowe ostrzeżenia współbieżności pomóc w uniknięciu błędów współbieżności upewniając się, czy używasz poprawnego dyscyplin blokowania w wielowątkowe programy C/C++.Analizator wykrywa potencjalne wyścigu, odwracając kolejność blokady, rozmówcy/wywoływany blokowania naruszenia Umowy, operacji synchronizacji niedopasowane i innych błędów współbieżności.
Można określić reguły C++, które chcesz zastosować do wybiegu analizy kodu za pomocą zestawy reguł.
W Analizy kodu okna, można wstawić do kodu źródłowego pragma, która pomija ostrzeżenie wybrane.
Za pomocą nowej wersji może zwiększyć dokładność i kompletność statycznej analizy kodu języka opisu kodu źródłowego Microsoft (SAL) do opisywania, jak funkcja wykorzystuje jego parametry, założeń, które to sprawia, że na ich temat i gwarantuje, że to sprawia, że po jego zakończeniu.
Wsparcie dla 64-bitowych projekty C++.
Aby uzyskać więcej informacji na temat sposobów poprawy jakości kodu, zobacz Analizowanie jakości aplikacji za pomocą narzędzia do analizy kodu.
Zaktualizowane struktury testowej jednostki
Użyj nowej struktury testowej jednostki C++ w Visual Studio pisać testy jednostkowe C++.Dodać nowy projekt testu jednostki do istniejącego rozwiązania C++, lokalizując Jednostki przetestować projektu C++ szablon pod Visual C++ kategorii w Nowy projekt okno dialogowe.Zacznij pisać testy jednostkowe w wygenerowanym TEST_METHOD Kod szczątkowy w Unittest1.cpp pliku.Po zapisaniu kodu testu, skompilować projekt.Aby uruchomić testy, należy otworzyć Explorer Test jednostki okno, wybierz polecenie Widok, Other Windows, Explorer Test jednostki, a następnie w menu skrótów dla przypadku testowego, chcesz, wybierz uruchomić wybrane do testu.W wyniku badania uruchomienia kończy w tym samym oknie można wyświetlić wyniki badań i informacje o śledzeniu stosu dodatkowe.Zobacz Sprawdzanie kodu za pomocą jednostki badań i Tworzenie i uruchamianie testów jednostkowych w aplikacji sklepu Windows Store.
Wykresy zależność architektury
Aby lepiej zrozumieć swój kod, można generować wykresy zależność dla binarnych, klasy, obszar nazw i dołączyć pliki do rozwiązania.Na pasku menu wybierz polecenie architektury, Wygenerować wykres zależności, a następnie Rozwiązanie dla lub Dla pliku obejmują aby wygenerować wykres zależności.Po zakończeniu tworzenia wykresu, można ją poznać po rozwinięciu węzła, Poznaj relacji zależności przenosząc między węzłami i Przeglądaj kod źródłowy, wybierz polecenie Wyświetl zawartość w menu skrótów dla węzła.Aby wygenerować wykres zależności dla plików include, w menu skrótów dla *.cpp plik kodu źródłowego lub *.h nagłówka pliku, wybierz polecenie Wygenerować wykres z Uwzględnij pliki.Zobacz Wizualizacja zależności kodu na wykresach zależności.
Eksploratorze architektury
Za pomocą Eksploratora architektury, można eksplorować zasoby znajdujące się w roztworze C++, projektów lub pliki.Na pasku menu wybierz polecenie architektury, systemu Windows, Eksploratorze architektury.Można wybrać węzeł, które są zainteresowane, na przykład, Widok klasy.W takim przypadku prawej stronie okna narzędzie jest rozwinięty wykaz obszarów nazw.Wybranie obszaru nazw, nowa kolumna pokazuje listę klas, strukturach i teksty stałe w tym obszarze nazw.Można kontynuować do zbadania tych aktywów, lub powrót do kolumny z lewej uruchomić innej kwerendy.Zobacz Wyszukiwanie kodu za pomocą narzędzia Architecture Explorer.
Użycie kodu
Użycie kodu został zaktualizowany do dynamicznie pliki instrument binarne w czasie wykonywania.To zmniejsza obciążenie konfiguracji i zapewnia lepszą wydajność.Można również zbierać dane użycie kodu z testy dla aplikacji C++.Aby uzyskać więcej informacji na temat sposobów tworzenia i uruchamiania testów jednostkowych zobacz sekcję struktury testowej jednostki tego dokumentu.Po utworzeniu testy jednostkowe C++ można użyć Explorer testu jednostki odkryć badań w rozwiązaniu.Aby uruchomić testy jednostkowe i gromadzenia danych pokrycia kodu dla nich, w Explorer testu jednostki, wybierz polecenie Analizowanie użycie kodu.Można przejrzeć wyniki pokrycia kodu w Wynikami pomiaru pokrycia kodu okna — na pasku menu wybierz polecenie Test, systemu Windows, Wynikami pomiaru pokrycia kodu.Zobacz Za pomocą Code Coverage, aby określić, jak dużo kodu jest badany.