You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
строки не надо инитить "". это ненужные выделения памяти. лучше пусть парсер понимает эмпти стринг. так же как и парсеру вроде не надо делать постоянно ресет в конструкторах - он же и так новый, не? в методах встречается посторная инициализвация полей возвращаемого нового селекшена хотя он только после конструктора
зачем индексы и номера фрейма проверять на отрицательность если можно просто юзать беззнаковый size_t. вообще там местами вольный обмен между инт и сайз_т шо как бы не альо.
во многих операциях с временными векторами не юзается мув семантика. зачем временный вектор копировать в _индекс если его можно мувнуть?
селект(стринг) принимает строку не по ссылке. но это мелочи. в процессе экспанда макросов регеспы парсятся снова и снова. почему не сделать статик массив готовых распасенных? они ж потом константно юзаются
в каком месте парсера модифицируется стартинг сабсет, шо его так уж надо передавать некостантным? тоже самое - зачем парсеру селекшена неконстантны систем?
вообще много вольного обращения с конст кастом. делаем внутри неконстантный поинтер и потом в него постоянно кастим из конста. как по мне лучше сделать константный поинтер и кастить только там где это действительно нужно. заодно будет понятно где именно нужна неконстантность.
возможно я бы так не мучал атом_хендлер, а сделал пару атом_хендлер и конст_атом_хендлер. и возвращал тот что нужно в зависимости от того константный индексатор или нет
поскольку вектор индексов сортированный - иногда можно пользоваться вставкой через лоу_баунд чем пихать в конец и по большому кругу
Selection Selection::select(int ind1, int ind2) const дублирует код - уже есть такой конструктор
лютый копипаст кода проверок хотя можно просто сделать впомогательные верифи (инлайн?) методы. в теории, кстати, вместо налл поинтера на систем для пустого селекшена можно юзать статик экземпляр системы который будет считатся за "пустой"
какой смысл делать Affine3f fit_transform(const Selection& sel1, const Selection& sel2, bool translate_to_zero) и внутри конст каст, если походу все равно никогда он не вызывается для константных селекшенов?
The text was updated successfully, but these errors were encountered:
вообще если пристально пройти по коду и применить мув семантику то не было бы таких кусков. когда мы деаем фрейм, потом его копию пушим в вектов, а потом парсим в последний элемент.
Frame fr;
frame_append(fr);
f->read(this, &frame(num_frames()-1), c);
Hi
Just result of pretty short review:
The text was updated successfully, but these errors were encountered: