Size: a a a

2020 September 23

G

GNU/Vsevolod in pro.vim
Тогда пока не понимаю профита от толстого указателя
источник

EG

Emmanuel Goldstein in pro.vim
Он разрешает динамик диспатч
Т. е.:
1. Быстрая компиляция
2. Можно работать с коллекциями из разных типов, если они все реализуют один трейт: Vec<Box<dyn Trait>>
источник

G

GNU/Vsevolod in pro.vim
Emmanuel Goldstein
В расте, кстати, можно opt in в dynamic dispatch и 1 + 3.
Хз как в плюсах
А как выглядит дин диспатч в схх? Это abstract class + virt. method?
источник

EG

Emmanuel Goldstein in pro.vim
GNU/Vsevolod
А как выглядит дин диспатч в схх? Это abstract class + virt. method?
Понятия не имею
источник

EG

Emmanuel Goldstein in pro.vim
По дефолту плюсы делают то же самое, что и раст по дефолту — мономорфизируют функции и используют статик диспатч
источник

G

GNU/Vsevolod in pro.vim
Ну а вообще втейбл в плюсах — это уже не есть дин диспатч?
источник

EG

Emmanuel Goldstein in pro.vim
Ну, да, vtable это и есть дин диспатч, но где он, например, хранится, я не знаю
источник

EG

Emmanuel Goldstein in pro.vim
Вроде как, если у тебя есть указатель на базовый класс, и ты вызываешь виртуальный метод, то вот в этот момент происходит динамик диспатч на метод наследника
Откуда плюсы вытаскивают таблицу я хз
источник

EG

Emmanuel Goldstein in pro.vim
По идее, внутри объекта (в отличие от Rust, который хранит это внутри указателя)
источник

NG

Nicholas Guriev in pro.vim
Emmanuel Goldstein
По идее, внутри объекта (в отличие от Rust, который хранит это внутри указателя)
Обычно отдельно. Это глобальная таблица для каждого класса с хотя бы одним виртуальным методом.
источник

VG

Vadim Goncharov in pro.vim
Emmanuel Goldstein
Плюсовые темплейты работают на уровне синтаксиса, тру-дженерики скорее на уровне типов.
В Java и Rust, например, настоящие дженерики
а, так вот почему... и всё-таки плюсовый подход мне более тут по нраву, хоть я плюсы и не люблю
источник

VG

Vadim Goncharov in pro.vim
Emmanuel Goldstein
По памяти толстый указатель занимает 128 бит на нормальных системах, обычный указатель 64 бита.
это какая-то специфичная штука rust?
источник

EG

Emmanuel Goldstein in pro.vim
Vadim Goncharov
это какая-то специфичная штука rust?
Толстые указатели на Unsized-объекты? Насколько я знаю, да.
источник

JC

Julian =) Coffee in pro.vim
ну в плюсах вроде так же работает
источник

JC

Julian =) Coffee in pro.vim
только там вместо толстого указателя структура с полями предков и их виртуальными таблицами, где вместо виртуальной таблицы предка подставляется виртуальная таблица собственно класса
источник
2020 September 24

NS

Ni Shi in pro.vim
окей cocSearch но по моей проблеме легче не стало
источник

D

Denis GDevv in pro.vim
{ } - перемещаются туда где пустая строка, но если есть в ней пробелы - оно перепрыгнет через такой блок. А можно ли как-то приравнять это дело, чтобы наличие пробелов не мешало воспринимать это за разделитель блока? Строка же визуально пустая... сложно спрогнозировать визуально есть ли там пробелы
источник

NG

Nicholas Guriev in pro.vim
Предлагаю целиком удалить оттуда пробелы. %s/^\s*$//
источник

D

Denis GDevv in pro.vim
Nicholas Guriev
Предлагаю целиком удалить оттуда пробелы. %s/^\s*$//
Это-то можно, но они же заново наставиться могут :)
источник

D

Denis GDevv in pro.vim
Пишу просто много форматированного по вложенностям текста, часто там один под одним идут пункты, иногда забываешь что табуляции остались
источник