I have tried several variants on this code to no avail. Outer is in a header, along with the extern template statements, and the specializations after main are in their own cpp file. Main is in a different cpp file.
What do have to do to make this work? I cannot bring the definitions of f() into the header, and they will be different for different template parameters. Ideally, I want Test to remain a private member of Outer, though this can change if it's the only option.
I have some tedious work ahead. I have 12 possible instantiations I need to cover and two functions in my real code, so that's going to be 36 lines of just declarations... EDIT: Wasn't so hard :)