R>#define useless unless R>void foo(shared_ptr<file> f, ...) R>{ R> useless (f) R> throw runtime_error("input is useless"); R> ... R>} R>