Владимир Елисеев @TheDestr
Программист видеоигр
Информация
- В рейтинге
- Не участвует
- Откуда
- Россия
- Зарегистрирован
- Активность
Специализация
Game Developer, Game Designer
Middle
От 190 000 ₽
C++
C#
OpenGL
Java
JavaScript
Cmake
Multiple thread
Git
Python
Lua
Буквально то, что хотелось почитать.
Вытесняющая многозадачность и хоумбрю VMT не вымерли (Хотя автор этого и не утверждал), буквально недавно их видел.
Хочется больше. Спасибо большое.
Вы намекаете на расширение
toVisit
?Но мне показалось тут ошибка в том, что нужно применять эвристику и нормальный алгоритм поиска. А тут как будто почти брутфорс. Но это уже багой не назвать. Хотя может быть это все есть под многоточием...
По поводу ошибки в последнем примере:
Скрытый текст
Из очевидного. Не хватает словечка static перед const я полагаю. Но не верится что это могло дать такую просадку.
Хотелось бы прочитать больше о таких же тривиальных советах к обозначенным проблемам. По типу, создать вектор под заранее известный или ожидаемый размер ячеек. Или в каких случаях стоит использовать врапперы по типу std::array.
Если такие ошибки делаются, то конечно нужно обсуждать.
Спасибо за статью.
Мне кажется это решение несколько overengineering...
Я бы не рекомендовал создавать собственные коллекции без крайней необходимости. Это требует сил, времени, создает технический долг и требует отладки с покрытием тестами.
Если нужно ограничить функционал коллекции, я рекомендую приватно унаследовать стандартную коллекцию.
Также я бы разделил ответственность вашего парсера на две. Сам парсер, на мой взгляд, должен заниматься непосредственно парсингом.
Группировать параметры по ключам и хранить значения.
Проверять корректность ввода. Ключ может быть флагом, или списком. Список может иметь допустимый набор параметров или маску. Формировать сообщение об ошибке ввода.
Автоматически формировать команду -h -help
Вторая часть ответственности, это настройка вашего приложения по параметрам. Чисто клиентский код программы.