Radium Engine
1.7.0
Loading...
Searching...
No Matches
DynamicVisitor.cpp
1
#include <Core/Containers/DynamicVisitor.hpp>
2
#include <any>
3
#include <functional>
4
#include <typeindex>
5
#include <unordered_map>
6
#include <utility>
7
8
namespace
Ra
{
9
namespace
Core {
10
11
bool
DynamicVisitor::accept
(
const
std::type_index
&
id
)
const
{
12
return
m_visitorOperator.
find
(
id
) != m_visitorOperator.
cend
();
13
}
14
15
void
DynamicVisitor::operator()
(
const
std::string
& name,
16
std::any&& in,
17
std::any&& userParam )
const
{
18
m_visitorOperator.
at
(
std::type_index
( in.type() ) )(
19
name, in,
std::forward<std::any>
( userParam ) );
20
}
21
22
}
// namespace Core
23
}
// namespace Ra
std::unordered_map::at
T at(T... args)
std::string
Ra::Core::DynamicVisitor::operator()
void operator()(const std::string &name, std::any &&in, std::any &&userParam) const override
Execute a visiting operator on accepted types.
Definition
DynamicVisitor.cpp:15
Ra::Core::DynamicVisitor::accept
bool accept(const std::type_index &id) const override
Acceptance function for the visitor.
Definition
DynamicVisitor.cpp:11
std::unordered_map::cend
T cend(T... args)
std::unordered_map::find
T find(T... args)
std::forward
T forward(T... args)
Ra
hepler function to manage enum as underlying types in VariableSet
Definition
Cage.cpp:4
std::type_index
src
Core
Containers
DynamicVisitor.cpp
Generated by
1.12.0