Why is partial specialization of a nested class template allowed, while complete isn’t?

My guess as to why this happens: complete specializations are no longer “template classes/functions”, they are are “real” classes/methods, and get to have real (linker-visible) symbols. But for a completely-specialized template inside a partially-specialized one, this would not be true.
Probably this decision was taken just to simplify the life of compiler-writers (and make life harder for coders, in the process 😛 ).

Leave a Comment