
Alex Фэils?︙
25.08.2018
21:39:17
30 августа с 19:00 по 21:00 планируется небольшая встреча участников C++ в формате "Drink-Up". В рамках встречи планируются обсуждения языка C++, холивары и, конечно же, принятие на грудь немного пива во славу ISO/IEC 14889 и WG21.
Встреча будет в пабе "Guns & Bears", располагающемся по адресу: Москва, ул. Новослободская, д. 46. Мы будем на первом этаже.
Подробности – по ссылке: https://www.meetup.com/ru-RU/Moscow-C-User-Groups/events/254005466/
#cpp #CppUserGroup #meetup #drinkup #Москва

Вячеслав
25.08.2018
21:51:00
почему я могу иметь доступ к функции из namespace’а без указания через имя namespace’а? при этом я не использую using namespace и другой такой функции нет

Alex Фэils?︙
25.08.2018
21:52:03
мб есть using ns::fn, где ns - твой неймспейс, а fn - твоя функция?

Вячеслав
25.08.2018
21:52:14
нет

Google

Alex Фэils?︙
25.08.2018
21:52:35
а кинь фрагмент кода на какой-н. pastebin

ofee
25.08.2018
21:53:31

Вячеслав
25.08.2018
21:55:58
https://pastebin.com/zRbDi9c8

Egor
25.08.2018
22:00:48
с неймспейсами хитрые правила разрешения имён, это где-то напрямую в стандарте лучше смотреть

Побитый
25.08.2018
22:14:58
А, код уже кинули. Щас посмотрим)

Вячеслав
25.08.2018
22:15:52

Anton
25.08.2018
22:16:18
Пример без ADL как раз, это точно работает?

Вячеслав
25.08.2018
22:17:11
в параметрах функции так же используются типы из того же namespace

Anton
25.08.2018
22:17:32
А кто нибудь может пояснить зачем вообще добавили ADL в язык? Сократить вызов функций?

Alex Фэils?︙
25.08.2018
22:18:19
да; например std::cout так тырит оператор «

Вячеслав
25.08.2018
22:18:59
спасибо за наводку…не знал про ADL

Google

Anton
25.08.2018
22:20:19

Alex Фэils?︙
25.08.2018
22:21:12

Господин
25.08.2018
22:21:51
Всё верно?
Есть объекты в памяти. Ссылка это адрес объекта. Указатель это абсрактный объект, модель(так-то это просто число, то же самое). Он указывает на объект. Ссылка владеет объектом, а указатель ссылается на объект в памяти. Есть владение объектом и есть ссылка(указатель) на объект.
Указатель это и есть адрес. Как, по сути, и ссылка. Все дело в семантике. Один якобы ссылается на объект, а другой им владеет.

Побитый
25.08.2018
22:22:17
Ссылка это не указатель. Это просто альтернативное имя
Синоним
Как typedef для типов

Anton
25.08.2018
22:23:28

Alex Фэils?︙
25.08.2018
22:24:43

Побитый
25.08.2018
22:24:47

Anton
25.08.2018
22:24:48

Побитый
25.08.2018
22:25:09

Anton
25.08.2018
22:25:42

Господин
25.08.2018
22:26:39
Проверяю источник. как понимаю, всё неверно.

Alex Фэils?︙
25.08.2018
22:27:22
тащемта вы оба правы про ссылки. ссылка - это и доп. имя для хероты, и херня, концептуально похожая на константный указатель, но с автоматическим разыменованием в качестве сахарка

Побитый
25.08.2018
22:30:04
Ссылка может и похожа на указатель. Только указатель это объект, который занимает память, а ссылка это не объект, памяти не занимает, нельзя создать массив ссылок по этой же причине.

Alex Фэils?︙
25.08.2018
22:30:26
ну, ссылка может занимать память, иногда :D

Anton
25.08.2018
22:31:14

Побитый
25.08.2018
22:31:16

Google

Alex Фэils?︙
25.08.2018
22:32:04
ок, хорошо :) пришли к консенсусу

Господин
25.08.2018
22:34:01
окей,указатель имеет тот же тип что и объект, на адресс которого указывает?

Max
25.08.2018
22:51:28

Alex Фэils?︙
25.08.2018
22:51:43
он со звездочкой еще в придачу как минимум
чот у нас тут филиал супапро ночью, модеры будут ругаться(
В общем, указателей на что-то бывает по меньшей мере, 4 вида (если одного уровня):
просто указатель (int *p);
указатель на константу (const int *p)
неизменяемый указатель (int * const p)
неизменяемый указатель на константу (const int * const p).
Также вместо (или вместе с) конст можно миксовать volatile
Вот пример: https://wandbox.org/permlink/5QS7HupxKCQRJp3D
ща примерчик кину еще (и проверю, не ошибся ли я сам ночью)

Господин
25.08.2018
23:02:18
а это как интерпритировать?
const int* const const p
неизменяемый указатель на неизменяемую константу?

Alex Фэils?︙
25.08.2018
23:02:25
да

Max
25.08.2018
23:02:36
https://habr.com/post/100104/

Alex Фэils?︙
25.08.2018
23:02:36
константа сама по себе считается неизменяемой

Господин
25.08.2018
23:02:42
да я рофлю)

Alex Фэils?︙
25.08.2018
23:02:55

Max
25.08.2018
23:03:11
Как раз для субботнего вечера чтиво )

Господин
25.08.2018
23:03:20
const int* const p = new const int ;
а это как?

Max
25.08.2018
23:06:25
Это вообще законно?

Alex Фэils?︙
25.08.2018
23:07:10
вбейте в конпелятор, проверьте

Господин
26.08.2018
00:18:44
читаю конпелятор как коноплятор

Google

ofee
26.08.2018
00:49:51

Egor
26.08.2018
00:50:12
это же указатель на данные
он занимает свои 4,8,... байт

Ilia
26.08.2018
02:09:43

Alex
26.08.2018
09:38:20
О, я перепутал чаты

ofee
26.08.2018
09:39:14
Тебе в supapro надо на самом деле...
Спасибо, буду и там. Я всё же ещё немного не определился насколько хорошо знаю C++, местами довольно хорошо, а местами пробелы в знаниях из-за недостатка практики или из-за того, что над некоторымии вещами просто не задумываешься, как сейчас

Aidar
26.08.2018
09:54:56

Max
26.08.2018
10:26:22
А кто-то может объяснить, почему ссылки увеличивают размер структуры?
"References are not objects; they do not necessarily occupy storage, although the compiler may allocate storage if it is necessary to implement the desired semantics (e.g. a non-static data member of reference type usually increases the size of the class by the amount necessary to store a memory address)." (c) cppref

Matwey
26.08.2018
10:28:14
Но не всегда, естественно

Friedrich
26.08.2018
10:28:38
А когда они не реализуются как указатели?

Matwey
26.08.2018
10:28:58
Когда коноплятор может заоптимизировать
int x = 3;
int& y = x;
y = 4;

ofee
26.08.2018
10:29:21

Friedrich
26.08.2018
10:30:32