
Ilia
17.07.2018
15:19:48
В конст -- можно. В не конст-- нельзя.

Azoyan
17.07.2018
15:23:21

Ilia
17.07.2018
15:23:54
Ну, UB выдадут в кассе. Касса знаешь где?

Azoyan
17.07.2018
15:24:04
Где

Google

Ilia
17.07.2018
15:24:31
Тебе деньги на работе платят? И ты не знаешь, где касса?

Azoyan
17.07.2018
15:24:44
Ммм, не понял

Ilia
17.07.2018
15:25:18
Ну, в след. раз тебе вместо денег в кассе выдадут UB...

Azoyan
17.07.2018
15:25:32
Я понимаю что нельзя, мне нужно знать что происходит
@MasterZiv ты не в контексте

Ilia
17.07.2018
15:26:13
Всё, что угодно, может происходить....
Отформатируют винчестер, снимут с твоего счёта в банке все деньги...

Mikhail Voronov
17.07.2018
15:27:12
Они разные, но почему?
https://ideone.com/aeIasD
это во многом эквивалентно вот этому коду, в котором видно, что в bar приходит уже другой объект

Azoyan
17.07.2018
15:27:20

Alexander
17.07.2018
15:30:18

Ilia
17.07.2018
15:30:23

Google

Azoyan
17.07.2018
15:30:47

Ilia
17.07.2018
15:30:53

Alexander
17.07.2018
15:31:05
тебя интересует, почему создаётся в одном месте и не создаётся во втором?

Azoyan
17.07.2018
15:31:39
Ну да

Ilia
17.07.2018
15:32:19
Ну да
Потому что у тебя функция принимает ссылку на double, чтобы вызвать её с float, это значение надо преобразовать.
Поскольку у тебя ссылка на double константная, компилятор может сделать temporary obj и вызвать твою функцию

Azoyan
17.07.2018
15:32:32
Но ссылка же 8 байт

Ilia
17.07.2018
15:33:51

Azoyan
17.07.2018
15:34:13
Да, поэтому я и написал const
Ну как бы ссылка одинаковая, что на дабл что на флот, это же ссылка

Alexander
17.07.2018
15:35:12
Ну да
потому что в случае с doubke тебе не надо делать новый обьект и ты можешь на него и передать ссылку (даже не константную).
Если float, то для получения ссылки на double надо создать временный обьект, и потом уже на него дать ссылку

Azoyan
17.07.2018
15:35:49
Давайте перейдем в годболт

Alexander
17.07.2018
15:36:01
давайте

Аттрибутивно-ассоциативный ряд
17.07.2018
15:36:07
а в годболте оптимизации и инлайн
там вообще вызова bar нет

Azoyan
17.07.2018
15:36:22
Я на O0 всё смотрю

Alexander
17.07.2018
15:36:46
я не понимаю, что непонятного в моём обьяснении и @MasterZiv

Azoyan
17.07.2018
15:38:28
godbolt.org/g/EFQ4K9

Google

Ilia
17.07.2018
15:38:52
Да, поэтому я и написал const
#include <iostream>
using namespace std;
void foo(double& d) {
d *= 0.75;
}
void bar(const float& d) {
const_cast<float&>(d) *= 3;
}
int main() {
float f = 0.56;
bar(f);
cout << f;
return 0;
}
Так будет переменная меняться.
#include <iostream>
using namespace std;
void foo(double& d) {
d *= 0.75;
}
void bar(const double& d) {
const_cast<double&>(d) *= 3;
}
int main() {
float f = 0.56;
bar(f);
cout << f;
return 0;
}
А так не скомпилируется.
А как ты хочешь -- вообще UB, твоя переменная не будет меняться

Alexey
17.07.2018
15:39:03
а c++filt не может деманглить typeid(Type).name()?

Ilia
17.07.2018
15:39:56

Azoyan
17.07.2018
15:40:20
Погодите, код скомпилировался откуда на О0 компилятор создаёт временный объект в одном случае, а в другом нет
Ща

Alexander
17.07.2018
15:40:57
cvtss2sd xmm0, xmm0
movsd qword ptr [rbp - 24], xmm0

Ilia
17.07.2018
15:41:25

