#ifndef NDEBUG
constexpr bool DEBUG = true;
#else
constexpr bool DEBUG = false;
#endifВряд ли пользователь не хочет, чтобы за него меняли кодировку консоли.
reinterpret_cast<RefMemoryBlockBase*>(
reinterpret_cast<char*>(data) - sizeof(RefMemoryBlockBase)
)#define container_of(ptr, type, member) \
(reinterpret_cast<type*>( \
reinterpret_cast<char*>(ptr) - offsetof(type, member) \
))container_of(data, RefMemoryBlock , Value);
Но чаще такие эксперименты бывают не большие, помещающиеся в одном файле. Тогда вообще никакого проекта не создаю, компилирую руками из ком.строки.
Эти временные проекты после решения вопроса удаляю, если они больше ценности не представляют, или оставляю.