Covellite++
Version: 2.3.0 Revision: ??? Platform: x64 Build: 23:13 04.01.2025
Кроссплатформенный фреймворк для разработки приложений на С++
Загрузка...
Поиск...
Не найдено
Events.inl
1
2
#pragma once
3
#include <Covellite/Events/Signal.hpp>
4
5
namespace
covellite
6
{
7
8
namespace
events
9
{
10
11
template
<
class
T,
bool
>
12
class
Id
13
{
14
public
:
15
inline
size_t
operator() (
const
T & _Value)
const
16
{
17
// Вычисление значения идентификатора для события любого типа.
18
return ::std::hash<T>()(_Value);
19
}
20
};
21
22
template
<
class
T>
23
class
Id<T, true>
24
{
25
public
:
26
inline
size_t
operator() (
const
T & _Value)
27
{
28
// Отдельная реализация вычисления значения идентификатора для enum
29
// потребовалась из-за того, что в Android версии компиляция вычисления
30
// хеша для enum завершается с ошибкой.
31
return
_Value;
32
}
33
};
34
44
template
<
class
TType>
45
inline
auto
Events::operator[] (
const
TType & _Id) ->
Signal
46
{
47
return
Signal
{ *
this
,
typeid
(TType).hash_code(),
48
Id<TType, ::std::is_enum<TType>::value>{}(_Id)};
49
}
50
51
}
// namespace events
52
53
}
// namespace covellite
covellite::events::Events::Signal
Класс входит в проект Covellite.Events Вспомогательный класс для доступа к сигналу конкретного собы...
Definition
Signal.hpp:30
Solution
Solution
Covellite.Events
Covellite.Events
Events.inl
Документация по Covellite++. Последние изменения: Сб 4 Янв 2025 23:13:15. Создано системой
1.12.0