ONE - On-device Neural Engine
Loading...
Searching...
No Matches
CastHelpers.h
Go to the documentation of this file.
1
/*
2
* Copyright (c) 2020 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 __LOCO_IR_CAST_HELPERS_H__
18
#define __LOCO_IR_CAST_HELPERS_H__
19
20
#include <string>
21
#include <stdexcept>
22
#include <typeinfo>
23
24
namespace
loco
25
{
26
27
// TODO move to somewhere appropriate
28
template
<
typename
T,
typename
ARG> T
_must_cast
(
ARG
arg)
29
{
30
auto
cast_arg
=
dynamic_cast<
T
>
(arg);
31
if
(
cast_arg
==
nullptr
)
32
{
33
std::string
msg
=
"loco::must_cast() failed to cast: "
;
34
msg
+=
typeid
(T).name();
35
throw
std::invalid_argument(
msg
.c_str());
36
}
37
return
cast_arg
;
38
}
39
40
}
// namespace loco
41
42
#endif
// __LOCO_IR_CAST_HELPERS_H__
loco
Definition
LogHelper.cpp:20
loco::must_cast
T must_cast(FeatureEncoder *node)
A helper dynamic_cast that throws when failed.
Definition
FeatureCodec.h:80
loco::_must_cast
T _must_cast(ARG arg)
Definition
CastHelpers.h:28
compiler
loco
include
loco
IR
CastHelpers.h
Generated by
1.9.8