/reference (Utiliser le module NOMMÉ IFC)

Indique au compilateur d’utiliser un IFC (.ifc) existant pour la compilation actuelle.

Syntaxe

/reference module-name=filename
/reference filename

Arguments

filename
Nom d’un fichier qui contient des données IFC, qui sont des informations de module prédéfinies. Pour importer plusieurs modules, incluez une option distincte /reference pour chaque fichier.

module-name
Nom valide d’un nom d’unité d’interface de module principal exporté ou nom de partition de module complet.

Notes

Dans la plupart des cas, vous n’aurez pas besoin de spécifier ce commutateur, car le système de projet découvre automatiquement les dépendances de module au sein d’une solution.

L’option /reference du compilateur nécessite l’activation de l’option de /std:c++20 compilateur ou ultérieure (par /std:c++latestexemple). L’option /reference est disponible à partir de Visual Studio 2019 version 16.10.

Si l’argument /reference est sans filename module-name, le fichier est ouvert au moment de l’exécution pour vérifier les filename noms d’arguments d’une importation spécifique. Il peut entraîner des performances d’exécution plus lentes dans les scénarios qui ont de nombreux /reference arguments.

Il module-name doit s’agir d’un nom d’unité d’interface de module principal valide ou d’un nom de partition de module complet. Voici quelques exemples de noms d’interface de module principal :

  • M
  • M.N.O
  • MyModule
  • my_module

Voici quelques exemples de noms de partition de module complets :

  • M:P
  • M.N.O:P.Q
  • MyModule:Algorithms
  • my_module:algorithms

Si une référence de module est créée à l’aide d’un module-name, d’autres modules sur la ligne de commande ne sont pas recherchés si le compilateur rencontre une importation de ce nom. Par exemple, étant donné cette ligne de commande :

cl ... /std:c++latest /reference m.ifc /reference m=n.ifc

Dans le cas ci-dessus, si le compilateur voit import m; alors m.ifc qu’il n’est pas recherché.

Exemples

Compte tenu des trois modules répertoriés dans ce tableau :

Module Fichier IFC
M m.ifc
M:Part1 m-part1.ifc
Core.Networking Networking.ifc

Les options de référence à l’aide d’un filename argument ressemblent à ceci :

cl ... /std:c++latest /reference m.ifc /reference m-part.ifc /reference Networking.ifc

Les options de référence utilisant module-name=filename ressemblent à ceci :

cl ... /std:c++latest /reference m=m.ifc /reference M:Part1=m-part.ifc /reference Core.Networking=Networking.ifc

Voir aussi

/scanDependencies (Répertorier les dépendances de module sous forme standard)
/sourceDependencies:directives (Répertorier les dépendances de module et d’unité d’en-tête)
/headerUnit (Utiliser l’unité d’en-tête IFC)
/exportHeader (Créer des unités d’en-tête)