Aracılığıyla paylaş


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

Hh409293.collapse_all(tr-tr,VS.110).gifStandart Ş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.

Hh409293.collapse_all(tr-tr,VS.110).gifDiğ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

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

Paralel programlama desteği

Hh409293.collapse_all(tr-tr,VS.110).gifc++ 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).

Hh409293.collapse_all(tr-tr,VS.110).gifc++ 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

Hh409293.collapse_all(tr-tr,VS.110).gifGenel 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:

Hh409293.collapse_all(tr-tr,VS.110).gifHata 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ı

Hh409293.collapse_all(tr-tr,VS.110).gifStatik 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.

Hh409293.collapse_all(tr-tr,VS.110).gifGü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.

Hh409293.collapse_all(tr-tr,VS.110).gifBağı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

Hh409293.collapse_all(tr-tr,VS.110).gifMimari 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

Hh409293.collapse_all(tr-tr,VS.110).gifKod 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

Diğer Kaynaklar

Visual c++ ekibi Web günlüğü

Visual c++ Visual Studio 2012 '