Andrei
Кажется я не прав.
🦥Alex Fails
Что где
Алдар
template<class T>
class Base {
...
};
class Derived: public Base<Derived> {
...
};
Для чего это нужно бывает?
🦥Alex Fails
Sergey
Ну
🦥Alex Fails
Позволяет внедрять зависимости через общиц интерфейс
Andrei
стойте.
Andrei
блин, это просто статический полиморфизм.
Andrei
У нас тут ошибка.
🦥Alex Fails
Andrei
Я не знаю почему, но отсутсвие виртуального деструктора делает какой-то дикий type-erasure
Andrei
и деструкторы полей таки не вызываются.
Andrei
Да, my bad
Andrei
Забыл про последоватльеность.
Andrei
Очень плохо.
Andrei
http://ideone.com/9zjUOy
Алдар
реализуйте библиотечную функцию remove_if
Andrei
где
CRTP, нужно в первейшую очередь для статического полиморфизма. Как раз когда мы не хотим иметь дело с виртуальными функциями
Andrei
про депенденсу инжекшн это в яваконференции пожалуйста :D
Алдар
можно ли инлайнить виртуальную функцию?
Алдар
ладно пошёл эликсир потрогаю)
Andrei
Andrei
И разумеется их можно вызывать.
Алдар
можно ли кидать исключения из деструктора?
Andrei
И тоже можно.
Andrei
другое дело, что в стандартной библиотеке деструкторы объявлены noexcept и ты просто на такой фокус получишь std::terminate
Алдар
что такое POD и для чего он нужен?
Andrei
либо double fault
🦥Alex Fails
Andrei
Если это случилось внутри обработчика exception
Andrei
Но кидать можно.
Andrei
И про vtable в конструкторе тоже неправильный ответ :с
🦥Alex Fails
где
Это "где" я ткнул не туда🙈хотел на то, где ошибка
Andrei
под это не объект си
🦥Alex Fails
Andrei
Не думаю что это UB
Andrei
Просто вызовется неполиморфная версия.
Andrei
Хотя так и можно спродюсировать pure virtual call
🦥Alex Fails
Andrei
Нет.
Andrei
бля
Andrei
пиздец
Andrei
у меня все расспыалось нахуй
Andrei
ща
Andrei
РРР
🦥Alex Fails
Andrei
ТАк
Andrei
Ппц
Andrei
В общем.
Andrei
В 11 плюсах
Andrei
pod
Andrei
это либо массив pod-ов, либо скалярный тип, либо пользовательский тип, rjnjhsq
Andrei
которы
Алдар
чем make_shared лучше чем обычное создание?
Andrei
являетсся trivial type
Andrei
не имеет нестатические неPOD члены
Алдар
как работает функция std::move?
Andrei
и является standart layout type
Алдар
что такое perfect forwarding?
Andrei
до 11 плюсов по другому определялось.
Andrei
trivial это значит что он
Andrei
trivially copyable
Andrei
и trvially constructible
Andrei
что в свою очередь значит, нет юзер провайдед конструктора
Andrei
нет виртуальных функций
Алдар
trivially constructible это значит дефолтный конструктор есть?
Andrei
нет виртуальных бейз классов
Алдар
trivially copyable значит можноо тупо память скопировать?
Andrei
Полегче
🦥Alex Fails
🦥Alex Fails
Andrei
НЕТ!
🦥Alex Fails
Я блин 4 дня уже не спал
Andrei
Andrei