title: Exact meanings of Should and Shall in the C++ standard
body: <p>I've been reviewing the C++ standard 03 version. And I'm beginning to get confused with the meanings of the words <strong><em>Should</em></strong> and <strong><em>Shall</em></strong>.</p>
  
  <p><strong><em>Shall</em></strong> in the standard seems to indicate a compulsory requirement (will-have), where as Should in the standard seems to indicate an optional requirement (could-have). In English, <strong><em>Should</em></strong> implies an expectation, have I misunderstood the meaning? shouldn't <strong><em>Could</em></strong> be used instead?</p>