Toggle navigation
ivorium
iv_components
Example project
GitHub
Main Page
Modules
Classes
Files
File List
File Members
ivorium_model
ModelTools
Link.hpp
Go to the documentation of this file.
1
#pragma once
2
3
#include <type_traits>
4
#include <typeindex>
5
6
namespace
iv
7
{
8
15
template
<
class
Target >
16
class
Link
17
{
18
public
:
19
Link
();
20
Link
( Target * );
21
22
// setter
23
void
set
( Target * );
24
25
// getter
26
Target *
get
();
27
Target *
operator->
();
28
Target *
operator*
();
29
30
private
:
31
Target * _target;
32
};
33
40
class
VLink
41
{
42
public
:
43
VLink
();
44
45
template
<
class
Target >
46
VLink
( Target * );
47
48
// setter
49
template
<
class
Target >
50
void
set
( Target * );
51
52
// getter
53
std::type_index
type
();
54
55
template
<
class
Target >
56
Target *
get
();
57
58
private
:
59
std::type_index _type;
60
void
* _target;
61
};
62
63
}
64
65
#include "
Link.inl
"