ONE - On-device Neural Engine
Loading...
Searching...
No Matches
polymorphic_downcast.h
Go to the documentation of this file.
1
/*
2
* Copyright (c) 2019 Samsung Electronics Co., Ltd. All Rights Reserved
3
*
4
* Licensed under the Apache License, Version 2.0 (the "License");
5
* you may not use this file except in compliance with the License.
6
* You may obtain a copy of the License at
7
*
8
* http://www.apache.org/licenses/LICENSE-2.0
9
*
10
* Unless required by applicable law or agreed to in writing, software
11
* distributed under the License is distributed on an "AS IS" BASIS,
12
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
* See the License for the specific language governing permissions and
14
* limitations under the License.
15
*/
16
17
#ifndef __NNFW_MISC_POLYMORPHIC_DOWNCAST_H__
18
#define __NNFW_MISC_POLYMORPHIC_DOWNCAST_H__
19
20
#include <cassert>
21
#include <memory>
22
23
namespace
nnfw
24
{
25
namespace
misc
26
{
27
28
template
<
typename
DstType,
typename
SrcType>
inline
DstType
polymorphic_downcast
(SrcType *x)
29
{
30
assert(
dynamic_cast<
DstType
>
(x) == x);
31
return
static_cast<
DstType
>
(x);
32
}
33
34
template
<
typename
DstType,
typename
SrcType>
inline
DstType
polymorphic_downcast
(SrcType &x)
35
{
36
assert(std::addressof(
dynamic_cast<
DstType
>
(x)) == std::addressof(x));
37
return
static_cast<
DstType
>
(x);
38
}
39
40
}
// namespace misc
41
}
// namespace nnfw
42
43
#endif
// __NNFW_MISC_POLYMORPHIC_DOWNCAST_H__
nnfw::misc::polymorphic_downcast
DstType polymorphic_downcast(SrcType *x)
Definition
polymorphic_downcast.h:28
nnfw
Definition
topk_v2.h:30
runtime
libs
misc
include
misc
polymorphic_downcast.h
Generated by
1.9.8