Size: a a a

2020 September 01

N

Neargye in pro.cxx
Alexey Kuznetsov
template<typename T> void f( enable_if_t<(sizeof(T) < 239)>* = nullptr );
без перегрузки параметра - это опасно давать в паблик апи
источник

A

Alex in pro.cxx
какие из этого последствия?
источник

Rn

Roman na in pro.cxx
Pavel Kazakov
"Реализация определяет всё" -- офигенно. Т.е. кроссовер и седан на одной платформе -- это одна машина? Moon logic.
У тебя проблема с методичкой. Ты сел в лужу и начал задним числом её менять, т.е. попросту врать. Давай на примере твоих маня-аналогий. Я сообщил, что база в двух машинах одна. Далее сослался на реалии производства. Ты же ссылаешься на "одна бабка сказал" и рекламную методичку.

Далее ты понял, что сел в лужу и начал врать. Начал утверждать, что я сообщал "одинаковые машины", хотя сообщал "Одинаковые платформы"
источник

AK

Alexey Kuznetsov in pro.cxx
Это все опасно, но работает
источник

PK

Pavel Kazakov in pro.cxx
Если бы плюсы всё ещё транспилировались в си, проблем бы не было.
источник

N

Neargye in pro.cxx
Alex
какие из этого последствия?
из примера снифае не соберется, концепты ок
источник

A

Alex in pro.cxx
почему это не соберётся? Ведь одна из сигнатур невалидна, она не сможет скомпилироваться
источник

VR

Vladyslav Ryuzaki in pro.cxx
Alex
почему это не соберётся? Ведь одна из сигнатур невалидна, она не сможет скомпилироваться
+
источник

Rn

Roman na in pro.cxx
Pavel Kazakov
Ты написал, что "языком в C++  и является си" -- это как? Вот потрудись объяснить, пожалуйста. Без перескоков на методички.
И? Что мне объяснять? Платформой в машине А является машина Б. Очевидно, что имеется ввиду платформа.
источник

AK

Alexey Kuznetsov in pro.cxx
О том и речь, что функционально нового ничего нет. Просто можно выкинуть кучу мусора для того чтобы получить тот же функционал. Конечно это хорошо, никто не спорит. Но сравнивая с тем же мувом например, без мув семантики, просто нельзя было заматчить функцию принимающую только временные объекты, никаких мув конструкторов нельзя было сделать впринципе
источник

PK

Pavel Kazakov in pro.cxx
Roman na
У тебя проблема с методичкой. Ты сел в лужу и начал задним числом её менять, т.е. попросту врать. Давай на примере твоих маня-аналогий. Я сообщил, что база в двух машинах одна. Далее сослался на реалии производства. Ты же ссылаешься на "одна бабка сказал" и рекламную методичку.

Далее ты понял, что сел в лужу и начал врать. Начал утверждать, что я сообщал "одинаковые машины", хотя сообщал "Одинаковые платформы"
Стоп-стоп, шаг назад, какое "врать", "лужа" и "методичка"? Можно не со мной в своей голове говорить, а со мной тут?
источник

VS

Vladimir SHCHerba in pro.cxx
Мне кажется или тут какой-то дикий флуд идёт?
источник

m

magras in pro.cxx
Vladyslav Ryuzaki
Move не zero cost
Да, но он zero-cost _abstraction_. Если есть необходимость перемещать состояние объекта, я не знаю способа сделать это эффективнее чем текущий non-destructive move. Есть (N)RVO, но это немного другое.

Для сравнения если бы компилятор самостоятельно реализовывал destructive move, в общем случае ему пришлось бы в каждый класс добавить по bool'у чтобы знать дергать деструктор или нет. А дальше уже начинаются оптимизации: в unique_ptr можно использовать nullptr для обозначения перемещенного объекта. Если же позволить программисту оптимизировть эту часть через точку кастомизации мы фактически получаем тот самый non-destructive move, который у нас есть сегодня.

Возможно даже более важно, что этот дополнительный bool ломает layout класса.
источник

SS

Sergey Sobolev in pro.cxx
Vladimir SHCHerba
Мне кажется или тут какой-то дикий флуд идёт?
не кажется)
источник

PK

Pavel Kazakov in pro.cxx
Roman na
И? Что мне объяснять? Платформой в машине А является машина Б. Очевидно, что имеется ввиду платформа.
Детали реализации двух разных машин не должны вставать перед глазами. Это вообще волновать не должно. Одна -- кроссовер, и управляется как кроссовер, а вторая седан. Всё.
источник

Rn

Roman na in pro.cxx
Pavel Kazakov
Стоп-стоп, шаг назад, какое "врать", "лужа" и "методичка"? Можно не со мной в своей голове говорить, а со мной тут?
Да я с тобой говорю, просто ты отрицаешь очевидное. Когда кого-то поймали на вранье он конечно же будет громче всех орать "это не я". на что ты рассчитываешь?
источник

Rn

Roman na in pro.cxx
Pavel Kazakov
Детали реализации двух разных машин не должны вставать перед глазами. Это вообще волновать не должно. Одна -- кроссовер, и управляется как кроссовер, а вторая седан. Всё.
Это ничего не значит. В рамках си существует тысячи расширений, языки развиваются. Поэтому язык - это не какой-то отдельный набор фич, а это база
источник

VR

Vladyslav Ryuzaki in pro.cxx
magras
Да, но он zero-cost _abstraction_. Если есть необходимость перемещать состояние объекта, я не знаю способа сделать это эффективнее чем текущий non-destructive move. Есть (N)RVO, но это немного другое.

Для сравнения если бы компилятор самостоятельно реализовывал destructive move, в общем случае ему пришлось бы в каждый класс добавить по bool'у чтобы знать дергать деструктор или нет. А дальше уже начинаются оптимизации: в unique_ptr можно использовать nullptr для обозначения перемещенного объекта. Если же позволить программисту оптимизировть эту часть через точку кастомизации мы фактически получаем тот самый non-destructive move, который у нас есть сегодня.

Возможно даже более важно, что этот дополнительный bool ломает layout класса.
Разве компилятор не понимает по флоу, что объект перемещен?(тут я не знаю, поэтому спрашиваю)
источник

BB

Bohdan Bessonov in pro.cxx
Pavel Kazakov
Детали реализации двух разных машин не должны вставать перед глазами. Это вообще волновать не должно. Одна -- кроссовер, и управляется как кроссовер, а вторая седан. Всё.
Видимо, если в автомобиле есть двигатель и 4 колеса, это одинаковые автомобили, а все остальное - надстройки и расширения
А так - и то, и то автомобиль..
источник

Rn

Roman na in pro.cxx
и вот базой в С++ является си. И концептуально это си.
источник