Two phase lookup - explanation needed

2019-01-01 13:38发布

What does it mean that compiler is using two phase lookup in order to compile template class?

标签: c++ templates
1条回答
何处买醉
2楼-- · 2019-01-01 14:05

Templates are compiled (atleast) twice:

  1. Without Instantiation the template code itself is checked for syntax.
    Eg: Any syntax errors errors such as ; etc.

  2. At the time of instantiation(when the exact type is known), the template code is checked again to ensure all calls are valid for that particular type.
    Eg: The template might inturn call to functions which might not be present for that particular type.

This is called as Two Phase Lookup.

查看更多
登录 后发表回答