
Aldar
27.05.2016
21:48:40
как работает функция std::move?

Andrei
27.05.2016
21:48:40
и является standart layout type

Aldar
27.05.2016
21:48:56
что такое perfect forwarding?

Andrei
27.05.2016
21:49:01
до 11 плюсов по другому определялось.

Google

Andrei
27.05.2016
21:49:38
trivial это значит что он
trivially copyable
и trvially constructible
что в свою очередь значит, нет юзер провайдед конструктора
нет виртуальных функций

Aldar
27.05.2016
21:50:32
trivially constructible это значит дефолтный конструктор есть?

Andrei
27.05.2016
21:50:41
нет виртуальных бейз классов

Aldar
27.05.2016
21:50:49
trivially copyable значит можноо тупо память скопировать?

Andrei
27.05.2016
21:50:55
Полегче

Alex Фэils?︙
27.05.2016
21:50:56

Andrei
27.05.2016
21:51:02
НЕТ!

Alex Фэils?︙
27.05.2016
21:51:10
Я блин 4 дня уже не спал

Google

Andrei
27.05.2016
21:51:13

Alex Фэils?︙
27.05.2016
21:51:32

Andrei
27.05.2016
21:51:44
1) нет пользовательского конструктора

Alex Фэils?︙
27.05.2016
21:51:45
Нет констр клпирования
Юзеоа

Andrei
27.05.2016
21:51:54
2) нет виртуальных мемберов
3) нет виртуального наследования

Aldar
27.05.2016
21:52:16
виртуальное наследование ещё может добавить скрытые поля

Andrei
27.05.2016
21:52:21
4) все ПРЯМЫЕ предки тривиал констрактибл

Aldar
27.05.2016
21:52:31
и виртуальная функция тоже добавляет указатель)

Andrei
27.05.2016
21:52:35
5) все нестатические слены тривиал констрактибл
6) добавилось в 11
у типа нет нестатических членов с дефолтными инициализаторами

Alex Фэils?︙
27.05.2016
21:53:22

Andrei
27.05.2016
21:54:13

Alex Фэils?︙
27.05.2016
21:54:27
Да
А типы языка си - это подмножество подов

Andrei
27.05.2016
21:54:57
не берусь сказать сходу, но видимо, да.

Alex Фэils?︙
27.05.2016
21:54:57
Все типы си - подыЮ но не все поды - типы как в си

Google

Alex Фэils?︙
27.05.2016
21:55:17
кстати, в гцц в си-части можно прикручивать что-то типа деструкторов

Andrei
27.05.2016
21:55:45

Alex Фэils?︙
27.05.2016
21:56:18

Andrei
27.05.2016
21:56:48

Aldar
27.05.2016
21:57:49
как работает dynamic_cast?
и когда он работает, когда не работает?
Какие вы знаете типа кастов в С++?

Andrei
27.05.2016
21:59:40
это получше вопросы
про pod вопросы на знание стандарта

Aldar
27.05.2016
22:01:41
как shared_ptr работает с иерархиями наследования?

Aldar
27.05.2016
22:03:27
Какой порядок создания и разрушения объекта в С++?
Что такое список инициализации и зачем он нужен?
ключевое слово const, как оно применяется в С++?

Andrei
27.05.2016
22:05:29
у shared_ptr есть один конструктор забавный
aliasing конструктор

Alex Фэils?︙
27.05.2016
22:44:47

Andrei
27.05.2016
22:45:10
Он не скрытый, просто о нём редко говорят.

Aldar
27.05.2016
22:45:30
https://www.youtube.com/watch?v=1OEu9C51K2A

Google

Aldar
27.05.2016
22:45:51
Страуструп рекомендует юзать простые указатели если не собираешься менять владение

Alex Фэils?︙
27.05.2016
22:45:57

Aldar
27.05.2016
22:46:59
Отсюда следует что нужно постоянно думать про овнершип и не переживёт ли юзер владельца

Andrei
27.05.2016
22:47:50
Если в этом есть сомненеие тогда shared_ptr

Aldar
27.05.2016
22:48:43
добавляет лишний счётчик
то о чём я говорил, при использовании С++ в любом случае надо думать о памяти
даже если есть умные указатели

Nikolay добряш
27.05.2016
22:51:23
А там еще не сделали гэрбейч коллектор

Aldar
27.05.2016
22:51:26
При этом всё равно раст будет безопаснее

Admin
ERROR: S client not available

Aldar
27.05.2016
22:51:51
потому что проверяет всё на уровне типов и компилятора, как раз то к чему стремиться монструозный С++

Andrei
27.05.2016
23:01:03
Блин.
Нет.
Господи
Чудес не бывает.
Раст просто гвоздями прибивает лайфтайм объекта в куче к объекту стека.
И всё.
Раст просто сужает твои возможности
никто не запрещает тебе на плюсах писать точно так же.

Google

Andrei
27.05.2016
23:09:38
Причем, я например так и делал.
И на работе
писал code guideline
для всей команды
где одно из правил было не использовать shared_ptr
потому что они размывают владение
Только unique

Aldar
27.05.2016
23:11:10
omg как без shared_ptr то обходитесь?

Andrei
27.05.2016
23:11:39
по секрету
так же как все топовые фирмы которые пишут критически важный софт на плюсах
никто не будет в серверном коде более\менее серьёзным использовать shared_ptr

Aldar
27.05.2016
23:12:52
постоянно передаёте unique_ptr и возвращаете?

grinchfox
27.05.2016
23:13:11
это наркомания

Aldar
27.05.2016
23:13:35
не упоминай про вещества

Andrei
27.05.2016
23:13:36
Куда передаем и возвращаем?

grinchfox
27.05.2016
23:13:44
ну тоесть не обязательно раскидывать на право и на лево lock free структуры и безопасные указатели просто потому что можешь
таким образом можно просто на java или C# пересесть где все за тебя сделано, но без особой производительности

Andrei
27.05.2016
23:14:42
сравнение вообще не в тему

grinchfox
27.05.2016
23:14:48
ну ок

Aldar
27.05.2016
23:15:24
в джаве очень уродливые дженерики

Andrei
27.05.2016
23:15:53
В расте никакого отличия от плюсов нет
вместо shared_ptr там Rc
который разве что иммутабельные