WebCFace 2.9.0
Web-based Communication Framework & Dashboard-like UI
Loading...
Searching...
No Matches
map.h
Go to the documentation of this file.
1#pragma once
2#include <map>
3#include <set>
4#ifdef WEBCFACE_MESON
5#include "webcface-config.h"
6#else
7#include "webcface/common/webcface-config.h"
8#endif
10
12namespace internal {
13
14template <typename T>
15using StrMap1 = std::map<SharedString, T>;
16template <typename T>
18using StrSet1 = std::set<SharedString>;
20
21template <typename M, typename K1, typename K2>
22static auto findFromMap2(const M &map, const K1 &key1, const K2 &key2)
23 -> std::decay_t<decltype(map.at(key1).at(key2))> {
24 auto s_it = map.find(key1);
25 if (s_it != map.end()) {
26 auto it = s_it->second.find(key2);
27 if (it != s_it->second.end()) {
28 return it->second;
29 }
30 }
31 return {};
32}
33template <typename M, typename K1>
34static auto findFromMap1(const M &map, const K1 &key1)
35 -> std::decay_t<decltype(map.at(key1))> {
36 auto it = map.find(key1);
37 if (it != map.end()) {
38 return it->second;
39 }
40 return {};
41}
42
43} // namespace internal
44
static auto findFromMap1(const M &map, const K1 &key1) -> std::decay_t< decltype(map.at(key1))>
Definition map.h:34
std::map< SharedString, T > StrMap1
Definition map.h:15
StrMap1< StrSet1 > StrSet2
Definition map.h:19
static auto findFromMap2(const M &map, const K1 &key1, const K2 &key2) -> std::decay_t< decltype(map.at(key1).at(key2))>
Definition map.h:22
StrMap1< StrMap1< T > > StrMap2
Definition map.h:17
std::set< SharedString > StrSet1
Definition map.h:18
#define WEBCFACE_NS_END
Definition webcface-config.h:118
#define WEBCFACE_NS_BEGIN
Definition webcface-config.h:117