Co je nového ve Visual C++ 2010

Tento dokument uvádí nové a vylepšené funkce aplikace Visual C++ v Visual Studio 2010.

Kompilátor Visual C++ a propojovací program

Klíčové slovo auto

Klíčové slovo auto má nový účel. Použítí výchozí smyslu klíčového slova auto, k deklarování proměnné, jejíž typ je odvozen z inicializace výrazu v deklaraci proměnné. /Zc:Auto možnost kompilátoru vyvolá nový nebo předchozí smysl klíčového slova auto.

Specifikátor typu decltype

Specifikátor typu decltype vrátí typ zadaného výrazu. Použitím specifikátoru typu decltype v kombinaci s klíčovým slovem auto deklarujete typ, který je buď komplexní, nebo známý pouze kompilátoru. Kombinaci můžete například použít k deklarování funkce šablony, jejíž návratový typ závisí na typech argumentů šablony. Nebo můžete deklarovat funkci šablony, která volá jinou funkci a potom vrátí typ vrácení volaná funkce.

Lambda výrazy

Lambda funkce mají v tělo funkce, ale nemají název. Lambda funkce kombinují nejlepší charakteristiky ukazatelů funkcí a funkcí objektů.

Použít lambda funkci samotně, jako parametr funkce šablony namísto funkce objektu nebo spolu s klíčovým slovem auto, které deklaruje proměnné, jejíž typ je lambda.

Rvalue odkaz

odkaz deklarátoru rvalue (&&) prohlašuje, odkaz na rvalue. Odkaz rvalue umožňuje použití sémantiky přesunutí a perfektní přesměrování k zápisu efektivnějších konstruktorů, funkcí a šablon.

Deklarace static_assert

Deklarace static_assert testuje softwarový dynamický výraz v době kompilace na rozdíl od jiných mechanismů dynamického výrazu, které se testují při běhu. Pokud tvrzení selže, kompilace se nezdaří a je specifikována chybová hláška problému.

klíčová slova nullptr a __nullptr

Kompilátor Visual C++ vám umožní používat klíčové slovo nullptr s nativní kódem nebo se manažovaným kódem. nullptr klíčové slovo označuje, že popisovač objektu, vnitřní ukazatel nebo nativní ukazatele typu neodkazuje na objekt. Kompilátor interpretuje nullptr aby byl manžovaný kód, když použijete /clr možnost kompilátoru, a nativní kód, když použijete /clr parametr.

Microsoft specifické klíčové slovo __nullptr má stejný význam jako nullptr, ale vztahuje se pouze na nativní kód. Pokud při kompilaci nativního kódu C/C++ použijeme /clr možnost kompilátoru, kompilátor nemůže určit, zda nullptr klíčové slovo je nativní nebo manažovaný termín. Chcete-li provést váš záměr srozimitelně pro kompilátor, použijte nullptr klíčové slovo, které vyjadřuje manažovaný termín a __nullptr k určení nativního termínu.

/Zc:trigraphs možnost kompilátoru

Ve výchozím stavu je podpora trigraphs je vypnata. Použítím možnosti kompilátoru**/Zc:trigraphs** povoluje podporu trigraphs.

Trigraph se skládá ze dvou po sobě jdoucích otazníků (??) následovaných jedinečný třetím znakem. Kompilátor nahradí trigraph odpovídajícím interpunkčním znaménkem.. Například kompilátor nahradí ??= trigraph znakem # (znak čísla). Použití trigraphs v C zdrojových souborech, které používají znakovou sadu, jenž neobsahuje některá interpunkční znaménka.

Nové možnosti profilově řízené optimalizace

PogoSafeMode je nová profilově řízená optimalizace, která umožňuje určit, zda chcete použít bezpečný režim nebo rychlý režim při optimalizaci aplikace. Bezpečný režim je vláknově bezpečný, ale je pomalejší než rychlý režim. Rychlý režim je výchozí chování.

Nové možnosti společného jazykového modulu (CLR) /clr:nostdlib

Je přidána nová možnost pro /clr (kompilace bežného jazyka za běhu). Pokud jsou zahrnuty různé verze stejné knihovny, zobrazí se chyba kompilace. Nové možnost umožňují vyloučit výchozí knihovny CLR, takže program může používat specifikovanou verzi.

Nová pragma směrnice detect_mistmatch

Direktiva pragma detect_mismatch umožňuje umístit do souborů tag, který bude porovnán s ostatními značkami se stejným názvem. Pokud existuje více hodnot pro stejný název, oznámí propojovací program chybu.

