diff options
Diffstat (limited to 'inference-engine/thirdparty/ade/common/include/util/map_range.hpp')
m--------- | inference-engine/thirdparty/ade | 0 | ||||
-rw-r--r-- | inference-engine/thirdparty/ade/common/include/util/map_range.hpp | 94 |
2 files changed, 0 insertions, 94 deletions
diff --git a/inference-engine/thirdparty/ade b/inference-engine/thirdparty/ade new file mode 160000 +Subproject 0ba3b01dae7262f7828dc6fa65ef3a89fb371cd diff --git a/inference-engine/thirdparty/ade/common/include/util/map_range.hpp b/inference-engine/thirdparty/ade/common/include/util/map_range.hpp deleted file mode 100644 index 14c462425..000000000 --- a/inference-engine/thirdparty/ade/common/include/util/map_range.hpp +++ /dev/null @@ -1,94 +0,0 @@ -// Copyright (C) 2018 Intel Corporation -// -// SPDX-License-Identifier: Apache-2.0 -// - -#ifndef UTIL_MAP_RANGE_HPP -#define UTIL_MAP_RANGE_HPP - -#include <type_traits> -#include <utility> -#include <tuple> - -#include "util/type_traits.hpp" -#include "util/range.hpp" -#include "util/assert.hpp" -#include "util/range_iterator.hpp" - -namespace util -{ - -inline namespace Range -{ - -template<typename PrevRange, typename Mapper> -struct MapRange : public IterableRange<MapRange<PrevRange, Mapper>> -{ - PrevRange prevRange; - Mapper mapper; // TODO: implement size optimization for empty objects - - MapRange() = default; - MapRange(const MapRange&) = default; - MapRange(MapRange&&) = default; - MapRange& operator=(const MapRange&) = default; - MapRange& operator=(MapRange&&) = default; - template<typename PR, typename M> - MapRange(PR&& pr, M&& m): - prevRange(std::forward<PR>(pr)), - mapper(std::forward<M>(m)) {} - - bool empty() const - { - return prevRange.empty(); - } - - void popFront() - { - ASSERT(!empty()); - prevRange.popFront(); - } - - auto front() -> typename std::decay<decltype(mapper(prevRange.front()))>::type - { - ASSERT(!empty()); - return mapper(prevRange.front()); - } - - auto front() const -> typename std::decay<decltype(mapper(prevRange.front()))>::type - { - ASSERT(!empty()); - return mapper(prevRange.front()); - } - - template<typename R = PrevRange, - util::enable_b_t<details::has_size_fun<R>::value> = true> //SFINAE - auto size() const - ->decltype(details::range_size_wrapper(std::declval<R>())) - { - return details::range_size_wrapper(prevRange); - } -}; - -template<typename PrevRange, typename Mapper> -inline auto size(const MapRange<PrevRange, Mapper>& range) -->decltype(range.size()) -{ - return range.size(); -} - -template<typename Mapper, typename PrevRange> -MapRange<PrevRange, Mapper> map(PrevRange&& prevRange, Mapper&& mapper) -{ - return MapRange<PrevRange, Mapper>(std::forward<PrevRange>(prevRange), std::forward<Mapper>(mapper)); -} - -template<typename Mapper, typename PrevRange> -MapRange<PrevRange, Mapper> map(PrevRange&& prevRange) -{ - return MapRange<PrevRange, Mapper>(std::forward<PrevRange>(prevRange), Mapper()); -} - -} -} - -#endif // UTIL_MAP_RANGE_HPP |