Rationale: Clarify intentions, avoid workarounds
.  Effect on original feature:
Valid C++ 2003 code that relies on implicit boolean conversions will fail to
compile with this International Standard
.  Such conversions occur in the
following conditions:
passing a value to a function that takes an argument of type bool;
using operator== to compare to false or true;
returning a value from a function with a return type of bool;
initializing members of type bool via aggregate initialization;
initializing a 
const bool& which would bind to a temporary
.
  Rationale: More detailed error messages
.  Effect on original feature:
std::ios_base::failure is no longer derived directly from
std::exception, but is now derived from 
std::system_error,
which in turn is derived from 
std::runtime_error.  Valid C++ 2003 code
that assumes that 
std::ios_base::failure is derived directly from
std::exception may execute differently in this International Standard
.[ios.base]
Change: Flag types in 
std::ios_base are now bitmasks with values
defined as constexpr static members
.  Rationale: Required for new features
.  Effect on original feature:
Valid C++ 2003 code that relies on 
std::ios_base flag types being
represented as 
std::bitset or as an integer type may fail to compile
with this International Standard
.  For example:
#include <iostream>
int main() {
  int flag = std::ios_base::hex;
  std::cout.setf(flag);         }