)]}'
{
  "commit": "46dbee7d423f44bbf1f8a216a6f6bb1bf85b95b5",
  "tree": "5a3cac4a24fd44c8dbd1e2b9de0866606dd853f9",
  "parents": [
    "4f9ee6e430048ef87801423eeeb2506a8145d7ec"
  ],
  "author": {
    "name": "Bruce Merry",
    "email": "bmerry@gmail.com",
    "time": "Fri May 26 08:52:54 2017 +0200"
  },
  "committer": {
    "name": "Dean Moldovan",
    "email": "dean0x7d@gmail.com",
    "time": "Sat May 27 23:52:23 2017 +0200"
  },
  "message": "Avoid explicitly resetting a std::[experimental::]optional\n\nNow that #851 has removed all multiple uses of a caster, it can just use\nthe default-constructed value with needing a reset. This fixes two\nissues:\n\n1. With std::experimental::optional (at least under GCC 5.4), the `\u003d {}`\nwould construct an instance of the optional type and then move-assign\nit, which fails if the value type isn\u0027t move-assignable.\n\n2. With older versions of Boost, the `\u003d {}` could fail because it is\nambiguous, allowing construction of either `boost::none` or the value\ntype.\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "495f85d3df9535e922186fc990875d44fab4da94",
      "old_mode": 33188,
      "old_path": "include/pybind11/stl.h",
      "new_id": "3d38b53970fae6a2b9c0ff49b85110dcb686b583",
      "new_mode": 33188,
      "new_path": "include/pybind11/stl.h"
    },
    {
      "type": "modify",
      "old_id": "f9bda617cde2ce729c82af6c6141807ec0e8aefd",
      "old_mode": 33188,
      "old_path": "tests/test_python_types.cpp",
      "new_id": "f3375c67e5f7700fb909b571cf8044bf69fe92d8",
      "new_mode": 33188,
      "new_path": "tests/test_python_types.cpp"
    },
    {
      "type": "modify",
      "old_id": "e427c4677ba5b63268cd4e71ef0302fcf5c257a4",
      "old_mode": 33188,
      "old_path": "tests/test_python_types.py",
      "new_id": "f7c3d5555c6dad0257d1590dd0fcb2309d59dd01",
      "new_mode": 33188,
      "new_path": "tests/test_python_types.py"
    }
  ]
}
