ArKanjo
0.2
A tool for find code duplicated functions in codebases
Loading...
Searching...
No Matches
function_data.hpp
Go to the documentation of this file.
1
#pragma once
2
3
#include <memory>
4
#include <string>
5
#include <typeindex>
6
#include <unordered_map>
7
8
class
FunctionData
{
9
public
:
10
std::string
path
;
11
17
std::string
function_name
;
18
19
std::unordered_map<std::type_index, std::shared_ptr<void>>
features
;
20
21
template
<
typename
T>
22
void
add_feature
(std::shared_ptr<T> feature) {
23
features
[
typeid
(T)] = feature;
24
}
25
26
template
<
typename
T>
27
std::shared_ptr<T>
get_feature
()
const
{
28
auto
it =
features
.find(
typeid
(T));
29
30
if
(it ==
features
.end())
31
return
nullptr
;
32
33
return
std::static_pointer_cast<T>(it->second);
34
}
35
};
FunctionData
Definition
function_data.hpp:8
FunctionData::features
std::unordered_map< std::type_index, std::shared_ptr< void > > features
Definition
function_data.hpp:19
FunctionData::function_name
std::string function_name
Name of the function.
Definition
function_data.hpp:17
FunctionData::path
std::string path
Definition
function_data.hpp:10
FunctionData::get_feature
std::shared_ptr< T > get_feature() const
Definition
function_data.hpp:27
FunctionData::add_feature
void add_feature(std::shared_ptr< T > feature)
Definition
function_data.hpp:22
include
arkanjo
base
function
function_data.hpp
Generated by
1.12.0