Created on 2015-01-19.00:00:00 last changed 2 weeks ago
Default argument instantiation is described in 13.9.2 [temp.inst] paragraph 12, and although instantiation of default arguments for member functions of class templates is mentioned elsewhere a number of times, this paragraph only describes default argument instantiation for function templates.
Change in 13.9.2 [temp.inst] paragraph 12 as follows:
If a function
templatef is called in a way that requires a default argument to be used, the dependent names are looked up, the semantics constraints are checked, and the instantiation of any template used in the default argument is done as if the default argument had been an initializer used in a function template specialization with the same scope, the same template parameters and the same access as that of the function template f used at that point, except that the scope in which a closure type is declared (184.108.40.206 [expr.prim.lambda.closure]) --- and therefore its associated namespaces --- remain as determined from the context of the definition for the default argument. This analysis is called default argument instantiation. The instantiated default argument is then used as the argument of f.
|2022-11-20 07:54:16||admin||set||status: open -> review|
|2022-02-18 07:47:23||admin||set||status: drafting -> open|