ошибка компиляции: переменная имеет неполный тип - PullRequest
0 голосов
/ 11 июля 2019

Это ошибка make:

In file included from /Users/ingmar/src/maxr/src/game/data/map/map.cpp:32:
/Users/ingmar/src/maxr/src/game/data/model.h:221:22: error: variable has incomplete type
      'cPlayerBasicData'
                                cPlayerBasicData basicPlayerData;
                                                 ^
/Users/ingmar/src/maxr/src/game/data/player/player.h:48:7: note: forward declaration of
      'cPlayerBasicData'
class cPlayerBasicData;
      ^

Я постараюсь включить соответствующий код.

model.h:

...
#include "game/data/player/player.h"
...
class cPlayerBasicData;
...
class cModel
{
    ...
    template<typename T>
    void load(T& archive)
    {
        ...
        for (auto& player : playerList)
        {
            if (player == nullptr)
            {
                cPlayerBasicData basicPlayerData; // <- this is line 221
                player = std::make_shared<cPlayer>(basicPlayerData, *unitsData);
            }

player.h:

...
class cPlayerBasicData; // <- this is line 48
...
class cPlayer
{
    ...

player.h включен в model.h, поэтому cPlayerBasicData эффективно объявляется вперед дважды.В этом ли ошибка?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...