/ifcMap
This switch tells the compiler where to find the IFC reference map file, which maps references to named modules and header units to their corresponding IFC (.ifc
) files.
Syntax
/ifcMap
filename
Remarks
The *filename*
argument specifies the IFC reference map file. It can be relative to the compiler's working directory, or an absolute path.
You can provide multiple /ifcMap
arguments to the compiler.
The IFC reference map file format is a subset of the TOML file format. The IFC reference map file can contain a mix of [[module]]
and [[header-unit]]
references.
Syntax errors or unrecognized table names result in compiler error C7696
(TOML parse error).
Map named modules
The format of the IFC reference map file for named modules is:
# Using literal strings
[[module]]
name = 'M'
ifc = 'C:\modules\M.ifc'
# Using basic strings
[[module]]
name = "N"
ifc = "C:\\modules\\N.ifc"
This IFC reference map file maps the named modules 'M'
and 'N'
to their respective IFC files. The equivalent `/reference' is:
/reference M=C:\modules\M.ifc /reference N=C:\modules\N.ifc
For more information about what types of module names are valid for the name
field, see /reference remarks
.
Map header units
The format of the IFC reference map file for header units is:
# Using literal strings
[[header-unit]]
name = ['quote', 'my-utility.h']
ifc = 'C:\header-units\my-utility.h.ifc'
[[header-unit]]
name = ['angle', 'vector']
ifc = 'C:\header-units\vector.ifc'
# Using basic strings
[[header-unit]]
name = ["quote", "my-engine.h"]
ifc = "C:\\header-units\\my-engine.h.ifc"
[[header-unit]]
name = ["angle", "algorithm"]
ifc = "C:\\header-units\\algorithm.ifc"
This IFC reference map file maps "my-utility.h"
to C:\header-units\my-utility.h.ifc
, and <vector>
to C:\header-units\vector.ifc
, and so on. The equivalent /headerUnit
is:
/headerUnit:quote my-utility=C:\header-units\my-utility.h.ifc /headerUnit:angle vector=C:\header-units\vector.ifc /headerUnit:quote my-engine.h=C:\header-units\my-engine.h.ifc /headerUnit:angle algorithm=C:\header-units\algorithm.ifc
When [[header-unit]]
is specified in an IFC reference map file, the compiler implicitly enables /Zc:preprocessor
, just as it's implicitly enabled when /headerUnit
is used. For more information about the behavior of the angle
and quote
lookup methods, see /headerUnit remarks.
See also
Overview of modules in C++
Walkthrough: Build and import header units in Visual C++ projects
Using C++ Modules in MSVC from the Command Line