cond-like macro