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

  • Konuyu açan Konuyu açan nebisenol
  • Açılış Tarihi Açılış Tarihi
  • Yanıt Yanıt 2
  • Gösterim Gösterim 576
Konu sahibi bu konuda soru soruyor. Sorusu ile ilgili bilgisi olanların yanıtlamasını bekliyor.

nebisenol

Geliştirici
Geliştirici
Yardımsever Üye
MT Üye
Mesaj
605
Çözümler
31
Beğeni
228
Puan
629
Ticaret Puanı
0
Merhaba, gcc11 ve c++20 güncellemesi yapıyorum. DB build aldım. Game build alırken hata alıyorum.

Hata:
Genişlet Daralt Kopyala
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:
Genişlet Daralt Kopyala
    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++:
Genişlet Daralt Kopyala
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++:
Genişlet Daralt Kopyala
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:
Genişlet Daralt Kopyala
../../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:
Genişlet Daralt Kopyala
#define sys_err(fmt, args...) _sys_err(__FUNCTION__, __LINE__, fmt, ##args)
 
Geri
Üst