







c++
new(pDemoHeader) std::remove_pointer<decltype(pDemoHeader)>::type;
new(pTimelineMarkers) CTimelineMarkers; std::make_unique



std::make_unique 









error: invalid use of ‘CNetConsole::CNetConsole’
11 | this->CNetConsole()




















CButtonContainer which is used for fading text in teeworlds. There is no fading text in ddnet yet.
This change allows introducing such fading buttons but the main motivation for this change is easier copy & pasting code from ddnet to teeworlds code base.






3




std::size cannot be used in a constexpr when the array is stored in a struct in a vector...


std::size cannot be used in a constexpr when the array is stored in a struct in a vector... 
c++
constexpr int ArraySize = std::size(Container.m_vQuads[0].m_aVertices); // operator[] is not constexpr so compilation fails
constexpr int ArraySize = sizeof(Container.m_vQuads[0].m_aVertices)/sizeof(Container.m_vQuads[0].m_aVertices[0]); // ok


:: on non static member



operator==












constexpr auto k = std::tuple_size<decltype(decltype(v_vec)::value_type::m_arr)>::value; maybe? 

constexpr auto k = std::tuple_size<decltype(decltype(v_vec)::value_type::m_arr)>::value; maybe? 





std::array::size() can't be static aswell actually, that would solve this and be sane






std::array::size() can't be static aswell actually, that would solve this and be sane constexpr auto k = decltype(decltype(v_vec)::value_type::m_arr)::size(); if this was the case, that'd be so nice




c++
struct s{
std::array<int, 100> a;
static constexpr std::size_t t = std::size(decltype(a)());
};



c++
struct s{
std::array<int, 100> a;
static constexpr std::size_t t = std::size(decltype(a)());
}; 

error: temporary of non-literal type 'CGraphics_Threaded::SQuadContainer::SQuad' in a constant expression














1









sizeof(*(int *)nullptr) isn't UB, right? (edited)


sizeof(*(int *)nullptr) isn't UB, right? (edited)