Is it possible to have a template class, which inherit from QObject (and has Q_OBJECT macro in it's declaration)?
I would like to create something like adapter for slots, which would do something, but the slot can take arbitrary number of arguments (number of arguments depends on the template argument).
I just tried doing it, and got linker errors. I guess gmake or moc is not getting called on this template class. Is there a way to do this? Maybe by explicitly instantiating templates?
It is not possible to mix template and Q_OBJECT but if you have a subset of types you can list the slots and signals like this:
class SignalsSlots : public QObject { Q_OBJECT public: explicit SignalsSlots(QObject *parent = 0) : QObject(parent) {} public slots: virtual void writeAsync(int value) {} virtual void writeAsync(float value) {} virtual void writeAsync(double value) {} virtual void writeAsync(bool state) {} virtual void writeAsync(svga::SSlideSwitch::SwitchState state) {} signals: void readAsynkPolledChanged(int value); void readAsynkPolledChanged(float value); void readAsynkPolledChanged(double value); void readAsynkPolledChanged(bool state); void readAsynkPolledChanged(svga::SSlideSwitch::SwitchState state); }; ... template <class T> class Abstraction : public SignalsSlots {...
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With