g++
сообщает об ошибке синтаксического анализа с кодом ниже:г ++ Ошибка синтаксического анализа на «:»
class Sy_timeLineDelegateScene : public QGraphicsScene
{
Q_OBJECT
public:
Sy_timeLineDelegateScene(Sy_animPropertyTimeLine* timeline,
Sy_animClock* clock,
QObject* parent = nullptr);
virtual ~Sy_timeLineDelegateScene() {}
protected slots: // Parse error at ":"
typedef QMap< Sy::Frame, Sy_timeLineDelegateKey* > DelegateTimeLine;
...
Моим класс является производным от QObject
и я объявил Q_OBJECT
макрос перед ошибкой, но если я закомментируйте часть slots
, он компилируется отлично. Я использовал Qt
годами и никогда не видел этого раньше, это должно быть что-то глупое, но я не вижу, что вызывает проблему.
Разве это не просто 'защищены:' 'без slots'? –
Вы передавали код через moc перед g ++? –
Секции «Слоты» и «Сигналы» должны содержать только функции; ни типы, ни переменные-члены. – leemes