Two of the members of the MicroProfileThreadLog contains two std::atomic
instances. Given these aren't trivially-copyable types, we shouldn't be
memsetting the structure, given implementation details can contain other
members within it.
To avoid potential undefined behavior on platforms, we can use aggregate
initialization to zero out the members while still having well-defined
behavior.
While we're at it we can also silence some sign conversion warnings.
Co-authored-by: Lioncash <mathew1800@gmail.com>
In file included from src/common/microprofile.cpp:7:
In file included from src/./common/microprofile.h:23:
externals/microprofile/microprofile.h:830:5: error: use of undeclared identifier 'MP_BREAK'
MP_ASSERT(t == nBegin);
^
externals/microprofile/microprofile.h:238:34: note: expanded from macro 'MP_ASSERT'
^
externals/microprofile/microprofile.h:831:5: error: use of undeclared identifier 'MP_BREAK'
MP_ASSERT(nTimerIndex == (nToken&0x3fff));
^
externals/microprofile/microprofile.h:238:34: note: expanded from macro 'MP_ASSERT'
^
[...]