Microsoft propose une compilation des fonctionnalit�s de C++ 17 dans la pr�version Visual C++ 2017 version 15.3,
et indique celles qui sont � venir

La pr�version Visual Studio 2017 version 15.3 est d�sormais disponible et s�accompagne d�une mise � jour des outils Visual C ++ (c'est-�-dire le compilateur, le linker et les biblioth�ques). Comme Microsoft l�a fait pour les mises � jour VS 2015, l�entreprise a �galement ajout� des fonctionnalit�s C ++ 17 dans les mises � jour VS 2017 � une fr�quence de publication similaire.

Contrairement aux mises � jour de VS 2015 (qui combinent l'IDE et les changements d'outils), l'EDI de VS 2017 est mis � jour plus fr�quemment par des mises � jour mineures. Cette fois-ci, Microsoft a pr�cis� qu�il s'agit de la premi�re mise � jour du jeu d'outils (�galement appel�e � mise � jour fondamentale �).

Voici une table de fonctionnalit�s compil�es accompagn�e de quelques notes. Dans cette table figurent �galement des fonctionnalit�s � venir qui seront disponibles dans la VS 2017.3 Preview 2 et sont marqu�s comme �tant [P2].
C ++ 03/11 Caract�ristiques du langage de base Statut R�f�rence document Notes
[Tout le reste] VS 2015 [A]
Recherche de nom en deux phases Partiel [deuxPhases]
Expression SFINAE Partiel N2634 [B]
Pr�processeur C99 Partiel N1653 [C]
Types entiers �tendus N/A N1988 [D]
C ++ 14 Caract�ristiques du langage de base Statut R�f�rence de document Notes
�viter / r�partir les allocations N/A N3664 [E]
Modification progressive des conversions contextuelles VS 2013 N3323
Litt�raux binaires VS 2015 N3472
Types de retour auto et d�clencheur (auto) VS 2015 N3638
Captures initiales VS 2015 N3648
G�n�rique lambdas VS 2015 N3649
Mod�les variables VS 2015.2 N3651
Extended constexpr VS 2017 N3652
NSDMI pour agr�gats VS 2017 N3653
Attribut [[obsol�te]] VS 2015 N3760
D�saffectation dimensionn�e VS 2015 N3778
S�parateurs de chiffres VS 2015 N3781
C ++ 17 Caract�ristiques du langage de base Statut R�f�rence de document Notes
Nouvelles r�gles pour auto avec les listes de d�marrage VS 2015 N3922 [14]
static_assert VS 2017 N3928
Typename dans le mod�le template-parameters VS 2015 N4051 [14]
Suppression de trigraphes VS 2010 N4086 [14]
D�finition de noms d'espace imbriqu� VS 2015.3 N4230
Correction des conversions de qualification Non N4261
Attributs pour les espaces de noms et les �num�rateurs VS 2015 N4266 [14]
U8 caract�res litt�raires VS 2015 N4267 [14]
Autoriser plus de mod�les non typ�s Non N4268
Fold Expressions Non N4295
Suppression de certains plis unaires vides Non P0036R0
Suppression du mot-cl� du registre VS 2017.3 P0001R1
Retrait de l'op�rateur ++ pour bool VS 2017.3 P0002R1
Ajout de l'option noexcept au syst�me de type Non P0012R1
Initialisation agr�g�e �tendue Non P0017R1
Capturer *this par valeur VS 2017.3 P0018R3
__has_include VS 2017.3 [P2] P0061R1 [14]
Reformuler les constructeurs h�r�ditaires Non P0136R1
Liste directe des �num�rations fixes � partir d'entiers VS 2017.3 P0138R2
constexpr lambdas VS 2017.3 P0170R1
Gamme g�n�ralis�e pour les boucles VS 2017 P0184R0 [14]
[[fallthrough]] attribut VS 2017 P0188R1
[[nodiscard]] attribut VS 2017.3 P0189R1
[[maybe_unused]] attribut VS 2017.3 P0212R1
litt�raux Hexfloat Non P0245R1
Utilisation des espaces de noms d'attributs sans r�p�tition VS 2017.3 P0028R4
Allocation de m�moire dynamique suraliment�e Non P0035R4
D�duction d'argument de mod�le pour les mod�les de classe Non P0091R3
D�claration de param�tres de mod�le sans type avec auto Non P0127R2
Elision de copie garantie VS 2017.3 P0135R1
Ordre d'�valuation de l'expression de raffinage Non P0145R3
Fixations structur�es VS 2017.3 P0217R3
Ignorer les attributs non reconnus Non P0283R2
constexpr if-statements VS 2017.3 [P2] P0292R2 [F]
D�clarations de s�lection avec les initialiseurs VS 2017.3 [P2] P0305R1
Variables en ligne Non P0386R2
Correspondance des mod�les-param�tres du mod�le aux arguments compatibles Non P0522R0
Suppression des sp�cifications d'exception dynamiques Non P0003R5
Expansion des paquets dans les d�clarations d'utilisation Non P0195R2

[A] � l'exception des sp�cifications d'exception dynamiques, qui ont �t� obsol�tes dans C ++ 11 et principalement supprim�es dans C ++ 17. Notez que C ++ 17 18.4 [except.spec] / 2 indique "The noexcept-specifier throw () est obsol�te (D.3) et �quivalent � noexcept noexcept (true)." Mais VS 2017 version 15.3 preview Consid�re actuellement throw () comme �quivalent � __declspec (nothrow).

[deuxPhase] Alors que la recherche de nom en deux phases n'est pas prise en charge dans la pr�version VS 2017 version 15.3, l'�quipe du compilateur effectue un travail majeur dans les coulisses. Pour la pr�version 2, l'option / permissive-compilateur active le support partiel pour la recherche de nom en deux phases (une signification partielle d'environ 60 % compl�te).

[B] Bien que l'expression SFINAE soit partiellement prise en charge, elle est presque compl�te. Elle �tait suffisante pour STL dans VS 2015.2, et Expression SFINAE a re�u d'autres corrections de bogues pour des biblioth�ques suppl�mentaires comme Boost. La d�ficience restante la plus importante est la n�cessit� d'utiliser des types d'�tiquettes uniques lors de l'ex�cution de void_t / decltype Expression SFINAE.

[C] Le support du pr�processeur C C99 est encore partiel dans le sens o� les macros variadiques fonctionnent presque.

[D] Les types entiers �tendus sont autoris�s, mais pas requis. Comme Clang et GCC, Microsoft a choisi de ne pas les impl�menter.

[E] Les allocations d'�vitement / fusion sont autoris�es, mais pas requises. Ici �galement Microsoft a choisi de ne pas les impl�menter.

[F] pris en charge sous / std: c ++ 14 avec "avertissement C4984: 'si constexpr' est une extension de langage C ++ 17". Cela permettra au STL (� l'avenir) d'utiliser "if constexpr" dans sa mise en �uvre.

[14] Ces fonctionnalit�s sont toujours activ�es, m�me sous / std: c ++ 14.

[P2] Ces fonctionnalit�s ont �t� enregistr�es et seront disponibles dans VS 2017.3 Preview 2.