Github repository
Здравейте,
Тук
https://github.com/bonev-st/AppDevCpp2021
съм качил нещата които сме правили до момента, ако на някой му е интересно :).
Естесвено кода не съвсем същия като Живко.
Здравейте,
Тук
https://github.com/bonev-st/AppDevCpp2021
съм качил нещата които сме правили до момента, ако на някой му е интересно :).
Естесвено кода не съвсем същия като Живко.
Здравей, колега,
Адмирации за добрата работа.
Забелязвам С background с добавка модерен C++ twist :)
Познах ли?
Харесва ми, че си усвоил знанията и си ги приложил от твоята гледна точка.
Допада ми и факта, че си wrap-нал Surface/Textures's в smart pointer-и.
Доста се чудех по този въпрос докато разработвах курса, но реших да не задълбавам в тази насока.
И без това смятам, че първите занятия имаха стръмен learning curve за хора с по-малко опит.
Смарт пойнтърите щяха да им дойдат в повече.
Няколко неща, които забелязах и искам да изкоментирам:
1) Няма нужда на пишеш конструктори и десктруктури = default, когато нямаш други упоменати такива.
Това си е излишен boilerplate. Компилаторът ще ги генерира за теб.
Даже бих казал, че е "лошо", защото default generated dctor е маркиран като noexcept.
2) Не е нужно да правиш typedef на структури.
typedef struct _Texture_t {
std::shared_ptr<SDL_Texture> m_Texture;
int32_t m_W;
int32_t m_H;
} Texture_t;
Може да бъде просто:
struct Texture_t {
std::shared_ptr<SDL_Texture> m_Texture;
int32_t m_W;
int32_t m_H;
};
3) Готина имплементация на NoCopy.hpp
class NoCopy {
NoCopy(const NoCopy &) = delete;
NoCopy(NoCopy &&) = delete;
NoCopy operator = (const NoCopy &) = delete;
NoCopy operator = (NoCopy &&) = delete;
public:
NoCopy() = default;
~NoCopy() = default;
};
Точно за нещо подобно си говорих с един колега онзи ден.
Нещото, което ми прави впечатление е, че същината (copy & move) ctor/assignment operators са ти private.
Реално това е the C++98 way. Той също е верен, но не вади толкова смислен compiler error.
По-добре е да ги оставиш публични за да може да влезе в роля ключовата дума delete, която ще даде по-описателна грешка.
Поздрави
Качих работеща версия на SDL_CD_Kaleidoscope, малко е грозен кода но нещо мига :).
Алгоритъма на Kaleidoscope, който използвам е базиран на код от преди 45 години за демо на "цветна видео карта" на Cromemco's Dazzler от Li-Chen Wang
Благодаря за коментарите.
От доста годи работя като "deep embedded" (малки контроллери с по няколко КБ рам и ром, baremetal или с RTOS) програмист, от начало на асблер после на C, a през последните години пиша предимно на C++.
Разбрах аз :)
В момента, в който видях двойно отрицание върху побитова маска всичко беше ясно :)
Продължавай в същия дух.
Само напред и нагоре.
Здравейте,
за какво служи NoCopy.hpp?
И кога е редно да е .hpp, а не .h :?
Поздрави