From 45819dce54018985bd4e3ec4958e624df0404952 Mon Sep 17 00:00:00 2001 From: past-due <30942300+past-due@users.noreply.github.com> Date: Wed, 30 Jan 2019 12:59:50 -0500 Subject: [PATCH] Disable -Wmismatched-tags warning on tuple_size / tuple_element --- include/nlohmann/detail/iterators/iteration_proxy.hpp | 10 +++++++++- single_include/nlohmann/json.hpp | 9 +++++++++ 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/include/nlohmann/detail/iterators/iteration_proxy.hpp b/include/nlohmann/detail/iterators/iteration_proxy.hpp index a4f2a8e3..334b467b 100644 --- a/include/nlohmann/detail/iterators/iteration_proxy.hpp +++ b/include/nlohmann/detail/iterators/iteration_proxy.hpp @@ -147,6 +147,11 @@ auto get(const nlohmann::detail::iteration_proxy_value& i) -> decl // And see https://github.com/nlohmann/json/pull/1391 namespace std { +#if defined(__clang__) + // Fix: https://github.com/nlohmann/json/issues/1401 + #pragma clang diagnostic push + #pragma clang diagnostic ignored "-Wmismatched-tags" +#endif template class tuple_size<::nlohmann::detail::iteration_proxy_value> : public std::integral_constant {}; @@ -159,4 +164,7 @@ class tuple_element> get(std::declval < ::nlohmann::detail::iteration_proxy_value> ())); }; -} \ No newline at end of file +#if defined(__clang__) + #pragma clang diagnostic pop +#endif +} diff --git a/single_include/nlohmann/json.hpp b/single_include/nlohmann/json.hpp index ee72531b..b119ceac 100644 --- a/single_include/nlohmann/json.hpp +++ b/single_include/nlohmann/json.hpp @@ -1808,6 +1808,11 @@ auto get(const nlohmann::detail::iteration_proxy_value& i) -> decl // And see https://github.com/nlohmann/json/pull/1391 namespace std { +#if defined(__clang__) + // Fix: https://github.com/nlohmann/json/issues/1401 + #pragma clang diagnostic push + #pragma clang diagnostic ignored "-Wmismatched-tags" +#endif template class tuple_size<::nlohmann::detail::iteration_proxy_value> : public std::integral_constant {}; @@ -1820,8 +1825,12 @@ class tuple_element> get(std::declval < ::nlohmann::detail::iteration_proxy_value> ())); }; +#if defined(__clang__) + #pragma clang diagnostic pop +#endif } + namespace nlohmann { namespace detail