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))