mirror of
https://github.com/nlohmann/json.git
synced 2026-10-11 17:07:15 +00:00
Fix clang-tidy 22 findings in the json_view headers
Silence bugprone-casting-through-void for the SSE loads (a reinterpret_cast
would trip -Wcast-align=strict), use auto for a cast initialiser, add
parentheses to a mixed expression, and name bugprone-std-namespace-modification
in the NOLINTs of the tuple_size/tuple_element specialisations.
Signed-off-by: Niels Lohmann <mail@nlohmann.me>
(cherry picked from commit 0effbaa7a2)
This commit is contained in:
1 file changed
+18
@@ -120,6 +120,24 @@ const node* find_member(const document_data& d, const node* object, const char*
|
|||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// whether an integer type is accepted as an array index by the view's
|
||||||
|
/// operator[] and at(): every integer type but bool and size_t, which has its
|
||||||
|
/// own overload
|
||||||
|
template<typename T>
|
||||||
|
struct is_index_type : std::integral_constant < bool,
|
||||||
|
std::is_integral<T>::value && !std::is_same<T, bool>::value && !std::is_same<T, std::size_t>::value >
|
||||||
|
{};
|
||||||
|
|
||||||
|
/// an integer as an index: negative values, and values that do not fit a
|
||||||
|
/// size_t, map to the largest size_t (out of range for every array)
|
||||||
|
template<typename SizeType, typename IntegerType>
|
||||||
|
SizeType to_index(IntegerType idx) noexcept
|
||||||
|
{
|
||||||
|
const IntegerType zero = 0;
|
||||||
|
const auto result = static_cast<SizeType>(idx); // NOLINT(bugprone-signed-char-misuse,cert-str34-c): negative values are mapped below
|
||||||
|
return (idx < zero || static_cast<IntegerType>(result) != idx) ? (std::numeric_limits<SizeType>::max)() : result;
|
||||||
|
}
|
||||||
|
|
||||||
/// the entry of the element of an array at an index below its size (a link
|
/// the entry of the element of an array at an index below its size (a link
|
||||||
/// in the moved sequences of editable documents)
|
/// in the moved sequences of editable documents)
|
||||||
template<bool Editable>
|
template<bool Editable>
|
||||||
|
|||||||
Reference in new issue
Block a user