Vnitřní objekty XOP, vnitřní objekty FMA4 a vnitřní objekty LWP

Byly přidány nové vnitřní funkce pro podporu technologií procesoru XOP, FMA4 a LWP. Použijte možnost __cpuid, __cpuidex k určení, které technologie procesoru jsou podporovány v konkrétním počítači.

Projekty Visual C++ a sestavení systému

MSBuild

Řešení a projekty Visual C++ jsou nyní integrovány pomocí souboru MSBuild.exe, který nahradí VCBuild.exe. MSBuild je stejně flexibilní, rozšíritelný, nástroj založený na jazyku XML, který je používán v ostatních Visual Studio jazycích a typech projektů. Kvůli této změně soubory projektu Visual C++ používají nyní formát souborů XML a mají příponu VCXPROJ. Visual C++ soubor projektu z předchozích verzí Visual Studio jse automaticky převeden do nového souboru formátu. Další informace naleznete v tématu MSBuild (Visual C++).

VC++ Adresáře

Nastavení VC++ adresáře je nyní uloženo na dvou místech. Pomocí stránky vlastností projektu můžete nastavit pro každý projekt hodnoty VC ++ adresářů. Použítím Správce vlastností a karty listu vlastností pro globální nastavení konfiguračních hodnot VC ++ adresářů.

Projekt-Projekt závislosti

V dřívějších verzích byly definované závislostí mezi projekty uloženy v souboru řešení. Když jsou tyto řešení převedeny na nový formát souboru projektu, závislosti jsou převedeny na projekt-projekt odkazy. Tato změna může ovlivnit aplikace kvůli konceptům závislostí řešení a lišících se odkazů mezi projekty.

Makra a proměnná prostředí

Nové _ITERATOR_DEBUG_LEVEL makro spustí podporu ladění u iterátorů. Použítí toto makra namísto starší _SECURE_SCL a _HAS_ITERATOR_DEBUGGING makra.

Visual C++ - knihovny

Knihovny runtime souběžnosti

Rozhraní Souběžnost za běhu podporuje aplikace a součásti, které běží současně, a je rozhraním pro programování souběžných aplikací v jazyce Visual C++. Pro účely podpory programování paralelních aplikací Parallel Patterns Library (PPL) poskytuje univerzální kontejnery a algoritmy pro provádění podrobného paralelismu. Asynchronous Agents Library poskytuje programovací model založený na činiteli a rozhraní pro předávání zpráv pro hrubý tok dat a úkoly vytváření kanálů.

Standardní knihovna C++

Následující seznam popisuje mnoho změn, které byly provedeny v knihovně Standard C++.

  • Nová funkce odkazu rvalue jazyka C++ byla použita k implementaci přesunutí sémantiky a dokonalého předávání pro mnoho funkcí v knihovně Standard Template Library. Sémantika přesunu a dokonalé předávání značně vylepšuje výkon operací, které přidělují nebo přiřazují proměnné nebo parametry.

  • Odkazy Rvalue se používají také pro implementaci nové třídy unique_ptr, což je bezpečnější typ chytrého ukazatele než třída auto_ptr. Třída unique_ptr je přemístitelná, ale ne kopírovatelná, implementuje striktní sémantiku vlastnictví bez ovlivnění zabezpečení a funguje dobře s kontejnery, které pracují s odkazy rvalue. Třída auto_ptr je zastaralá.

  • Patnáct nových funkcí, například find_if_not, copy_if, a is_sorted, bylo přidáno do záhlaví <algorithm>.

  • V záhlaví <memory> je nová funkce make_shared, která představuje výhodný, robustní a efektivní způsob, jak vytvořit sdílený ukazatel na objekt ve stejné době, kdy je vytvořen objekt.

  • Jednotlivě propojené seznamy jsou podporovány záhlavím <forward_list>.

  • Nové funkce člena cbegin, cend, crbegin a crend poskytují const_iterator k přesunování vpřed nebo vzad prostřednictvím kontejneru.

  • Záhlaví <system_error> a souvisejících šablony podporují zpracování nízkoúrovňového systémových chyb.

  • Členy třídy exception_ptr lze použít k dopravě výjimek mezi podprocesy.

  • Záhlaví <codecvt> podporuje konverzi různých kódování znaků Unicode do jiné kódování.

  • V záhlaví <allocators> je definováno několik šablon, které pomáhají přidělit a volné bloky paměti pro kontejnery založené na uzlu.

  • Existuje řada aktualizací záhlaví <random>.

