I'd say that an `assert(0)` is more useful than a `#error`, because it lets you do incremental work.
The main benefit is that you can delay the target choice until runtime, but I guess that's a different issue for another time.
Not a big deal either way.