-voptargs="+acc"
without any explanation, added it works perfectly-novopt option is now deprecated and will be removed in future releases.
-novopt
is actually the default still in quartus, so if you just open a waveform and click simulate it just won't work #0 0x7b7e05 in CLayers::InitTilemapSkip() /nobackup/opt/ddnet/clangbuild/../src/game/layers.cpp:191:11
#1 0x7b98f4 in CLayers::InitBackground(IMap*) /nobackup/opt/ddnet/clangbuild/../src/game/layers.cpp:167:2
#2 0x1361a8f in CMenuBackground::LoadMenuBackground(bool, bool) /nobackup/opt/ddnet/clangbuild/../src/game/client/components/menu_background.cpp:267:15
#3 0x135e576 in CMenuBackground::OnInit() /nobackup/opt/ddnet/clangbuild/../src/game/client/components/menu_background.cpp:50:3
#4 0x17daa6e in CGameClient::OnInit() /nobackup/opt/ddnet/clangbuild/../src/game/client/gameclient.cpp:265:15
#5 0xcee84a in CClient::Run() /nobackup/opt/ddnet/clangbuild/../src/engine/client/client.cpp:3143:16
.#0 0x79ae55 in CLayers::InitTilemapSkip() /nobackup/opt/ddnet/clangbuild/../src/game/layers.cpp:191:11
.#1 0x799cb6 in CLayers::Init(IKernel*) /nobackup/opt/ddnet/clangbuild/../src/game/layers.cpp:115:2
.#2 0xb37697 in CGameContext::OnInit() /nobackup/opt/ddnet/clangbuild/../src/game/server/gamecontext.cpp:3210:11
.#3 0x86b7fe in CServer::Run() /nobackup/opt/ddnet/clangbuild/../src/engine/server/server.cpp:2631:16
vector4_base<int>
probably wouldn't breakconst char * const CSkins::ms_apColorComponents[NUM_COLOR_COMPONENTS] = {"hue", "sat", "lgt", "alp"};
const CSkin::SSkinTextures *pSkinTextures = pInfo->m_CustomColoredSkin ? &pInfo->m_ColorableRenderSkin : &pInfo->m_OriginalRenderSkin;
render.cppconst CSkin::SSkinTextures *pSkinTextures
CSkin::SSkinTextures *pSkinTextures
(edited)c++
const char* pData = &otherdata;
str_format(pData, "%s", "abcdef");
c++
char aBuf[] = { 'a', 'b', 'c' };
const char* p1 = aBuf;
p1[0] = 'z'; // <-- error
char* p2 = aBuf;
p2[0] = 'z'; // <-- no error
(edited)c++
struct a {
int* p;
};
struct a tmp;
const a *pPtr = &tmp;
int* pPtrModify = pPtr->p;
*pPtrModify = 1;
will probably workc++
char aBuf[] = { 'a', 'b', 'c' };
const char* p1 = aBuf;
p1[0] = 'z'; // <-- error
char* p2 = aBuf;
p2[0] = 'z'; // <-- no error
(edited)const X
is actually syntactic sugar for X const
, meaning const is usually on the right of what it qualifies.
and const char * const
is the same as char const * const
, const std::string&
is the same as std::string const&
…const X
is actually syntactic sugar for X const
, meaning const is usually on the right of what it qualifies.
and const char * const
is the same as char const * const
, const std::string&
is the same as std::string const&
… EntityEx
is surprisingly rigid wtfEntityEx
seems to be about static entities in the map(?)StaticEntityEx
SNAP_MORE
where we can put the overflow instead of dropping itDDNetLaser
like we have a DDNetProjectile
DDNetLaser
like we have a DDNetProjectile
DynEntityEx
for entities that are spawned at runtimeIsRifle = false
== true
or == false
on boolsc++
new(pDemoHeader) std::remove_pointer<decltype(pDemoHeader)>::type;
new(pTimelineMarkers) CTimelineMarkers;
decltype(*pDemoHeader)
in the first case?error: new cannot be applied to a reference type
decltype(*pDemoHeader)
returns a reference to a class (here CDemoHeader&
) which cannot be passed to new
...#ifdef DEBUG
it's so useful in debug buildsc++
new(pDemoHeader) std::remove_pointer<decltype(pDemoHeader)>::type;
new(pTimelineMarkers) CTimelineMarkers;
c++
new(pDemoHeader) std::remove_pointer<decltype(pDemoHeader)>::type;
new(pTimelineMarkers) CTimelineMarkers;