The C++ Build Insights SDK is compatible with Visual Studio 2017 and above. To see the documentation for these versions, set the Visual Studio Version selector control for this article to Visual Studio 2017 or Visual Studio 2019. It's found at the top of the table of contents on this page.

The TEMPLATE_INSTANTIATION_DATA structure describes a template instantiation.


    unsigned long long  SpecializationSymbolKey;
    unsigned long long  PrimaryTemplateSymbolKey;
    int                 KindCode;



SpecializationSymbolKey The key for the template specialization's type. This value is unique within the trace being analyzed.
PrimaryTemplateSymbolKey The key for the primary template type that was specialized. This value is unique within the trace being analyzed.
KindCode The template instantiation's type. For more information, see TEMPLATE_INSTANTIATION_KIND_CODE.


The keys in the TEMPLATE_INSTANTIATION_DATA structure are unique within the trace being analyzed. However, two different keys coming from different compiler front-end passes may point to two identical types. When consuming TEMPLATE_INSTANTIATION_DATA information from multiple compiler front-end passes, use the SYMBOL_NAME events to determine if two types are the same. SymbolName events are emitted at the end of a compiler front-end pass, after all template instantiations have taken place.