What does it mean that compiler is using two phase lookup in order to compile template class?
Templates are compiled (atleast) twice:
Without Instantiation the template code itself is checked for syntax.
Eg: Any syntax errors errors such as
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.