void foo(){ void a()(){ ... } void b() { ... } }That's a very simple workaround (albiet unintuitive - unless I'm just tootired right now). It leads me to two questions: 1. How the heck does that work?Symbol lookup is done upon the first instantiation of the local template.
I'd argue it shouldn't work, but it'd require copying the scope. instantiation scope -> declaration scope -> sequence snapshot So again b shouldn't be is a's scope.