scenario_simulator_v2 C++ API
demangle.hpp
Go to the documentation of this file.
1 // Copyright 2015 TIER IV, Inc. All rights reserved.
2 //
3 // Licensed under the Apache License, Version 2.0 (the "License");
4 // you may not use this file except in compliance with the License.
5 // You may obtain a copy of the License at
6 //
7 // http://www.apache.org/licenses/LICENSE-2.0
8 //
9 // Unless required by applicable law or agreed to in writing, software
10 // distributed under the License is distributed on an "AS IS" BASIS,
11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 // See the License for the specific language governing permissions and
13 // limitations under the License.
14 
15 #ifndef OPENSCENARIO_INTERPRETER__UTILITY__DEMANGLE_HPP_
16 #define OPENSCENARIO_INTERPRETER__UTILITY__DEMANGLE_HPP_
17 
18 #include <string>
19 #include <typeinfo>
20 
22 {
23 inline namespace utility
24 {
25 auto demangle(const char * name) -> std::string;
26 
27 auto demangle(const std::type_info &) -> std::string;
28 
29 template <typename... Ts>
30 auto makeTypename(Ts &&... xs)
31 {
32  const auto name = demangle(std::forward<decltype(xs)>(xs)...);
33 
34  return name.substr(name.find_last_of(':') + 1);
35 }
36 } // namespace utility
37 } // namespace openscenario_interpreter
38 
39 #endif // OPENSCENARIO_INTERPRETER__UTILITY__DEMANGLE_HPP_
auto makeTypename(Ts &&... xs)
Definition: demangle.hpp:30
auto demangle(const char *name) -> std::string
Definition: demangle.cpp:26
Definition: hypot.hpp:22
Definition: junit5.hpp:25
std::string string
Definition: junit5.hpp:26