Size: a a a

2020 August 26

hh

horse horssyyy in supapro.cxx
там в ифе проверяется если не пусто тогда resize
источник

IZ

Ilia Zviagin in supapro.cxx
horse horssyyy
std::vector<char> piece_data = this->storage[piece_idx];

       // init vector of piece_size size
       if (piece_data.empty()) {
           std::cout << "Allocating vector of size " << this->piece_size << " for piece " << piece_idx << std::endl;
           piece_data.resize(this->piece_size);
       }
Всё зависит от того, как этот this->storage[piece_idx]; заполнен.
источник

hh

horse horssyyy in supapro.cxx
я же не должен назад пихать в storage piece_data?
источник

hh

horse horssyyy in supapro.cxx
он же ссылку возвращает
источник

hh

horse horssyyy in supapro.cxx
this->storage[piece_idx] = piece_data; такое же не надо?
источник

IZ

Ilia Zviagin in supapro.cxx
horse horssyyy
он же ссылку возвращает
Он не важно что возвращает, но ты это что-то тут же присваиваешь в локальную переменную.
источник

IZ

Ilia Zviagin in supapro.cxx
horse horssyyy
this->storage[piece_idx] = piece_data; такое же не надо?
В данном случае НАДО, если ты хочешь изменить размер ТОГО вектора
источник

hh

horse horssyyy in supapro.cxx
А епт
источник

hh

horse horssyyy in supapro.cxx
А если я локальную переменную ссылкой сделаю?
источник

IZ

Ilia Zviagin in supapro.cxx
horse horssyyy
std::vector<char> piece_data = this->storage[piece_idx];

       // init vector of piece_size size
       if (piece_data.empty()) {
           std::cout << "Allocating vector of size " << this->piece_size << " for piece " << piece_idx << std::endl;
           piece_data.resize(this->piece_size);
       }
Вероятно, тебе надо было
std::vector<char> &piece_data = this->storage[piece_idx];
источник

hh

horse horssyyy in supapro.cxx
Да
источник

hh

horse horssyyy in supapro.cxx
Все работает лайк э шарм
источник

IZ

Ilia Zviagin in supapro.cxx
horse horssyyy
А если я локальную переменную ссылкой сделаю?
А ещё лучше --
auto & piece_data = this->storage[piece_idx];
источник

hh

horse horssyyy in supapro.cxx
Все никак не привыкну что все есть value
источник

IZ

Ilia Zviagin in supapro.cxx
horse horssyyy
Все работает лайк э шарм
Ну  и убери пиздату,

piece_of_data или data_chank
источник

AF

Aidar Fattakhov in supapro.cxx
Working Horse Close to light speed
Помню на одной из конференций сказали следующее
class Base;

class Child1: Base;
class Child2: Base;

class Last: Child1, Child2;
Теперь в классе Last два экземпляра Base. Мне вот интересно, это правда так работает или я что-то не понял? Если да, то починили ли это в новых версиях языка?
Ор, зачем это чинить
источник

IZ

Ilia Zviagin in supapro.cxx
Working Horse Close to light speed
Помню на одной из конференций сказали следующее
class Base;

class Child1: Base;
class Child2: Base;

class Last: Child1, Child2;
Теперь в классе Last два экземпляра Base. Мне вот интересно, это правда так работает или я что-то не понял? Если да, то починили ли это в новых версиях языка?
Да, это правда так работает, это By Design, это НЕ БУДУТ НИКОГДА ЧИНИТЬ,
потому что есть виртуальное и невиртуальное (тут используется) наследование
источник

hh

horse horssyyy in supapro.cxx
Я вам даже больше скажу
Child a{};
Base b = a;

Теперь в b (base) будут только поля которые есть в Base
источник

hh

horse horssyyy in supapro.cxx
Блин когда приходишь из других языков это просто какой-то разрыв шаблонов на каждом шагу )
источник

hh

horse horssyyy in supapro.cxx
Все логично просто очень непривычно
источник