Я работаю над старшим проектом и задаю вопрос о том, как наилучшим образом реализовать справочную таблицу для моей программы.Существует несколько файлов enum class
, которые содержат enum class
es и перегружены operator<<
, чтобы вывести их на std::string
s.Мы используем дерево свойств boost для анализа файла JSON, и анализ не может преобразовать строку в enum class
по умолчанию.Поскольку в какой-то момент программы нам нужны как классы enum, так и строки, имеет смысл реализовать std::unordered_map
.Моя проблема, однако, заключается в том, где мне разместить таблицу поиска в терминах моих файлов?
В настоящее время наш код содержит 4 файла классов enum, которые в сумме имеют вид
namespace wiregen{
enum class {/* values */}
ostream& operator<<(ostream& os, enum){/*overload code to output enum as a string*/}
}
Перечисления должны быть общедоступными какони используются несколькими классами.В настоящее время они определены, а оператор << перегружен определен в заголовочных файлах enum.Мой вопрос, однако, должен ли я поместить таблицу поиска в заголовок enum, сделать реализацию enum и переместить таблицу поиска туда, или что-то еще? </p>