The “acp_store” Pragma

This pragma is meaningful when parsed by the Front-End Auto-Complete Parser (FEACP), as when editing in the Visual Studio IDE with IntelliSense enabled. In actual compilation, the pragma is not known and causes warning C4068 at level 1.


#pragma acp_store ( "ncbfile" [, [operation [, [type]]]] )

The required ncbfile is expected as a string constant, viz., with double-quotes. An operation may follow after a comma and is expected as an identifier. Acceptable values are add, close, del and open. The default is add. If the operation is either add (given explicitly, not defaulted) or del, then a type may follow after a comma. It also is expected as an identifier. Acceptable values are cxxrt, prebuilt and user. The default is user.


Though the syntax is checked by FEACP.DLL, interpretation of the extracted fields is a matter for whatever module called FEACP. This caller is in practice VCPKG.DLL, and perhaps is always, given that the FEACP entry points seem to be undocumented.

The ncbfile is a pathname for what Microsoft calls a “no compile browser” file and which VCPKG may use as a store for IntelliSense information. Such files are actually in PDB format, using this file format’s support for storing data in named streams. With the acp_store pragma, text in a source file can influence what IntelliSense information is available to VCPKG while editing the file.