Knihovna tříd Microsoft Foundation (knihovna MFC)

Funkce systému Windows 7

MFC podporuje mnoho funkcí systému Windows 7, například uživatelské rozhraní (UI) pásu karet, hlavní panel, seznam odkazů, miniatury s více kartami, náhledy miniatur, indikátor průběhu, ikony překrytí a indexování hledání. Protože knihovna MFC automaticky podporuje spousty funkcí Windows 7, není pravděpodobně nutné měnit existující aplikaci. Chcete-li v nových aplikacích podporovat další funkce, použijte Průvodce aplikací MFC k zadání funkce, kterou chcete použít.

Sledování MultiTouch

MFC podporuje aplikace, které mají uživatelské rozhraní MultiTouch, například aplikace, které jsou napsány pro operační systém Microsoft Surface. Aplikace MultiTouch může pracovat s dotykovými zprávami systému Windows a gesty, které jsou kombinací dotykových zpráv. Stačí zaregistrovat vaši aplikaci k události spojení a gest a operační systém přesměruje události MultiTouch k obslužným rutinám událostí.

Sledování s vysokým DPI

Ve výchozím nastavení, jsou aplikace MFC nyní s vysokým rozlišením DPI. Funguje-li aplikace s ohledem na vysoké rozlišení, operační systém může měnit velikost oken, textu a dalších elementů uživatelského rozhraní podle aktuálního rozlišení obrazovky. To znamená, že obraz s měřítkem bude s větší pravděpodobností rozložen správně a nikoli oříznut nebo pixelován.

Správce restartu

Správce restartu automaticky ukládá dokumenty a restartuje aplikace, pokud se neočekávaně ukončí nebo restartují. Správce restartu můžete použít například ke spuštění aplikace po tom co byla zavřena automatickou aktualizací. Další informace o tom, jak nakonfigurovat aplikace pomocí správce restartu naleznete v tématu Postupy: Přidání podpory správce restartování.

CTaskDialog

CTaskDialog třída může být použita namísto standardní AfxMessageBox message box. CTaskDialog třída zobrazuje a shromažďuje více informací než standardní message box.

Knihovna SafeInt

Nová Knihovna SafeInt provádí bezpečné aritmetické operace tohoto účtu bez přetečení celého čísla. Tato knihovna také porovnává různé druhy celých čísel.

Nová makra aktivní knihovny šablony (ATL)

Nová makra byla přidána do knihovny ATL, čímž se rozšířily funkce PROP_ENTRY_TYPE a PROP_ENTRY_TYPE_EX. PROP_ENTRY_INTERFACE a PROP_ENTRY_INTERFACE_EX umožňují přidat seznam platných CLSID. PROP_ENTRY_INTERFACE_CALLBACK a PROP_ENTRY_INTERFACE_CALLBACK_EX umožňují zadat funkce zpětného volání, chcete-li zjistit, zda je identifikátor CLSID platný.

/ analýza varování

Většina varování /analyze (analýza kódu Enterprise) byla odstraněna z knihoven C Run-Time (CRT), MFC a ATL.

Animace a D2D podpora

MFC nyní podporuje animace a grafiku Direct2D. Knihovna MFC má několik nových tříd MFC a funkcí, které tuto možnost podporují. Existují také dva nové návody ukazující, jak do projektu přidat objekt D2D a objekt animace. Těmito návody jsou Walkthrough: Adding a D2D Object to an MFC Project a Walkthrough: Adding Animation to an MFC Project.

Integrované vývojové prostředí (IDE)

V kompilátoru Visual C++ 2010 nabízí integrované vývojové prostředí (IDE) významné zlepšení výkonu, přesnosti, škálovatelnosti a nástrojů, které vám pomohou být produktivnější.

Vylepšená technologie IntelliSense

Technologie IntelliSense pro Visual C++ byla zcela přepracována, aby byla rychlejší, přesnější a aby zvládala větší projekty. Abyste dosáhli tohoto zlepšení, IDE rozlišuje mezi tím, jak vývojář zobrazuje a mění zdrojový kód, a tím, jak IDE používá nastavení zdrojového kódu a projektu k vytvoření řešení.

Kvůli tomuto oddělení povinností jsou funkce procházení, jako je Zobrazení třídy a nové dialogové okno Přejít na, zpracovány systémem, který je založen na novém souboru databáze v počítači serveru SQL Server (SDF), který nahrazuje staré procházení bez kompilace (. ncb) soubor. Funkce IntelliSense, jako například rychlé informace, automatické dokončování a nápověda k parametrům pomůže analyzovat překladatelské jednotky pouze v případě potřeby. Hybridní funkce, jako například nové okno Hierarchie volání, používají kombinaci funkcí Procházet a IntelliSense.

