Re: Библиотека форматирования marty::format
От: Igore Россия  
Дата: 15.04.25 19:20
Оценка:
Здравствуйте, Marty, Вы писали:

M>В общем, пинайте на здоровие — https://github.com/al-martyn1/marty_format

Посмотрел код а не саму идею, замечания:

defs.h
MARTY_ARG_USED — не используется в примерах, и похоже в проекте не использует, а без этого макроса сам файл не нужен

dummy.cpp — удалить

enums.h — не соберется, где вся директория marty_cpp
и сразу по виду использования, а макрос MARTY_CPP_ENUM_FLAGS_DESERIALIZE_ITEM точно нужен? Это не аналог
static inline std::map<FormattingFlags, std::string> = {
   {FormattingFlags::unknow,  "unknown"},
// ...
};


exceptions.h
MARTY_FORMAT_DECLARE_EXCEPTION_CLASS — непонятно для чего нужен, но ладно, внутри одного using clsBase::clsBase для наследования всех конструкторов разве не достаточно будет?
В class base_error тоже самое, ну или хотя бы default используй.
base_error(const base_error &e) = default;
base_error& operator=(const base_error& e) = default;

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

marty_format.h
if ((formattingFlags&FormattingFlags::ignoreFillIndirectErrors)==0)

не читается без пробелов вокруг &

Сама идея странная, зачем имея флаг ignoreFormattingErrors всегда кидать исключения, потом ловить, потом перепрокидывать, не проще исключение просто не кидать?

utils.h
Для примера isFormatTypeChar, а почему не через switch/case, и читать и поддерживать, проще же.

removePrefix, removeSuffix, если срабатывает граничное условие, то зачем действие делать, можно сразу пустую строку вернуть
    if (n>str.size())
        return "";
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.