
Den 20-10-2011 15:15, Stewart, Robert skrev:
Domagoj Saric wrote:
On 19.10.2011. 17:47, Stewart, Robert wrote:
Using (1) on existing code could change behavior.
Again, how could it change behaviour? Unless, again,: "...there is a real world person/problem that depends on the defined std::unexpected/std::terminate behaviour of noexcept as opposed to undefined or implementation defined behaviour of a compiler specific in case "someone violates a promise given about the particular function"..."
State it however you might like, but telling a compiler that a function no longer emits any exceptions can mean changes in optimization, insertion of validation logic, etc., which can *change behavior*.
If the question is: "If a function in boost is documented and guaranteed to throw no exception, can adding an attribute that is (a) non-detectable by the programmer and (b) which does not affect the signature of the function or a pointer to the function change the /observed behavior/ of the program? then would the answer not always be "no" -Thorsten