Conversation
|
Коммиты Update cmake-single-platform.yml и коммиты связанные с gcc не относятся к самому ДЗ непосредственно. Это я настраивал GitHub Action для автоматической проверки тестов на платформе GitHub (раз репозиторий открытый, то им можно спокойно пользоваться) |
|
GTest на Github Action распознал утечку памяти. Последний коммит устраняет эту проблему. Теперь проходятся все тесты, включая PopBadArgs |
… from if to if-else; remove some spaces
18ad9cc to
5e5c8b2
Compare
czertyaka
left a comment
There was a problem hiding this comment.
Хорошее решение, но есть замечания и вопрос
| return; | ||
| } | ||
|
|
||
| #ifdef _MSC_VER |
There was a problem hiding this comment.
Такие вещи обычно выносят в макрос или макро-функцию, пример:
#ifdef _MSC_VER
#define CSTACK_MEMCPY(D, DZ, S, SZ) memspy_s(D, DZ, S, SZ)
#else
#define CSTACK_MEMCPY(D, DZ, S, SZ) memcpy(D, S, SZ)
#endif
CSTACK_MEMCPY(_ptr->data, _ptr->size, data_in, size);и пользуются дальше сколько угодно)
There was a problem hiding this comment.
Но вообще, насколько это хорошая или плохая практика так делать? По сути, здесь в зависимости от компилятора, на котором будет собрана библиотека, можно ожидать немного разное поведение от программы. Такие вещи в принципе допустимы?
There was a problem hiding this comment.
Если можно избежать макро-магии и прибивания гвоздями кода к платформе/компилятору/ОС/etc — стоит избегать. Конкретно в этом случае игра свеч все таки не стоит. Но иногда этого не избежать.
Спасибо! Можно ли спросить у вас какие-то пожелания/замечания по коду или стилю кода? |
Добрый вечер! То ли не заметил ваш комментарий в ПР в прошлый раз, то ли забыл ответить) Вообще говоря, во время ревью я старался писать все по-максимуму, за что у меня взгляд цеплялся, в том числе по coding style. Так что мне нечего особо добавить к тому, что я писал до этого. Сейчас пересмотрел ваш код -- обратил внимание только на |
Сделал первую возможную реализацию стека. Проходит все тесты, помимо PopBadArgs (см. czertyaka#26).