)]}'
{
  "commit": "467f622c65daaabc71ca0572c2a9764d0a187197",
  "tree": "f058220a81ea15913a02994e81e587ba3afe4bc3",
  "parents": [
    "dfedefb99369dabc86e307ba7edaeb4e9116720d"
  ],
  "author": {
    "name": "Jaakko Moisio",
    "email": "jaakko@moisio.fi",
    "time": "Mon Dec 28 22:20:37 2020 +0100"
  },
  "committer": {
    "name": "Jaakko Moisio",
    "email": "jaakko@moisio.fi",
    "time": "Mon Dec 28 22:21:02 2020 +0100"
  },
  "message": "Fix compilation of input_adapter(container) in edge cases\n\nThis fixes a compilation issue with the library if trying to use containers that\ndon\u0027t have non-member `begin()` and `end()` functions via ADL.\n\nThis patch extends the `using std::begin` and `using std::end` declarations to\nalso cover the return type deduction of the input_adapter() template\nspecialization for containers. The previous implementation only enabled the\ndetection of `std::begin()` and `std::end()` in the function body, making the\nspecialization unusable for container types that only have member `begin()` and\n`end()` functions.\n\nIt is not typical to have `using` declarations in the namespace scope in a\nheader file. But a C++11 implementation can\u0027t rely on fully automatic return\ntype deduction, and needs to rely on ADL enabled helper templates. To prevent\nthe using declarations leaking, they are enclosed in another nested namespace.\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "63921ca55ce9e63dc5174ceda92b3a2aa05e7da1",
      "old_mode": 33188,
      "old_path": "include/nlohmann/detail/input/input_adapters.hpp",
      "new_id": "eed370fd25e6cb1ae027182a4c99215c24fa7773",
      "new_mode": 33188,
      "new_path": "include/nlohmann/detail/input/input_adapters.hpp"
    },
    {
      "type": "modify",
      "old_id": "51fe8382bb4b5c3d953adf29b163e8846030d971",
      "old_mode": 33188,
      "old_path": "single_include/nlohmann/json.hpp",
      "new_id": "a919b8d6c381c394dfc1f7fe1c0fcc29a5290c37",
      "new_mode": 33188,
      "new_path": "single_include/nlohmann/json.hpp"
    },
    {
      "type": "modify",
      "old_id": "5a1138b0049206d31c7120eb5394c101b41504c6",
      "old_mode": 33188,
      "old_path": "test/src/unit-user_defined_input.cpp",
      "new_id": "4b84e8e71ccb2cda49ad714dfc26132c7699c316",
      "new_mode": 33188,
      "new_path": "test/src/unit-user_defined_input.cpp"
    }
  ]
}
