I want to define a macro like this
#define ASSERT_EXIST(error, ...) some-impl-here
then we can call it like this
ASSERT_EXIST(100, a, b, c)
and it should be expand to this
if (!a_exists) return error("a is missing", 100);
if (!b_exists) return error("b is missing", 100);
if (!c_exists) return error("c is missing", 100);
the most trouble part of this is I can't iterate over __VA_ARGS__
easily in a macro.