I assume the term "delegate" in the title of your question is not related to what is generally understood as a "delegate". You just want to forward the function call via a pointer to a function.
The compiler is stumbling over the "..." in the argument list. In fact, there is no way of simply forwarding a variable argument list from one function to the next. The usual construct in C++ to deal with that problem is the following:
JString& JString::format( const TCHAR* formatString, ... )
{
va_list args;
va_start (args, formatString);
m_Imp->format(formatString, args);
return *this;
}
That is how printf and the like are implemented in the C++ runtime library. This only works if the function you call knows that the second argument is in fact a pointer to the variable argument list.