in dem Zusammenhang mit Templates (jetzt in GNU C++) ...
Code:
class TObject {
public:
virtual std::string ClassName() const;
virtual ~TObject();
};
template <typename T>
class QChar: public TObject {
public:
// constructor
QChar(T);
};
extern "C" {
DLL_EXPORT bool
isBlank_QChar(uint64_t addr) {
auto * objptr = reinterpret_cast<qvc::QChar*>(addr);
check_pointer(addr, reinterpret_cast<uint64_t>(objptr));
std::cout << "objptr = " << objptr->ClassName() << std::endl;
if (objptr->isBlank())
return true;
return false;
}
};
in der Funktion oben caste ich einen bereits erstellten Klassen-Pointer (vieleicht nicht die beste Lösung, aber das sei erstmal dahingestellt).
Die Frage ist aber nun: wie kann ich in der Zeile:
Code:
auto * objptr = reinterpret_cast<qvc::QChar*>(addr);
den Typen erhalten ?
muss ich dazu den Typen während der Initialization speichern, um ihn dann and <qvc::QChar*> angeben zu können ?
wie macht man das ?