Compiler Error C2996

'identifier' : recursive template function definition

The function definition specified by identifier attempts to instantiate its root templated class. Recursive template instantiations are not allowed.