标签: c++ templates
编译器使用两阶段查找来编译模板类是什么意思?
答案 0 :(得分:62)
模板(至少)编译两次:
如果没有实例化,则会检查模板代码本身的语法 例如:任何语法错误错误,例如;等。
;
在实例化时(确切类型已知),再次检查模板代码以确保所有调用对该特定类型有效。 例如:模板可能会调用对该特定类型可能不存在的函数。
这称为两阶段查找。