Kirill
Хотели они через специализацию, но чтобы догадаться как хотел собеседующий, нужно было под часа решать задачу разными способами пока не угадаешь
Aleksei
Вчера про const говорили. Мне кажется, это хороший вопрос. Много нюансов. Не обязательно рассказывать все, главное чтобы кандидат вообще его использовал. А то бывает, что const вообще нигде не пишут.
Kirill
Плюс там же главное объяснить, почему вот так сделано плохо, а не сказать что говно, я бы сделал по другому)
Kirill
Всмысле битовая и логическая
Aleksei
Так я бы сам не ответил :)
Денис
Да, почему выбрали нашу компанию бред. Но почему ушел с предыдущего норм вопрос я счиатю
Поддержу. Спрашивают про предыдущее место, чтобы понять - а стоит ли с этим специалистом иметь дело - если он уходит из-за того, что предыдущий руководитель пукнул случайно.
Kirill
Ну конст метод может менять бытовое представление класса, но не менять его логически. Тоесть есть например класс который содержит данные и свое приватное поле для каких то промежуточных расчетов, чтобы в стеке его не дергать. данные мы не поменяли, а после вызова какого то метода поле типа temp поменялось, и вроде класс тот же. А побитово нет
Kirill
Вот из этого и вылезает правильно ли кандидат использует конст мьютабл или нет
Nikita
Да даже в банальном вопросе: есть вектор из 100 даблов, найдите сумму — можно закопаться. Учитывая, что сумма не ассоциативна, и результат будет плавать от порядка суммирования и кучи других факторов, а от её результата может много другого зависеть (тесселяция, например), есть что обсуждать.
Anatoly
Сломать с дуру многое под силу
Anatoly
Смотрел доклад по так называемому мета программированию. Отличный способ взорвать мозг у соискателя
Kirill
Смотрел доклад по так называемому мета программированию. Отличный способ взорвать мозг у соискателя
Почему нет) у меня спрашивали. я отвечал, естественно никто Пипец сложных вещей не спросит, но делать один класс наследником другого исходя из рекурсивного разаорачивания шаблонов это норма на собеседованиях спрашивать
Kirill
В итоге оно конечно никогда практически не пригодится, но это галочка, типо ты в этом разбирался, ты из наших)
Anatoly
После чего все обнимаются
Anatoly
😂
Kirill
И танцуют)
Mikhail
После чего все обнимаются
И лайкают друг друга на хабре
Anatoly
Конечно, доклад можно скинуть
Anatoly
На трубе был
Evgenii
Конечно, доклад можно скинуть
Да интереснее, какие по твоему можно задать вопросы на собеседовании, чтобы взорвать мозг
Anatoly
По всей теме. Слишком узкое направление
Anatoly
На мой скромный взгляд конечно
Evgenii
Ну один конкретный вопрос можно?)
Anatoly
Да нет же, я совершенно не понимаю в этом.
Алдар
Ну один конкретный вопрос можно?)
#include <utility> #include <type_traits> template<class, class = void> struct has_method_foo : std::false_type {}; template<class T> struct has_method_foo<T, std::void_t<decltype(std::declval<T>().foo())>> : std::is_same<decltype(std::declval<T>().foo()), int>::type { }; что делает и как работает?
Алдар
да, но это и так понятно))
Алдар
точнее метод foo
Evgenii
да, но это и так понятно))
Если метода нет вообще, специализируется первая структура по SFINAE, если есть, то из сейм проверяет инт или нет
Vyacheslav
Предполагаю, что Анатолий говорил про этот доклад https://www.youtube.com/watch?v=MbbOsKMA3rk про рефлексию в C++14
Vyacheslav
возможно )
Anonymous
драсте)
Anatoly
Предполагаю, что Анатолий говорил про этот доклад https://www.youtube.com/watch?v=MbbOsKMA3rk про рефлексию в C++14
Спасибо, в точку. Валяюсь с 39С, не ищется ) извините ща подробность
Dmitriy / დიმიტრი
Привет, а могу я создать шаблон который будет выглядеть вот так: lock_space(object_mutex) { bool data = Obj.GetData(); calculate(data); }а на этапе компиляции преобразовываться в вот это: { std::lock_guard<std::mutex> lock(object_mutex); bool data = Obj.GetData(); calculate(data); }
Dmitriy / დიმიტრი
Как-нибудь можно фигурные скобки и всё что внутри шаблону передать в аргументах?
Deleted Account
define std::lock_guard<std::mutex> lock lock_space
Deleted Account
как нить
Deleted Account
Dmitriy / დიმიტრი
Всеравно непонятно как строки внутри передать. Я просто хочу от такого избавиться: // ... object_mutex->lock(); Data data = Obj.GetData(); calculate(data); object_mutex->unlock(); // ...
Deleted Account
{ object_mutex(mylock); Data data = Obj.GetData(); calculate(data); }
Deleted Account
прост незабывай скоупы делать
Deleted Account
Deleted Account
новомодный
Nikita
{ object_mutex(mylock); Data data = Obj.GetData(); calculate(data); }
проблема будет, даю минуту подумать
mefest
какой ещё
std::lock_guard
Deleted Account
проблема будет, даю минуту подумать
бла ну я внетрений код скоприровал
Deleted Account
там разрулить просто
Deleted Account
вынести обжэкт наружу
Deleted Account
ну это мелочи
Nikita
бла ну я внетрений код скоприровал
оптимизатор может лок выкинуть
Deleted Account
я вот чот даж не уверен
mefest
оптимизатор может лок выкинуть
разве? а на край тогда volatile
Anatoly
оптимизатор ничего не выбросит
Anatoly
12.2 ... Even when the creation of the temporary object is unevaluated (Clause 5) or otherwise avoided (12.8), all the semantic restrictions shall be respected as if the temporary object had been created and later destroyed.
Deleted Account
это хор
mefest
https://godbolt.org/g/yVKPKS
Aleksei
оптимизатор может лок выкинуть
http://stackoverflow.com/a/27741897/2814617 Со ссылкой на пункт стандарта
mefest
http://stackoverflow.com/a/27741897/2814617 Со ссылкой на пункт стандарта
а вы читали что там пишут? Компилятору не разрешается оптимизировать автоматический объект, у деструкторов или инициализации которого есть побочные эффекты
Aleksei
ну да
mefest
в данном случае guard низзя выкидывать
Aleksei
Я про это же
mefest
ой, извините, перепутал собеседников
Deleted Account
вот и збс
Deleted Account
пойду свой код перепишу