Ошибка: ожидаемый конструктор, деструктор или преобразование типа перед ';' токен CEGUI

Я новичок здесь, по крайней мере, пост, потому что я прочитал несколько постов, которые помогли мне. Теперь я хотел бы посмотреть, может ли кто-нибудь помочь с этим кодом:

#ifndef CPFSTATIC_H_
#define CPFSTATIC_H_

#include <CEGUI/CEGUI.h>
#include <CEGUI/CEGUIWindowRendererModule.h>
#include "CPFStaticProperties.h"

namespace CEGUI{
    /*!
     * \brief
     *      Based in FalagardStatic class.
     *
     *      This class requires LookNFeel to be assigned. The LookNFeel should     provide the following:
     *      States:
     *          - Enabled                     - basic rendering for enabled state.
     *          - Disabled                    - basic rendering for disabled state.
     *          - EnabledFrame                - frame rendering for enabled state
     *          - DisabledFrame               - frame rendering for disabled state.
     *          - WithFrameEnabledBackground  - backdrop rendering for enabled state with frame enabled.
     *          - WithFrameDisabledBackground - backdrop rendering for disabled state with frame enabled.
     *          - NoFrameEnabledBackground    - backdrop rendering for enabled state with frame disabled.
     *          - NoFrameDisabledBackground   - backdrop rendering for disabled state with frame disabled.
     */
class CPFStatic : public WindowRenderer
{
public:
    static const utf8   TypeName[];

    CPFStatic(const String &type);
    virtual ~CPFStatic();

    bool    isFrameEnabled() const { return d_frameEnabled; }
    bool    isBackgroundEnabled() const { return d_backgroundEnabled; }
    void    setFrameEnabled(bool setting);
    void    setBackgroundEnabled(bool setting);

    virtual void render();

protected:
    // static properties
    static CPFStaticProperties::FrameEnabled        d_frameEnabledProperty;
    static CPFStaticProperties::BackgroundEnabled   d_backgroundEnabledProperty;

    // implementation data
    bool    d_frameEnabled;
    bool    d_backgroundEnabled;
};
//CEGUI_DEFINE_WR_FACTORY(CPFStatic)
CEGUI::WindowRendererManager::addFactory<TplWindowRendererFactory<CPFStatic> >();
}

#endif /* CPFSTATIC_H_ */

Я работаю над тестированием Debian, проблема в том, что при компиляции я получаю

CPFStatic.h:69:82: error: expected constructor, destructor, or type conversion before ‘;’ token

Я просто не понимаю Для того, что я вижу, это должно работать. Буду признателен за любую помощь.

1 ответ

Эта строка кода пытается вызвать статическую функцию-член WindowRendererManager.

CEGUI::WindowRendererManager::addFactory<TplWindowRendererFactory<CPFStatic> >();

Однако текущее местоположение этого вызова функции не является допустимым местом для вызова. Вы должны добавить вызов функции в метод, который выполняется во время инициализации программы (чтобы фабрика была доступна на время выполнения). Это может быть в начале main() или другого метода в вашем приложении.

Другие вопросы по тегам