Серж
17.07.2018
15:41:37
он вас зотроллировал)))

Azoyan
17.07.2018
15:41:37
Да, не причем

Alexander
17.07.2018
15:41:43

Azoyan
17.07.2018
15:42:07
Я не троллирую

Ilia
17.07.2018
15:42:09
Временный объект он в любом случае должен создать, и с оптимизацией, и без.

Azoyan
17.07.2018
15:42:13
Я все контролирую

Ilia
17.07.2018
15:42:35
Кстати, прикольно.

Серж
17.07.2018
15:42:40
ты укозатели знаешь, бротан?

Ilia
17.07.2018
15:42:53
Тролль -- КорТролль ...

Серж
17.07.2018
15:42:55
ссылки - синтаксический сахар над укозателями

Ilia
17.07.2018
15:43:13

Azoyan
17.07.2018
15:43:18
Молодец, но ты не в тему

Google

Серж
17.07.2018
15:43:20
ты берешь адрес флоата, а внутри функции разыменовываешь дабол, смекаешь?

Ilia
17.07.2018
15:43:58
Я не троллирую
Ты понимаешь, что float и double имеют и разные размеры в памяти, и разный как бы битовый образ значения?

Roman
17.07.2018
15:53:33
Где можно посмотреть вопросы для подготовки к собеседованию по C++?

Ilia
17.07.2018
15:54:09
В интернете, нет?

Roman
17.07.2018
15:54:38
Понятно что в интернете, может есть какой-то каноничный сайт где собраны самые популярные вопросы. Чтобы себя проверить

Серж
17.07.2018
15:58:51
http://www.quizful.net/interview/cpp

Alexander
17.07.2018
15:59:40

Mikhail Voronov
17.07.2018
16:05:57
Молодец, но ты не в тему
ну тут вроде практически все комментарии в тему. Я хз, как ещё можно объяснить про создание временных объектов)

Azoyan
17.07.2018
16:09:05
Я всё понял

Alexander
17.07.2018
16:09:24

Серж
17.07.2018
16:09:43
да был бы он даже не временный, все равно то что он хочет бы не происходило и 35 не присваивалось

Ilia
17.07.2018
16:10:15
Если float cсылку сделать, будет присваиваться...

Серж
17.07.2018
16:11:00
да, спасибо, вот и отличие указателя от ссылки, проверять я это конечно же не буду

Ilia
17.07.2018
16:13:00
Тут разница указателя от ссылки только в том, что адресс временного объекта для вызова фукнции с параметром в виде константного указателя компилятор сам взять не сможет, 100%. Надо его ручками разименовывать.
А в ссылку временный объект подставить он может.

Серж
17.07.2018
16:28:11
разобрался, спасибо

Alexander
17.07.2018
16:30:42
Есть у кого-нибудь архив или ссылка на большой архив валидных ini файлов?

Aleksandr
17.07.2018
17:39:10

Alexander
17.07.2018
17:39:41
но такой наколенный тоже сойдёт

Kotbegemot
17.07.2018
18:15:30
А как добавить в conan библиотеку? @zamazan4ik

Google

Alexander
17.07.2018
18:15:38

Kotbegemot
17.07.2018
18:15:52
Обновил

Alexander
17.07.2018
18:16:04
куда именно в conan? conan-center или свою репу?
или вообще на свой сервер?

Kotbegemot
17.07.2018
18:17:04
А в чем разница conan и conan-center ?

Alexander
17.07.2018
18:17:31

Kotbegemot
17.07.2018
18:18:53
@zamazan4ik не путай меня так это одно и тоже. Как добавить либу в conan-center ?

Alexander
17.07.2018
18:20:28

Kotbegemot
17.07.2018
18:24:40
Окей не прав @zamazan4ik . А есть пример ? Или ссылка на правила требование и вот это все ?

Alexander
17.07.2018
18:25:44
ссылки про требования для либы не уверен - мне такое на глаза не попадалось. спроси в #conan в cpplang.slack.com . Ну и посмотри на текущие рецепты в conan-center, станет яснее

Kotbegemot
17.07.2018
18:26:02
Понел

Никита
17.07.2018
18:28:36

Alexander
17.07.2018
18:29:36

Побитый
17.07.2018
19:15:45