20 LimitedWarning(std::string message, std::string source) :
msg{std::move(message)},
src{std::move(source)} {}
24 static bool unused = [
this] {
28 logger->warn(
"{}",
msg);
29 if (++count < times_to_run - 1) {
32 if (count == times_to_run - 1) {
33 logger->warn(
"{} (This warning will not be printed anymore)",
msg);
51 template <
typename T,
size_t N,
typename Key>
52 typename std::enable_if<std::is_convertible<Key, size_t>::value,
bool>::type
54 return N >
static_cast<size_t>(key);
58 template <
typename T,
typename Key,
typename Value>
59 typename std::enable_if<std::is_convertible<T, Key>::value,
bool>::type
60 KeyExists(T key,
const std::map<Key, Value> &container) {
62 return container.find(static_cast<Key>(key)) !=
end(container);
66 template <
typename T,
typename Value>
67 typename std::enable_if<std::is_convertible<T, size_t>::value,
bool>::type
68 KeyExists(T key,
const std::vector<Value> &container) {
70 return container.size() >
static_cast<size_t>(key);
74 template <
typename T,
typename Key,
typename Value>
75 typename std::enable_if<std::is_convertible<T, Key>::value,
bool>::type
77 return container.find(static_cast<Key>(key)) !=
end(container);
81 template <
typename T,
typename Key>
82 typename std::enable_if<std::is_convertible<Key, size_t>::value,
bool>::type
84 return container.size() >
static_cast<size_t>(key);
88 template <
typename T,
typename Key,
typename... Keys,
typename Value>
89 typename std::enable_if<std::is_convertible<T, Key>::value,
bool>::type
90 ContainsKeys(
const std::map<Key, Value> &container, T key, Keys... keys) {
91 if (container.find(static_cast<Key>(key)) !=
end(container)) {
99 template <
typename T,
typename Key,
typename... Keys>
100 typename std::enable_if<std::is_convertible<Key, size_t>::value,
bool>::type
102 if (container.size() >
static_cast<size_t>(key))
LimitedWarning(std::string message, std::string source)
const LimitedWarning< 10 > keyexists_deprecation_msg
std::enable_if< std::is_convertible< T, Key >::value, bool >::type KeyExists(T key, const std::map< Key, Value > &container)
std::enable_if< std::is_convertible< Key, size_t >::value, bool >::type ContainsKeys(const std::array< T, N > &container, Key key)
NAIAChain::EventItr end(NAIAChain &chain)
auto getLogger(const std::string &fnName)
Create a new logger with a given function name.