Yardım GCC11 ve C++20 Güncellemesi

Konu sahibi bu konuda soru soruyor. Sorusu ile ilgili bilgisi olanların yanıtlamasını bekliyor.

nebnebsen

Geliştirici
Geliştirici
Üye
Mesaj
454
Çözümler
23
Beğeni
113
Puan
509
Ticaret Puanı
0
Merhaba, gcc11 ve c++20 güncellemesi yapıyorum. DB build aldım. Game build alırken hata alıyorum.

Hata:
arena.cpp: In member function 'bool CArenaMap::AddArena(DWORD, WORD, WORD, WORD, WORD)':
arena.cpp:83:89: error: ISO C++ forbids comparison between pointer and integer [-fpermissive]
   83 |                 if ((CArena*)(*iter)->CheckArea(startA_X, startA_Y, startB_X, startB_Y) == false)
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~


İlgili kısım:
    for (; iter != m_listArena.end(); iter++)
    {
        if ((CArena*)(*iter)->CheckArea(startA_X, startA_Y, startB_X, startB_Y) == false)
        {
            sys_log(0, "CArenaMap::AddArena - Same Start Position set. stA(%d, %d) stB(%d, %d)", startA_X, startA_Y, startB_X, startB_Y);
            return false;
        }
    }
 
İlgili kod bloğunu bu şekilde düzenleyerek tekrar dener misiniz, saygılar.

C++:
bool CArenaMap::AddArena (DWORD mapIdx, WORD startA_X, WORD startA_Y, WORD startB_X, WORD startB_Y)
{
    auto iter = m_listArena.begin();

    for (; iter != m_listArena.end(); iter++)
    {
        if ((CArena*) (*iter)->CheckArea (startA_X, startA_Y, startB_X, startB_Y) == false)
        {
            sys_log (0, "CArenaMap::AddArena - Same Start Position set. stA(%d, %d) stB(%d, %d)", startA_X, startA_Y, startB_X, startB_Y);
            return false;
        }
    }

    m_dwMapIndex = mapIdx;

    CArena* pArena = M2_NEW CArena (startA_X, startA_Y, startB_X, startB_Y);
    m_listArena.push_back (pArena);

    return true;
}
 
İlgili kod bloğunu bu şekilde düzenleyerek tekrar dener misiniz, saygılar.

C++:
bool CArenaMap::AddArena (DWORD mapIdx, WORD startA_X, WORD startA_Y, WORD startB_X, WORD startB_Y)
{
    auto iter = m_listArena.begin();

    for (; iter != m_listArena.end(); iter++)
    {
        if ((CArena*) (*iter)->CheckArea (startA_X, startA_Y, startB_X, startB_Y) == false)
        {
            sys_log (0, "CArenaMap::AddArena - Same Start Position set. stA(%d, %d) stB(%d, %d)", startA_X, startA_Y, startB_X, startB_Y);
            return false;
        }
    }

    m_dwMapIndex = mapIdx;

    CArena* pArena = M2_NEW CArena (startA_X, startA_Y, startB_X, startB_Y);
    m_listArena.push_back (pArena);

    return true;
}
Farklı şekilde çözdüm hocam. Warning var onu çözmeye çalışıyorum fakat çözemedim.


Kod:
../../libthecore/include/log.h:30:39: warning: 'this' pointer is null [-Wnonnull]
   30 | #define sys_err(fmt, args...) _sys_err(__FUNCTION__, __LINE__, fmt, ##args)
      |                               ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Kod:
#define sys_err(fmt, args...) _sys_err(__FUNCTION__, __LINE__, fmt, ##args)
 
Geri
Üst