
On 20.10.2011. 15:15, Stewart, Robert wrote:
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*.
AFAIK optimization is not allowed to manifest any change in behaviour, and the addition of noexcept already by itself changes/inserts "validation logic" so I still don't see what difference does that make? -- "What Huxley teaches is that in the age of advanced technology, spiritual devastation is more likely to come from an enemy with a smiling face than from one whose countenance exudes suspicion and hate." Neil Postman