)]}'
{
  "commit": "adbc8111bcccd2594cb0fc6c26cadbb08e72e92c",
  "tree": "764f014064125f629e68735a31505d7f2dbf5e99",
  "parents": [
    "326deef2ae6c535c2b1838fd7404579b3fe497b7"
  ],
  "author": {
    "name": "Jason Rhinelander",
    "email": "jason@imaginary.ca",
    "time": "Thu Jan 11 13:22:13 2018 -0400"
  },
  "committer": {
    "name": "Jason Rhinelander",
    "email": "jason@imaginary.ca",
    "time": "Fri Jan 12 09:29:57 2018 -0400"
  },
  "message": "Use stricter brace initialization\n\nThis updates the `py::init` constructors to only use brace\ninitialization for aggregate initiailization if there is no constructor\nwith the given arguments.\n\nThis, in particular, fixes the regression in #1247 where the presence of\na `std::initializer_list\u003cT\u003e` constructor started being invoked for\nconstructor invocations in 2.2 even when there was a specific\nconstructor of the desired type.\n\nThe added test case demonstrates: without this change, it fails to\ncompile because the `.def(py::init\u003cstd::vector\u003cint\u003e\u003e())` constructor\ntries to invoke the `T(std::initializer_list\u003cstd::vector\u003cint\u003e\u003e)`\nconstructor rather than the `T(std::vector\u003cint\u003e)` constructor.\n\nBy only using `new T{...}`-style construction when a `T(...)`\nconstructor doesn\u0027t exist, we should bypass this by while still allowing\n`py::init\u003c...\u003e` to be used for aggregate type initialization (since such\ntypes, by definition, don\u0027t have a user-declared constructor).\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "3238256cec01cab61792909012f731a092f2d7f1",
      "old_mode": 33188,
      "old_path": "include/pybind11/detail/init.h",
      "new_id": "acfe00bdb702e2e64e27d62342a80031d5105cd3",
      "new_mode": 33188,
      "new_path": "include/pybind11/detail/init.h"
    },
    {
      "type": "modify",
      "old_id": "57db3ab701a0fd609e475818603c411436dc248c",
      "old_mode": 33188,
      "old_path": "tests/test_class.cpp",
      "new_id": "9265e2e3725c4bdf1219e1feb7f40c101b5951d5",
      "new_mode": 33188,
      "new_path": "tests/test_class.cpp"
    },
    {
      "type": "modify",
      "old_id": "d94b61bb3a9512f6d71ed29197995cacc0db7574",
      "old_mode": 33188,
      "old_path": "tests/test_class.py",
      "new_id": "8cf4757cbd6bb1c57fc57b4d29fda8be55dbc1e0",
      "new_mode": 33188,
      "new_path": "tests/test_class.py"
    }
  ]
}
