kennt ihr eine Möglichkeit, wie man einen void-Pointer zu einem Funktionspointer castet, ohne dass eine Warnung vom Typ "ISO C++ forbids casting between pointer-to-function and pointer-to-object" angezeigt wird?
Im Moment bastle ich an einer kleinen Anwendung zum dynamischen Laden von dynamischen Objekten und hatte mir das Ziel gesetzt, mit meinem GCC-Compiler so gut wie möglich "standardisiert" zu programmieren.
Bisher typecaste ich so
Code: Alles auswählen
template<typename FunctionType>
class Plugin
{
public:
typedef Plugin<FunctionType> TypedPlugin;
static Plugin* at(const std::string& pathToPlugin)
{
TypedPlugin* plugin = new TypedPlugin(pathToPlugin);
return plugin;
}
FunctionType extract(const std::string& symbolName)
{
void* handle = sobj->getSymbol(symbolName);
return reinterpret_cast<FunctionType>(handle);
}
private:
/** Lädt ein dynamisches Objekt und gibt einen void-Pointer zurück. */
SharedObject* sobj;
Plugin(const std::string& pathToPlugin)
: sobj(SharedObject::load(pathToPlugin))
{}
};
Schönen Abend schon mal ;)
PS: Ist bei euch auch so schönes wetter?