Hey all --
This is really a C/C++ question, and it's giving me fits, since it's not obvious why there's a syntax error.
Now, I believe I have a legitimate reason for doing what I'm doing, so just trust me. Yes, the code below looks dangerous, but I have some function pointers in legacy code that I must deal with, so I'm trying to minimize the danger in this particular case with some modicum of type checking based on return type.
I'd like to write a quick function template to change a function pointer from type " return_type (*)(void) " to "return_type (*)(...)". I thought this would work:
template <typename RetT> // zero-parameter case
RetT (*convert_ptr(...)) ( RetT (*src)(void) ) { // can't use variadic templates yet.. sigh....
typedef RetT (*rt)(...); //wouldn't mind getting rid of this line somehow
return reinterpret_cast<rt>(src); //ERROR: "src" was not declared in this scope.
}
Why is gcc tripping on the last line?