Visual Studio 2012'deki Visual C++ Yenilikleri
Bu belgenin içindeki yeni ve gelişmiş özellikler sunar Visual Studio 2012'de Visual C++.
Diğer eklemelerle hakkında bilgi için Visual Studio 2012, bkz: Visual Studio 2012'daki Yenilikler.
[!NOT]
Tümleşik geliştirme hakkında bilgi için oluşturmakta olduğunuz geliştiriciler ortamı (IDE) özelliklerini Windows Mağazası apps, bkz: Visual Studio 2012 kullanarak geliştirme Windows Store apps.
Geliştirilmiş c ++ 11 standartlarını destekler
Standart Şablon Kütüphanesi
Support for new STL headers: <atomic>, <chrono>, <condition_variable>, <filesystem>, <future>, <mutex>, <ratio>, and <thread>.
Bellek kaynağı kullanımını en iyi duruma getirmek için şimdi daha küçük kaplardır.Örneğin, x 86 modu varsayılan ayarlarla serbest std::vector 16 bayt cinsinden küçültülebilir Visual Studio 2010 12 bayt için Visual Studio 2012, ve std::map 16 bayt arasında küçültülebilir Visual Studio 2010 için 8 bayt Visual Studio 2012.
Ancak izin verildiği şekilde c tarafından gerekli ++ 11 standart KORKUTUCU yineleyiciler uygulanır.Daha fazla bilgi için bkz: pdf belgesinin KORKUTUCU Yineleyici atama ve başlatma.
Diğer c ++ 11 geliştirmeleri
Aralık esaslı for döngüleri. stl kapsayıcı diziler ile çalışmak daha sağlam döngüleri yazabilirsiniz ve Windows Çalışma Zamanı koleksiyonları formunda for (for-range-declaration :expression ). Çekirdek dil desteğinin bir parçası olmasıdır.Daha fazla bilgi için bkz. Range-based for Deyimi (C++).
Durum bilgisi olmayan lambda, boş lambda introducer [] ile başlayıp hiçbir yerel değişkenler yakalama kod bloklarını olduğu şimdi c tarafından gerektiği gibi işlev işaretçileri örtük olarak dönüştürülebilir ++ 11 standart.Daha fazla bilgi için bkz. Lambda ifadeleri C++.
Kapsamlı bir listeleme destekler. c++ enum class enum anahtar şimdi desteklenir.Aşağıdaki kod bu enum anahtar öncekinden farklıdır nasıl gösterir enum davranış.
enum class Element { Hydrogen, Helium, Lithium, Beryllium }; void func1(Element e); func1(Hydrogen); // error C2065: 'Hydrogen' : undeclared identifier func1(Element::Helium); // OK
Windows MağazasıUygulama geliştirme desteği
Yerel xaml tabanlı UI modeli. İçin Windows Mağazası apps, yeni yerel xaml tabanlı UI modelini kullanabilirsiniz.Daha fazla bilgi için bkz: öğretici: c++ kullanarak, ilk Windows Store app oluşturma.
Visual c++ bileşeni uzantıları. Bu uzantılar kullanımını kolaylaştıran Windows Çalışma Zamanı bir gerekli olan nesneleri parçası Windows Mağazası apps.Daha fazla bilgi için bkz: c++ kullanarak Windows için Yol Haritası mağaza apps ve Visual c++ Dil Başvurusu (c + +/ cx)
DirectX oyunları. Oyunlar için yeni DirectX desteği kullanarak yayıncılığa geliştirmek Windows Mağazası apps.Daha fazla bilgi için bkz: oluşturma ilk Windows Store oyun DirectX kullanarak ve Mermer Labirent geliştirmek, c++ ve DirectX Windows Store oyun.
**xaml/DirectX ile birlikte çalışma.**Windows Mağazası birlikte verimli bir şekilde şimdi xaml hem DirectX kullanan uygulamalar.
Windows Çalışma ZamanıBileşen dll geliştirme. Bileşen dll geliştirme yapan Windows Çalışma Zamanı ortamı genişletilebilir.Daha fazla bilgi için bkz: c++ kullanarak Windows için Yol Haritası mağaza apps ve Windows çalışma zamanı bileşenleri oluşturma C++'ta.
Visual c++ Derleyici ve bağlayıcı
Otomatik vectorizer. Derleyici kodunuzda döngüleri çözümler ve mümkün olan yerlerde, vektör Yazmaçları kullanma yönergeleri ve tüm modern işlemciler yok yönergeleri yayar.Bu döngü daha hızlı çalışmasını sağlar.(İşlemci yönergeleri için sse bilinen Akış SIMD uzantıları).Etkinleştirmek veya otomatik olarak uygulandığından bu iyileştirme istemek zorunda değil.
Otomatik parallelizer. Derleyici kodunuzda döngüleri çözümleyebilir ve hesaplamalar çekirdeği veya işlemciler arasında yayılan yönergeleri göster.Bu döngü daha hızlı çalışmasını sağlayabilirsiniz.Varsayılan olarak etkin değildir, çünkü bu en iyi duruma getirme istemeniz gerekir.Çoğu durumda, dahil etmek için yardımcı bir #pragma loop(hint_parallel(N)) kodunuzda parallelized istediğiniz döngüleri hemen önce.
Otomatik vectorizer ve otomatik parallelizer birlikte hesaplamaları birden çok çekirdek yayılır ve onun vektör Yazmaçları her çekirdek kodu kullanır böylece çalışabilirsiniz.Daha fazla bilgi için bkz. Otomatik Parallelization hatalar ve uyarılar.
YeniVisual Studio 2012 Update 1
c++ kod oluşturma sırasında hedef Windows xp.
Visual c++ derleyicisi ve hedef Windows xp ve Windows Server 2003 için kitaplıkları kullanabilirsiniz.Daha fazla bilgi için bkz. Windows XP için C++ 11 Programlarını Yapılandırma.
Paralel programlama desteği
c++ hızlandırılmış yekpare paralellik (amp)
c++ amp ayrı ekran kartı üzerinde bir gpu normalde var olan veri paralel donanım yararlanarak c++ kod yürütülmesini hızlandırır.C++ AMP programlama modeli çok boyutlu diziler, dizin oluşturma, bellek aktarımı, döşeme ve bir matematiksel işlev kitaplığını içerir.c++ amp dile uzantýlar ve derleyici kýsýtlamalar kullanarak nasıl veri cpu gpu ve geri taşınır kontrol edebilirsiniz.Daha fazla bilgi için bkz. C++ amp (C++ hızlandırılmış yoğun paralellik).
c++ hızlandırılmış hata ayıklama ve profil oluşturma yekpare paralellik (amp)
Hata ayıklama. gpu hedeflemek için c++ amp kullanan uygulamalar için hata ayıklama deneyimini sadece diğer c++ uygulamaları için hata ayıklama gibi değildir.Bu hata ayıklama daha önce bahsedilen eklemeler yeni paralel içerir.Bkz: gpu kod hata ayıklama
Profil oluşturma. Orada şimdi c++ amp ve diğer Direct3D tabanlı programlama modelleri temel alan gpu etkinliği için destek profil.Bkz: gpu etkinliği grafiği
Genel paralel programlama geliştirmeleri
Çok çekirdekli ve çok çekirdekli mimarileri için taşıma donanımı ile geliştiriciler artık sürekli artan saat hızları arasında tek çekirdek üzerinde desteklenebilir.Paralel Programlama Desteği Eşzamanlılık çalışma zamanı bu yeni mimarinin avantajlarından yararlanmak için geliştiricilere olanak sağlar.
İçinde Visual Studio 2010, güçlü c++ parallelization kitaplıkları gibi Paralel desen kitaplığı , karmaşık veri akışı ardışık düzen ifade ederek eşzamanlılık yararlanmak için özellikleri ile birlikte tanıtıldı.İçinde Visual Studio 2012, daha iyi performans, daha fazla denetim sağlamak için bu kitaplıklar genişletildi ve daha zengin paralel desteği desenleri geliştiricilerin çoğu gerekir.Etki derecesini sunan Şimdi içerir:
Asynchrony ve devamlılığını destekleyen zengin görev tabanlı programlama modeli.Daha fazla bilgi için bkz. Görev paralellik (eşzamanlılık çalışma zamanı).
Paralel algoritmalar, which support fork-join parallelism (parallel_for, parallel_for with affinity, parallel_for_each, parallel_sort, parallel_reduce, parallel_transform).
Eşzamanlılık güvenli kapsayıcılar, iş parçacığı açısından güvenli sürümlerini sağlamak std veri yapıları gibi priority_queue, queue, vector, ve map.
Zaman uyumsuz aracıları kitaplığı, Hangi geliştiricileri eş zamanlı birimlerine doğal olarak ayrıştırır veri akışı ardışık düzen ifade etmek için kullanabilirsiniz.
Bu listedeki desenleri düzgün oluşumunu kolaylaştırmak için bir özelleştirilebilir Zamanlayıcı ve Kaynak Yöneticisi.Bkz: Görev Zamanlayıcı'yı (eşzamanlılık çalışma zamanı)
Hata ayıklama genel paralel geliştirmeleri
Ek olarak Paralel Görevler pencere ve Paralel Yığınlar penceresinde, Visual Studio 2012 sunan yeni bir Paralel İzle pencere böylece tüm iş parçacıkları ve işlemleri bir ifadenin değerleri inceleyin ve sıralama ve süzme sonucu üzerinde gerçekleştirin.Tüm araç pencereleri arasında yeni multi-process desteğinden alabilir ve pencereyi genişletmek için kendi visualizers kullanabilirsiniz.Daha fazla bilgi için bkz. Nasıl yapılır: paralel Gözcü penceresini kullanma.
IDE
C++'ta kodlarken daha üretken olmanıza yardımcı olmak için önemli geliştirmeler Visual Studio IDE içindeki araçlar vardır.IDE geliştirmeleri hakkında daha fazla bilgi için bkz: Visual Studio 2012 için Ürün Ana Başlıkları.
Visual Studio şablonları destekler. Yazar c++ proje ve öğe şablonları için Visual Studio şablonları teknolojisi artık kullanabilirsiniz.
Zaman uyumsuz çözüm yük. Projeleri şimdi yüklenir zaman uyumsuz olarak — çözüm anahtar parçaları ilk — böylece daha hızlı çalışmaya başlayabilirsiniz.
Uzaktan hata ayıklama için otomatik dağıtım. Dağıtım dosyalarını Visual c++'ta uzaktan hata ayıklama için basitleştirilmiştir.Proje bağlam menüsünde Dağıt seçeneği, hata ayıklama yapılandırma özelliklerinde belirtilen dosyaları uzak bilgisayara otomatik olarak kopyalar.Dosyaları el ile uzak bilgisayara kopyalayarak artık gerekli değildir.Daha fazla bilgi için bkz. Yerel yerleşik bir proje uzaktan hata ayıklama.
C + +/ CLI IntelliSense. C + +/ CLI şimdi IntelliSense desteği vardır.IntelliSense özellikleri hızlı bilgi, Yardım parametresi, liste üyelerini ve otomatik tamamlama şimdi c + için çalışma gibi +/ CLI.Ayrıca, bu belgede listelenen diğer IntelliSense ve IDE geliştirmeleri de c + için çözüm +/ CLI.
Daha zengin IntelliSense araç ipuçları. c++ IntelliSense Hızlı bilgileri araç ipuçları, şimdi daha zengin xml belgeleri açıklamalar stil bilgilerini gösterir.Kitaplıktan bir API kullanıyorsanız — Örneğin, c++ amp — xml belgeleme yorumlarına sahip olan, daha sonra yalnızca bildirim daha çok bilgi IntelliSense araç ipucunu gösterir.Ayrıca, xml belgeleri açıklamalar kodunuz varsa, IntelliSense araç ipuçlarını daha zengin bilgi gösterir.
c++ kod yapýlarýný. İskelet kodunu anahtarı, if-else, döngü ve liste üyeleri aşağı açılan listedeki diğer temel kod yapýlarý için kullanılabilir.Kodunuza eklemek ve gerekli mantığı doldurmak için listeden bir kod parçasını seçin.Kendi özel parça kullanmak için Kod Düzenleyicisi'nde de oluşturabilirsiniz.Daha fazla bilgi için bkz. Kod parçacıkları.
Liste üyeleri geliştirmeleri. Liste üyeleri aþaðý açýlan listesinden code editor içinde kod yazarken otomatik olarak görüntülenir.Sonuçları süzülür, böylece yalnızca ilgili üyeleri yazdığınız gibi görüntülenir.Üye listesi tarafından kullanılan filtreleme mantığını türünü kontrol edebilirsiniz —, seçenekleri iletişim kutusunun altında Text Editor, c/c++, Gelişmiş.Daha fazla bilgi için bkz. IntelliSense kullanarak.
Anlamsal renklendirme. Şimdi türleri, numaralandırmaları, makroları ve diğer c++ belirteçleri renklendirme varsayılan olarak sahiptir.Daha fazla bilgi için bkz. Kod ve Metin Düzenleyici'de Kod Yazma.
Başvuru vurgulama. Şimdi bir simge seçerek tüm geçerli dosya sembol örneklerini vurgular.Vurgulanan referansları arasında taşımak için CTRL + ÜST KRKT + YUKARI OK veya Ctrl + ÜstKrkt + aşağı ok tuşlarına basın.Bu özellik de kapatabilirsiniz seçenekleri iletişim kutusunda, altında Text Editor, c/c++, Gelişmiş.
Uygulama Yaşam Döngüsü Yönetimi Araçları
Statik kod analizi
c++ için statik çözümleme daha zengin hata bağlam bilgilerini, daha fazla çözümleme kurallarını sağlamak için güncelleştirildi ve daha iyi analiz sonuçlanır.Yeni Kod analizi penceresinde, iletileri anahtar sözcüğü, proje ve önem göre filtre uygulayabilirsiniz.İleti penceresinde seçtiğiniz zaman, Kod Düzenleyicisi'nde ileti tetiklendiği kodu satırda vurgulanır.Belirli c++ uyarıları ileti uyarı için müşteri adayları yürütme yolu gösteren kaynak satırlarını listeler; karar noktalarında ve o belirli yol alma nedenlerini vurgulanır.
Kod Analizi çoğu sürümlerinde bulunan Visual Studio 2012.Tüm kuralları Professional, Premium ve Ultimate sürümlerinde bulunur.Express sürümleri için de Windows 8 ve Windows Phone sadece en kritik uyarılar dahil.Kod analizi için Web Express Edition'da bulunmamaktadır.
Diğer kod çözümleme geliştirmeler şunlardır:
Yeni eşzamanlılık uyarıları doğru kilitleme disiplinler çoklu iş parçacığı kullanan c/C++ programlarında kullandığınızdan emin yaparak eşzamanlılık hataları önlemenize yardımcı olur.Çözümleyici olası yarış, kilit sipariş inversions, arayan yazmaçlar kilitleme sözleşmesi ihlalleri, eşleşmeyen eşitleme işlemleri ve diğer eşzamanlılık hataları algılar.
Kullanarak kod çözümleme çalışmaları için uygulamak istediğiniz c++ kuralları belirtebilirsiniz kuralını ayarlar.
İçinde Kod analizi penceresinde Seçili uyarıyı bastırır bir pragma kaynak kodu içine ekleyebilirsiniz.
Yeni sürümünü kullanarak doğruluğu ve statik kod analizi onarılma geliştirebilir Microsoft kaynak kodu ek açıklama dili (sal) bir işlev parametreleri, bunlarla ilgili yaptığı varsayımları ve sona erdiğinde kolaylaştıran garanti nasıl kullandığını açıklamak için.
c++ projeleri için 64-bit desteği.
Kodunuzun kalitesini artırmak hakkında daha fazla bilgi için bkz: Uygulama kalitesini kod çözümleme araçlarını kullanarak çözümleme.
Güncelleştirilmiş Birim Test çerçevesine
Yeni c++ birim test çerçevesinde kullanmak Visual Studio c++ birim testleri yazmak için.Yeni bir birim test projesi bularak varolan c++ çözümünüze eklemek c++ Birim Test projesi şablon altında Visual c++ kategorisinde Yeni bir proje iletişim kutusu.Oluşturulan birim testleri yazmaya başlamadan TEST_METHOD kod saplaması içinde Unittest1.cpp dosyası.Test kodu yazıldığında, çözümü oluşturun.Testleri çalıştırmak istediğinizde, açık bir Birim Test Explorer seçerek, pencere Görünüm, Diğer Pencereler, Birim Test Explorerve daha sonra test çalışması için kısayol menüsünden seçin seçilen testi çalıştırmak.Tamamlanmadan testi çalıştırdıktan sonra test sonuçları ve ek yığın izleme bilgileri aynı pencerede görüntüleyebilirsiniz.Bkz. Kod birimi sınamaları kullanarak doğrulama ve Windows Mağazası uygulamasında birim testleri oluşturma ve yürütme.
Bağımlılık grafikleri mimarisi
Kodunuzu daha iyi anlamak için artık ikili, ad alanı, sınıf için bağımlılık grafikleri oluşturmak ve bir çözüm içindeki dosyaları içerir.Menü çubuğunda Seç Mimari, Bağımlılık grafiği Oluşturve sonra İçin çözüm veya İçerme dosyası için bir bağımlılık grafiği oluşturmak için.Grafik oluşturma işlemi tamamlandığında, her düğümünü genişleterek keşfetmek, düğümler arasında hareket ettirerek bağımlılık ilişkileri öğrenin ve kullanabilirsiniz seçerek kaynak koduna göz Görünüm İçerik bir düğüm için kısayol menüsünden.Kısayol menüsünde Ekle dosyaları için bir bağımlılık grafiği oluşturmak için bir *.cpp kaynak kodu dosyası veya *.h başlığını seçin, dosya Üretmek grafik içeren dosyalar.Bkz: Bağımlılık Grafiklerinde Kod Bağımlılıklarını Görselleştirme
Mimari Gezgini
Mimari Gezgini'ni kullanarak, c++ çözüm, proje veya dosyaları varlıklarını keşfedebilirsiniz.Menü çubuğunda Seç Mimari, Windows, Mimari Gezgini.Size ilgilendiğiniz, örneğin, bir düğüm seçebilirsiniz Class View.Bu durumda, aracı penceresinin sağ tarafında isim uzaylarının listesini genişletilir.Bir ad alanı seçerseniz, yeni bir sütun bu ad alanındaki sınıflar, yapılar ve numaralandırmaları bir listesini gösterir.Bu varlıkları araştırmak ve sütununda sol üzerinde başka bir sorguyu başlatmak için geri dönmek devam edebilirsiniz.Bkz: Mimari Gezgini ile Kod Bulma
Kod kapsamı
Kod kapsamı aracı ikili çalışma zamanında dinamik olarak için güncelleştirildi.Bu yapılandırma yükünü azaltır ve daha iyi performans sağlar.c++ uygulaması için birim testleri gelen kod kapsamı verisi de toplayabilirsiniz.Nasıl oluşturulacağı ve birim testleri hakkında daha fazla bilgi için bu belgenin Birim Test çerçevesine bölümüne bakın.c++ birim testleri oluştururken kullanabileceğiniz Birim Test Gezgini testleri çözümünüzde keşfetmek için.Birim testleri çalıştırabilir ve kod kapsama verisi onlar için de toplamak için Birim Test Gezgini, seçim Kod kapsamı çözümleme.Kod kapsamı sonuçları inceleyebilirsiniz İçin kod kapsama sonuçlarını pencere — menü çubuğunda Seç Test, Windows, İçin kod kapsama sonuçlarını.Bkz: Kod kapsamı belirlemek ne kadar kod kullanılarak test edilmiştir
Ayrıca bkz.
Kavramlar
Visual Studio 2012'daki Yenilikler