Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Two phase lookup - explanation needed

Tags:

c++

templates

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

like image 616
smallB Avatar asked Oct 14 '11 12:10

smallB


1 Answers

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.

like image 133
Alok Save Avatar answered Oct 18 '22 23:10

Alok Save