ArmNN
 25.11
Loading...
Searching...
No Matches
MemorySources.hpp
Go to the documentation of this file.
1//
2// Copyright © 2017 Arm Ltd. All rights reserved.
3// SPDX-License-Identifier: MIT
4//
5
6#pragma once
7
8#include <armnn/Types.hpp>
9
10#include <type_traits>
11
12namespace armnn
13{
14
15using MemorySourceFlags = unsigned int;
16
17template<typename T>
19{
20 static const bool value = false;
21};
22
23template<>
25{
26 static const bool value = true;
27};
28
29template <typename Arg, typename std::enable_if<IsMemorySource<Arg>::value>::type* = nullptr>
30MemorySourceFlags Combine(Arg sourceA, Arg sourceB)
31{
32 return static_cast<MemorySourceFlags>(sourceA) | static_cast<MemorySourceFlags>(sourceB);
33}
34
35template <typename Arg, typename ... Args, typename std::enable_if<IsMemorySource<Arg>::value>::type* = nullptr>
36MemorySourceFlags Combine(Arg source, Args... rest)
37{
38 return static_cast<MemorySourceFlags>(source) | Combine(rest...);
39}
40
41inline bool CheckFlag(MemorySourceFlags flags, MemorySource source)
42{
43 return (static_cast<MemorySourceFlags>(source) & flags) != 0;
44}
45
46} //namespace armnn
Copyright (c) 2021 ARM Limited and Contributors.
bool CheckFlag(MemorySourceFlags flags, MemorySource source)
MemorySource
Define the Memory Source to reduce copies.
Definition Types.hpp:246
unsigned int MemorySourceFlags
MemorySourceFlags Combine(Arg sourceA, Arg sourceB)
static const bool value