)]}'
{
  "commit": "687c0bbee4bc43513452c5b46b6382554e36952f",
  "tree": "fa7be44edaf803e69fd2fcc763a1c2eff03f8f57",
  "parents": [
    "1e17bc1faf03109ff64ca278f8e603c31fe089f4"
  ],
  "author": {
    "name": "Eric Fiselier",
    "email": "eric@efcs.ca",
    "time": "Fri Dec 30 12:44:58 2016 +0000"
  },
  "committer": {
    "name": "Eric Fiselier",
    "email": "eric@efcs.ca",
    "time": "Fri Dec 30 12:44:58 2016 +0000"
  },
  "message": "Fix PR19460 - std::ios is convertible to int.\n\nstd::basic_ios has an operator bool(). In C++11 and later\nit is explicit, and only allows contextual implicit conversions.\n\nHowever explicit isn\u0027t available in C++03 which causes std::istream (et al)\nto have an implicit conversion to int. This can easily cause ambiguities\nwhen calling operator\u003c\u003c and operator\u003e\u003e.\n\nThis patch uses a \"bool-like\" type in C++03 to work around this. The\n\"bool-like\" type is an arbitrary pointer to member function type. It\nwill not convert to either int or void*, but will convert to bool.\n\ngit-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@290750 91177308-0d34-0410-b5e6-96231b3b80d8\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "cbea478a74a88fd3e0a874b627e64f7f43fb83e9",
      "old_mode": 33188,
      "old_path": "include/ios",
      "new_id": "dfeb1f62eedc4e042913ef1dba39f737bee1563b",
      "new_mode": 33188,
      "new_path": "include/ios"
    },
    {
      "type": "modify",
      "old_id": "0de889e549cc98bb9cbb1dd4f02ca8ba861d1559",
      "old_mode": 33188,
      "old_path": "test/std/input.output/iostreams.base/ios/iostate.flags/bool.pass.cpp",
      "new_id": "5f49c65bdfd18d66d72cc867ea7be9a0af54df4b",
      "new_mode": 33188,
      "new_path": "test/std/input.output/iostreams.base/ios/iostate.flags/bool.pass.cpp"
    }
  ]
}
