Информация об изменениях

Сообщение Re[15]: попинайте пожалуйста резюме от 26.05.2021 18:45

Изменено 26.05.2021 20:30 PM

Re[15]: попинайте пожалуйста резюме
Здравствуйте, sergey2b, Вы писали:

S>Здравствуйте, PM, Вы писали:



PM>>А вот написание таких вещей в образовательных целях — это отличный способ разобраться как что устроено, такое я делал. Кстати, непрошенный бесплатный совет — если хотите завалить С++ программиста на собеседовании, попросите его реализовать std::vector или std::shared_ptr + weak_ptr. Если кандидат справился с заданием, то перед вами STL, или вы просто знаете С++ хуже кандидата.



S>amadeus в Boston просит на доске реализовать vector


У вас получилось? Оно поддерживает custom allocator? является exception safe? Умеет хранить move-only noexcept значения? Мне уже лень писать про еще десятки дьявольски мелочей. Если ответ на эти вопросы да, и у вас есть тесты это подтверждающие, то как оно будет работать с таким кодом:
class cowinotrid // short from complicated_with_non_trivial_dtor
{
   std::string data;
   cowinotrid(std::string data) : data(data)
   {
      for (int i = 0; i < 1000; ++i) data += data; // to be longer than small string optimization length 
   }

   ~cowinotrid() { fclose(file_); }
};

my_own_vector<cowinotrid> vec{ "hallo welt" }; 
while (vec.size() <= vec.capacity()) // i want to reallocate
{
    vec.push_back(vec[0]);
}
assert(vec.size() == 2);



S>не поверите, но на собеседовании в Пятерочку мск просят реализовать std::shared_ptr буиаге (спасибо хоть не на доске)


Поверю. А вопрошающий знает про weak_ptr, make_shared()? С нуля или с единицы начинать подсчет ссылок? Какой memory_order использовать для счетчика ссылок? Выдавать ли значение счетчика ссылок наружу? Будет ли работать с move-only custom deleter?
Re[15]: попинайте пожалуйста резюме
Здравствуйте, sergey2b, Вы писали:

S>Здравствуйте, PM, Вы писали:



PM>>А вот написание таких вещей в образовательных целях — это отличный способ разобраться как что устроено, такое я делал. Кстати, непрошенный бесплатный совет — если хотите завалить С++ программиста на собеседовании, попросите его реализовать std::vector или std::shared_ptr + weak_ptr. Если кандидат справился с заданием, то перед вами STL, или вы просто знаете С++ хуже кандидата.



S>amadeus в Boston просит на доске реализовать vector


У вас получилось? Оно поддерживает custom allocator? является exception safe? Умеет хранить move-only noexcept значения? Мне уже лень писать про еще десятки дьявольских мелочей. Если ответ на эти вопросы да, и у вас есть тесты это подтверждающие, то как оно будет работать с таким кодом:
class cowinotrid // short from complicated_with_non_trivial_dtor
{
   std::string data;
   cowinotrid(std::string data) : data(data)
   {
      for (int i = 0; i < 1000; ++i) data += data; // to be longer than small string optimization length 
   }
};

my_own_vector<cowinotrid> vec{ "hallo welt" }; 
while (vec.size() <= vec.capacity()) // i want to reallocate
{
    vec.push_back(vec[0]);
}
assert(vec.size() == 2);



S>не поверите, но на собеседовании в Пятерочку мск просят реализовать std::shared_ptr буиаге (спасибо хоть не на доске)


Поверю. А вопрошающий знает про weak_ptr, make_shared()? С нуля или с единицы начинать подсчет ссылок? Какой memory_order использовать для счетчика ссылок? Выдавать ли значение счетчика ссылок наружу? Будет ли работать с move-only custom deleter?