In my code I'm using contextual conversion to bool extensively, e.g. "if (err)" or "if (!err)". This is currently equivalent to comparing against 0, so I assume it will be broken by this change.
It will only be broken if you rely on `error_code( 0, some-category )` to contextually-convert to `false`. A default-constructed error_code, or one that's been cleared, will still be `false`.
A principled approach would be to ask the category whether a code is `true` or `false`, but that might be complexity and overhead nobody needs.
I think it unavoidable myself (and hardly complex to implement). Only an error category knows if some value or other means success or not. There would be not much overhead if the category implementation marks the function used final, as I expect it would. Niall -- ned Productions Limited Consulting http://www.nedproductions.biz/ http://ie.linkedin.com/in/nialldouglas/