Objective-C does not provide templates and templates do not work with Objective-C classes when compiled as Objective-C++. It is not always possible to have a 1-to-1 conversion between two programming languages. For example, Objective-C does not provide compile-time enforced private methods at all, so there is no way to exactly implement what you want.
The same goes the other way, Objective-C has features that are not available in C++, such as the @encode()
directive.
Perhaps related to this topic: it is important to understand that design patterns that work well with C++ do not necessarily work well—or at all—with Objective-C.
What is the goal of your design of being able to singletonise any class? Perhaps there is a more established Objective-C way to acheive what you want. There may also be a way to implement something similar using preprocessor macros, but you don't want to go down that path.