Сообщение 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 значения? Мне уже лень писать про еще десятки дьявольски мелочей. Если ответ на эти вопросы да, и у вас есть тесты это подтверждающие, то как оно будет работать с таким кодом:
S>не поверите, но на собеседовании в Пятерочку мск просят реализовать std::shared_ptr буиаге (спасибо хоть не на доске)
Поверю. А вопрошающий знает про weak_ptr, make_shared()? С нуля или с единицы начинать подсчет ссылок? Какой memory_order использовать для счетчика ссылок? Выдавать ли значение счетчика ссылок наружу? Будет ли работать с move-only custom deleter?
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 значения? Мне уже лень писать про еще десятки дьявольских мелочей. Если ответ на эти вопросы да, и у вас есть тесты это подтверждающие, то как оно будет работать с таким кодом:
S>не поверите, но на собеседовании в Пятерочку мск просят реализовать std::shared_ptr буиаге (спасибо хоть не на доске)
Поверю. А вопрошающий знает про weak_ptr, make_shared()? С нуля или с единицы начинать подсчет ссылок? Какой memory_order использовать для счетчика ссылок? Выдавать ли значение счетчика ссылок наружу? Будет ли работать с move-only custom deleter?
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?