Protože technologie IntelliSense zpracovává pouze informace, které momentálně požadujete, prostředí IDE lépe odpovídá. Protože jsou informace aktuálnější, zobrazení a okna IDE a jsou přesnější. A konečně, protože je infrastruktura IDE lépe organizovaná, nabízí více možností a je lépe škálovatelná, zvládne větší projekty.

Zmenšení chyb technologie IntelliSense

Integrované vývojové prostředí (IDE) lépe zjistí chyby, které mohou způsobit ztrátu technologie IntelliSense, a zobrazí červené podtržení vlnovkou pod nimi. Navíc, rozhraní IDE zobrazuje chyby IntelliSense do Okna seznamu chyb. Chcete-li zobrazit kód, který je příčinou problému, dvakrát klikněte na chybu v Okně seznamu chyb.

#include funkce automatického dokončování

Rozhraní IDE podporuje automatické dokončení pro klíčové slovo #include . Pokud zadáte #include, rozhraní IDE vytvoří rozevírací seznam platných souborů záhlaví. Pokud budete pokračovat psaním názvu soubor, rozhraní IDE vyfiltruje seznam založený na vašem vstupu. V libovolném okamžiku můžete vybrat ze seznamu soubor, který chcete zahrnout. To vám umožňuje rychle zahrnout soubory bez znalosti jejich přesných názvů.

Přejděte na

Dialogové okno Přejít na umožňuje vyhledávat všechny symboly a soubory v projektu, které odpovídají zadanému řetězci. Výsledky hledání jsou okamžitě revidovány při psaní dalších znaků do vyhledávacího řetězce. V poli zpětné vazby Výsledky zjistíte počet nalezených položek; díky tomu se budete moci lépe rozhodnout, zda chcete vyhledávání omezit. Pole zpětné vazby Druh/Obor, Umístění a Náhled vám pomohou rozlišit položky, které mají podobné názvy. Kromě toho můžete rozšířit tuto funkci pro podporu dalších programovacích jazyků.

Paralelní ladění a profilování

Ladicí program aplikace Visual Studio pracuje se souběžností za běhu a pomáhá při odstraňování potíží s aplikacemi paralelního zpracování. K vizualizaci celkového chování aplikace můžete použít nový nástroj profiler souběžnosti. Můžete také použít nová okna nástroje k vizualizaci stavu úkolů a jejich zásobníků volání.

Návrhář pásu karet

Ribbon Designer je grafický editor, který umožňuje vytvořit a upravit uživatelské rozhraní pásu karet MFC. Konečné uživatelské rozhraní pásu karet je reprezentováno souborem prostředků založeným na XML (.mfcribbon-ms). U existujících aplikací můžete zachytit aktuální uživatelské rozhraní pásu karet dočasným přidáním několika řádků kódu a vyvoláním nástroje Návrhář pásu karet. Po vytvoření souboru prostředků pásu karet je možné nahradit ručně zapsaný kód uživatelského rozhraní pásu karet několika příkazy, které zavedou prostředky pásu karet.

Hierarchie volání

Okno Hierarchie volání umožňuje procházet všechny funkce, které jsou volány prostřednictvím konkrétní funkce, nebo všechny funkce, které vyžadují určitou funkci.

Nástroje

Průvodce třídou MFC

Visual C++ 2010 přivádí zpět ceněný nástroj Průvodce třídou MFC. Průvodce třídami MFC je pohodlný způsob přidávání tříd, zpráv a proměnných do projektu beze změny ruční změny sad zdrojových souborů.

Průvodce ovládacím prvkem knihovny ATL

Průvodce řízení knihovny ATL již automaticky vyplní ProgID pole. Pokud ovládací prvek knihovny ATL nemá ProgID, nemohou s ním pracovat další nástroje. Jedním příkladem takového nástroje, který vyžaduje u ovládacích prvků ProgID je Insert Active Control dialogové okno. Další informace o tomto dialogovém okně naleznete v tématu Insert ActiveX Control Dialog Box.

Microsoft Macro Assembler - reference

Přídavek YMMWORD datového typu podporuje 256bitové multimediální operandy, které jsou zahrnuté v Intel Advanced Vector Extensions (AVX) instrukcích.

Viz také

Koncepty

Nejnovější změny ve Visual C++ 2008

Další zdroje

Začínáme s Visual C++ 2010