#pragma once namespace euler { [[noreturn]] inline void assert_failed() { //TODO: log error and abort while (1) ; } } #define assert(cond) ((cond) ? (void)0 : ::euler::assert_failed());