Size: a a a

2021 January 04

E

Erik in Канада IT
Ві тя
Me: can we have modern C++?
Mom: we have modern C++ at home
Modern C++ at home:
Это ужасно 🤯
источник

SS

Sabbai Sayyor in Канада IT
Erik
Это ужасно 🤯
++
источник

AX

Alexander XaeroX in Канада IT
Denis K. 🇨🇦🚜🇺🇸🚜🇷🇺
в идеальном мире может быть и не должно было. Но один хер никто не юзает вторую форму никогда. Первую то крайне редко юзают
"Никто не юзает" ты имеешь в виду людей? А вот компилятор, инстанцируя шаблон, например, запросто заюзает, да так что никто не заметит. :)
источник

DK

Denis K. 🇨🇦🚜🇺🇸🚜🇷🇺... in Канада IT
Alexander XaeroX
"Никто не юзает" ты имеешь в виду людей? А вот компилятор, инстанцируя шаблон, например, запросто заюзает, да так что никто не заметит. :)
в каком случае? Если у тебя шаблон, который инстанциирует строку, то он скорее всего будет специализирован под каждый тип для оптимизации
источник

DK

Denis K. 🇨🇦🚜🇺🇸🚜🇷🇺... in Канада IT
если ты про форвардинг аргументов, как например в make_shared, то это ничем не отличается от вызова конструктора с точки зрения юзера
источник

DK

Denis K. 🇨🇦🚜🇺🇸🚜🇷🇺... in Канада IT
ну и я бы конечно бил по рукам на ревью за оба вызова.
В первом случае - это чертова константа. Уж если нужно от нее что то отрезать - храни как стринг, делай сабстр.
Во втором случае - делай сабстр.
источник

d

dudehere in Канада IT
кобальт амекс неифига с лобловами не работает((
источник

DK

Denis K. 🇨🇦🚜🇺🇸🚜🇷🇺... in Канада IT
dudehere
кобальт амекс неифига с лобловами не работает((
не работает, все так
источник

AX

Alexander XaeroX in Канада IT
Denis K. 🇨🇦🚜🇺🇸🚜🇷🇺
в каком случае? Если у тебя шаблон, который инстанциирует строку, то он скорее всего будет специализирован под каждый тип для оптимизации
Например, ты пишешь шаблон, один из параметров которого строковой, и ты хочешь поддерживать как С-строки, так и плюсовые. Для этого внутри шаблонной функции ты обворачиваешь аргумент в string. Всё хорошо, пока кому-то не приходит идея отбросить первый символ строки, добавив в конструктор единичку...
источник

d

dudehere in Канада IT
Denis K. 🇨🇦🚜🇺🇸🚜🇷🇺
не работает, все так
а там типо хак через интерак, это как можно?
источник

DK

Denis K. 🇨🇦🚜🇺🇸🚜🇷🇺... in Канада IT
dudehere
а там типо хак через интерак, это как можно?
чо? какой хак?
источник

DK

Denis K. 🇨🇦🚜🇺🇸🚜🇷🇺... in Канада IT
Alexander XaeroX
Например, ты пишешь шаблон, один из параметров которого строковой, и ты хочешь поддерживать как С-строки, так и плюсовые. Для этого внутри шаблонной функции ты обворачиваешь аргумент в string. Всё хорошо, пока кому-то не приходит идея отбросить первый символ строки, добавив в конструктор единичку...
такое пишется через стринг_вью в современных плюсах
источник

DK

Denis K. 🇨🇦🚜🇺🇸🚜🇷🇺... in Канада IT
ну и да, я бы не писал это шаблоном, а писал две перегрузки
источник

DK

Denis K. 🇨🇦🚜🇺🇸🚜🇷🇺... in Канада IT
(либо вообще принимал бы std::string как аргумент и тогда бы работало само все)
источник

AX

Alexander XaeroX in Канада IT
Denis K. 🇨🇦🚜🇺🇸🚜🇷🇺
(либо вообще принимал бы std::string как аргумент и тогда бы работало само все)
тогда мы можем получить лишнее конструирование
источник

AX

Alexander XaeroX in Канада IT
Denis K. 🇨🇦🚜🇺🇸🚜🇷🇺
ну и да, я бы не писал это шаблоном, а писал две перегрузки
у меня в голове сразу же рисуется проект типа luabind, там перегрузками не отделаешься. :)
источник

DK

Denis K. 🇨🇦🚜🇺🇸🚜🇷🇺... in Канада IT
Alexander XaeroX
тогда мы можем получить лишнее конструирование
если не нужно лишнее конструирование - делаешь дополнительную перегрузку. Иначе - ты сам себе стреляешь в ногу
источник

DK

Denis K. 🇨🇦🚜🇺🇸🚜🇷🇺... in Канада IT
Alexander XaeroX
у меня в голове сразу же рисуется проект типа luabind, там перегрузками не отделаешься. :)
юзай стринг_вью тогда
источник

AX

Alexander XaeroX in Канада IT
Denis K. 🇨🇦🚜🇺🇸🚜🇷🇺
если не нужно лишнее конструирование - делаешь дополнительную перегрузку. Иначе - ты сам себе стреляешь в ногу
да, но смысл в том, что никто в ногу не стреляет, пока не используется доп. аргумент конструктора, который по-разному трактуется для разных типов, что неожиданно, разве нет?
источник

DK

Denis K. 🇨🇦🚜🇺🇸🚜🇷🇺... in Канада IT
Alexander XaeroX
да, но смысл в том, что никто в ногу не стреляет, пока не используется доп. аргумент конструктора, который по-разному трактуется для разных типов, что неожиданно, разве нет?
хз, плюсы это как спарта. Либо ты сильнейший, либо умираешь
источник