This is an unofficial snapshot of the ISO/IEC JTC1 SC22 WG21 Core Issues List revision 113d. See http://www.open-std.org/jtc1/sc22/wg21/ for the official list.

2024-03-20


2222. Additional contexts where instantiation is not required

Section: 13.9.2  [temp.inst]     Status: drafting     Submitter: CWG     Date: 2016-01-11

According to 13.9.2 [temp.inst] paragraph 6,

If the function selected by overload resolution (12.2 [over.match]) can be determined without instantiating a class template definition, it is unspecified whether that instantiation actually takes place.

There are other contexts in which a smart implementation could presumably avoid instantiations, such as when doing argument-dependent lookup involving a class template specialization when the template definition contains no friend declarations or checking base/derived relationships involving incomplete class template definitions. It would be helpful to enumerate such contexts.