Сообщение шаблоны и Q_OBJECT от 30.12.2016 8:26
Изменено 30.12.2016 8:43 gencoder
как бы обойти ошибку "Template classes not supported by Q_OBJECT", если параметрический тип нужен внутри слотов без параметров?
template<typename T>
class GLDrawer : public QGLWidget
{
Q_OBJECT
...
T rX;
T h;
public slots:
void rotateAroundX()
{
rX += h;
}
};
using GLDrawerFloat = GLDrawer<GLfloat>;
шаблоны и Q_OBJECT
как бы обойти ошибку "Template classes not supported by Q_OBJECT", если параметрический тип нужен внутри слотов без параметров?
извиняюсь, придумал ответ, но как удалить сообщение не знаю
template<typename T>
class GLDrawer : public QGLWidget
{
Q_OBJECT
...
T rX;
T h;
public slots:
void rotateAroundX()
{
rX += h;
}
};
using GLDrawerFloat = GLDrawer<GLfloat>;
извиняюсь, придумал ответ, но как удалить сообщение не знаю
template<typename T>
struct GLRotater
{
T rx;
T h;
void rotateAroundX(){ rx +=h ; }
};
using GLCurrentRotater = GLRotater<float>;
struct GLDrawer
{
/*
Q_OBJECT
...
*/
public /*slots*/:
void rotateAroundX()
{
GLCurrentRotater::rotateAroundX();
}
};