Zmeika
простая аркадная игра
 Указатель Классы Пространства имен Файлы Функции Переменные Определения типов Перечисления Страницы
Файл ConfigFile.hpp
#include <map>
#include <string>
#include <sstream>
#include <type_traits>
Граф включаемых заголовочных файлов для ConfigFile.hpp:
Граф файлов, в которые включается этот файл:

См. исходные тексты.

Определения типов

typedef std::map< std::string,
std::string > 
Dictionary
 базовый тип словаря Подробнее...
 

Функции

Dictionary loadDictionary (const char *fn)
 загрузить словарь из файла
 
void refreshDictionary (const char *fn, const Dictionary &)
 обновить файл словарём
 
template<class T >
std::string toString (T t)
 вспомогательная функция для перевода значений в строки
 
template<class T >
std::decay< T >::type try_parse (const std::string &input, T &&default_value=T())
 вспомогательная конструкция для разбора строк "на месте".
 
template<class T >
std::decay< T >::type try_get (const Dictionary &dict, const std::string &key, T &&default_value=T())
 попытаться извлечь значение по ключу и одновременно разобрать его строковое представление
 

Подробное описание

Средства для чтения файлов-"словарей", состоящих из строчек вида "ключ" = "значение" // комментарий Нераспознанные строчки игнорируются (refreshDictionary сохраняет их нетронутыми).

Кавычки не обязательны, но если их нет, то читается только одно "слово". В начале полагается, что ключи и значения – строки.

Типы

typedef std::map<std::string, std::string> Dictionary

базовый тип словаря

На данный момент это map, который хранит уникальные ключи. При совпадении ключей, будет сохранено только последнее из значений. При сохранении в файл, содержащий несколько записей с совпадающим ключом, все их значения будут заменены на одно.

Пока это является потенциальной проблемой лишь для списка лучших игроков, так как там в качестве ключа используется количество очков.