diff options
author | Alex Turbov <i.zaufi@gmail.com> | 2024-08-14 16:15:34 (GMT) |
---|---|---|
committer | Alex Turbov <i.zaufi@gmail.com> | 2024-08-26 15:01:48 (GMT) |
commit | 0c17cc9ef572c6d5b2de019e29f12cfeaec65aa7 (patch) | |
tree | 00bebd0062f297cc31d9cbfeda97d26141e3c402 /Source/cmAddCustomTargetCommand.cxx | |
parent | cd4210eb6d721a1b75e739e81250d1ac5a35b99f (diff) | |
download | CMake-0c17cc9ef572c6d5b2de019e29f12cfeaec65aa7.zip CMake-0c17cc9ef572c6d5b2de019e29f12cfeaec65aa7.tar.gz CMake-0c17cc9ef572c6d5b2de019e29f12cfeaec65aa7.tar.bz2 |
cmJSONHelpers.h: Add `FilteredObject` helper
Iterate over the object's members and call a filter callable to decide what
to do with the current key/value. A filter returns one of the `FilterResult`
values. A container type is an associative or a sequence container of pairs
(key, value).
Refactor `MapFilter()` and `Map()` to use `FilteredObject()`. Moreover,
for C++ >= 17 implementation is more optimized depending on the given filter
object type and capable of detecting and properly calling the filter callable
using 1 or 3 arguments, up to totally eliminate any checking (even dummy)
in the generated code.
Supported container types, used to append key/value items, aren't limited to
`std::map` only and can be any associative container or a sequenced one with
pairs of key/value as elements.
Diffstat (limited to 'Source/cmAddCustomTargetCommand.cxx')
0 files changed, 0 insertions, 0 deletions