https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88628
--- Comment #8 from merukun1125 at docomo dot ne.jp --- (In reply to Jakub Jelinek from comment #7) > http://eel.is/c++draft/expr.prim.lambda.closure says: > > The type of a lambda-expression (which is also the type of the closure > object) is a unique, unnamed non-union class type, called the closure type, > whose properties are described below. > > The closure type is declared in the smallest block scope, class scope, or > namespace scope that contains the corresponding lambda-expression. > > As the lambda expression in this case is contained in a block scope within > the get function template, the closure type is declared there. Thank you, Jakub Jelinek!