两阶段查找 - 需要解释

时间:2011-10-14 12:32:17

标签: c++ templates

编译器使用两阶段查找来编译模板类是什么意思?

1 个答案:

答案 0 :(得分:62)

模板(至少)编译两次:

  1. 如果没有实例化,则会检查模板代码本身的语法 例如:任何语法错误错误,例如;等。

  2. 在实例化时(确切类型已知),再次检查模板代码以确保所有调用对该特定类型有效。
    例如:模板可能会调用对该特定类型可能不存在的函数。

  3. 这称为两阶段查找。