Preconditions are the conditions under which a function/operation can be called. If a precondition is violated all things are possible (UB). The effects of hitting UB can be fatal. So why are there people that insist on preconditions (narrow contract) over functions that handle all erroneous inputs (wide contract). And what can you do to guard against coding errors that violate preconditions? And what's all this talk about Contracts in C++?
Style: Discussion. No slides. Live hacking.