Two phase lookup - explanation needed

C++Templates

C++ Problem Overview


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

C++ Solutions


Solution 1 - C++

Templates are compiled (atleast) twice:

  1. Without Instantiation the template code itself is checked for syntax.
    Eg: Any syntax 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 in turn call to functions which might not be present for that particular type.

This is called as Two Phase Lookup.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionsmallBView Question on Stackoverflow
Solution 1 - C++Alok SaveView Answer on Stackoverflow