{"action":"created","issue":{"url":"https://api.github.com/repos/nlohmann/json/issues/1401","repository_url":"https://api.github.com/repos/nlohmann/json","labels_url":"https://api.github.com/repos/nlohmann/json/issues/1401/labels{/name}","comments_url":"https://api.github.com/repos/nlohmann/json/issues/1401/comments","events_url":"https://api.github.com/repos/nlohmann/json/issues/1401/events","html_url":"https://github.com/nlohmann/json/issues/1401","id":393710072,"node_id":"MDU6SXNzdWUzOTM3MTAwNzI=","number":1401,"title":"-Wmismatched-tags in 3.5.0?","user":{"login":"past-due","id":30942300,"node_id":"MDQ6VXNlcjMwOTQyMzAw","avatar_url":"https://avatars2.githubusercontent.com/u/30942300?v=4","gravatar_id":"","url":"https://api.github.com/users/past-due","html_url":"https://github.com/past-due","followers_url":"https://api.github.com/users/past-due/followers","following_url":"https://api.github.com/users/past-due/following{/other_user}","gists_url":"https://api.github.com/users/past-due/gists{/gist_id}","starred_url":"https://api.github.com/users/past-due/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/past-due/subscriptions","organizations_url":"https://api.github.com/users/past-due/orgs","repos_url":"https://api.github.com/users/past-due/repos","events_url":"https://api.github.com/users/past-due/events{/privacy}","received_events_url":"https://api.github.com/users/past-due/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":3,"created_at":"2018-12-22T23:27:24Z","updated_at":"2018-12-23T19:34:31Z","closed_at":null,"author_association":"NONE","body":"While I'm aware of the workarounds, I thought you might find the following interesting.\r\n\r\n- What is the issue you have?\r\n\r\n`-Wmismatched-tags` using Clang v6.0 on Ubuntu 18.04:\r\n\r\n```\r\njson.hpp:1799:1: error: 'tuple_size' defined as a class template here but previously declared as a struct template [-Werror,-Wmismatched-tags]\r\nclass tuple_size<::nlohmann::detail::iteration_proxy_value<IteratorType>>\r\n^\r\n/usr/include/c++/7.3.0/utility:84:5: note: did you mean class here?\r\n    struct tuple_size;\r\n    ^\r\n[...]\r\njson.hpp:1803:1: error: 'tuple_element' defined as a class template here but previously declared as a struct template [-Werror,-Wmismatched-tags]\r\nclass tuple_element<N, ::nlohmann::detail::iteration_proxy_value<IteratorType >>\r\n^\r\n/usr/include/c++/7.3.0/utility:129:5: note: did you mean class here?\r\n    struct tuple_element;\r\n    ^\r\n2 errors generated.\r\n```\r\n\r\n- Please describe the steps to reproduce the issue. Can you provide a small but working code example?\r\n\r\nAttempted to update [Warzone 2100](https://github.com/Warzone2100/warzone2100) from nlohmann/json 3.4.0 to 3.5.0.\r\n(Compilation succeeds with 3.4.0. CI treats many warnings as errors. `-std=gnu++11`)\r\n\r\n- What is the expected behavior?\r\n\r\nCompilation succeeds without error / warnings.\r\n\r\n- And what is the actual behavior instead?\r\n\r\n[-Wmismatched-tags] is triggered\r\n\r\n- Which compiler and operating system are you using? Is it a [supported compiler](https://github.com/nlohmann/json#supported-compilers)?\r\n\r\nThe CXX compiler identification is Clang 6.0.0\r\non Ubuntu 18.04\r\n\r\n- Did you use a released version of the library or the version from the `develop` branch?\r\n\r\n3.5.0 release\r\n"},"comment":{"url":"https://api.github.com/repos/nlohmann/json/issues/comments/449658978","html_url":"https://github.com/nlohmann/json/issues/1401#issuecomment-449658978","issue_url":"https://api.github.com/repos/nlohmann/json/issues/1401","id":449658978,"node_id":"MDEyOklzc3VlQ29tbWVudDQ0OTY1ODk3OA==","user":{"login":"past-due","id":30942300,"node_id":"MDQ6VXNlcjMwOTQyMzAw","avatar_url":"https://avatars2.githubusercontent.com/u/30942300?v=4","gravatar_id":"","url":"https://api.github.com/users/past-due","html_url":"https://github.com/past-due","followers_url":"https://api.github.com/users/past-due/followers","following_url":"https://api.github.com/users/past-due/following{/other_user}","gists_url":"https://api.github.com/users/past-due/gists{/gist_id}","starred_url":"https://api.github.com/users/past-due/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/past-due/subscriptions","organizations_url":"https://api.github.com/users/past-due/orgs","repos_url":"https://api.github.com/users/past-due/repos","events_url":"https://api.github.com/users/past-due/events{/privacy}","received_events_url":"https://api.github.com/users/past-due/received_events","type":"User","site_admin":false},"created_at":"2018-12-23T19:34:31Z","updated_at":"2018-12-23T19:34:31Z","author_association":"NONE","body":"It looks like this might be fixed in Clang 8, but Clang 7 may also trigger it. (Was playing around with a small example linked in the isocpp group post above.)\r\n\r\n@nlohmann: Would disabling the `-Wmismatched-tags` warning for Clang around the `tuple_size` and `tuple_element` specializations (similar to what @Naios suggested) be an acceptable PR?"}}
{"actor":{"display_login":"past-due"}}