170 похожих чатов

*Beg это значение элемента, на который указывает итератор, верно? Но

все же Decltype(*beg) почему-то возвращает ссылку

21 ответов

9 просмотров

Потому что оператор разименования возвращает ссылку, если тебе нужно значение используй std::remove_reference, возможно, даже std::remove_cv_ref

Ilya- Автор вопроса
disba1ancer
Потому что оператор разименования возвращает ссылк...

Во! этот вопрос как раз. Почему он на значение возвращает ссылку?

Ilya
Во! этот вопрос как раз. Почему он на значение воз...

Потому что так в итераторе объявлено, нет?

Ilya- Автор вопроса
disba1ancer
Потому что так в итераторе объявлено, нет?

тогда что он вернет если написать decltype(beg)?

Ilya
Во! этот вопрос как раз. Почему он на значение воз...

Ещё как вариант можешь убрать тип возврата и оставить только auto, возможно, даст нужный эффект, но это не точно

Ilya- Автор вопроса
disba1ancer
Ещё как вариант можешь убрать тип возврата и остав...

в книжке какая-то странная конструкция была, что-то типа ??? вместо auto, я прифигел

Ilya
тогда что он вернет если написать decltype(beg)?

Вернёт сам итератор, он же по значению принимается

Ilya- Автор вопроса
disba1ancer
Вернёт сам итератор, он же по значению принимается

то есть decltype(*beg) вернет ссылку, а decltype(beg) вернет итератор?

Ilya- Автор вопроса
disba1ancer
Да

а это разве в данном контексте не одно и то же? Если ф-я возвращает ссылку - она возвращает указатель на память, также как и итератор

Ilya
то есть decltype(*beg) вернет ссылку, а decltype(b...

Дело в том что конструкция *beg возвращает не значение, а ссылку на значение, это посволяет меньше копировать, да и от контейнеров часто ожидается, что модификация объекта полученного через итератор, модифицирует объект внутри контейнера

Ilya- Автор вопроса
disba1ancer
Дело в том что конструкция *beg возвращает не знач...

то есть rvalue reference? Если она возвращает ссылку на значение, то после завершения работы ф-ии, ссылка сотрется и результат непредсказуем, разве нет?

Ilya
а это разве в данном контексте не одно и то же? Ес...

Это немного разные сущности с разным поведением, хоть и могут быть похожи на низком уровне

Ilya- Автор вопроса
disba1ancer
Это немного разные сущности с разным поведением, х...

имеется ввиду если ф-я возвращает указатель или ссылку, какая разница то?

Ilya
то есть rvalue reference? Если она возвращает ссыл...

Итераторы возвращают lvalue reference, я же говорил, что объект полученный через итератор должен быть объектом из контейнера, а не его копией

Ilya- Автор вопроса
Ilya
имеется ввиду если ф-я возвращает указатель или сс...

Указатели надо ещё разыменовать, они могут быть нулевыми, и может ещё чего есть...

Ilya- Автор вопроса
disba1ancer
Указатели надо ещё разыменовать, они могут быть ну...

но при этом ты ведь не присвоишь результат работы функции, которая возвращает ссылку НЕ указателю

Ilya
но при этом ты ведь не присвоишь результат работы ...

Результат работы функции которая возвращает ссылку, можно использовать там где допустимо использовать сам объект

Ilya
но при этом ты ведь не присвоишь результат работы ...

Посмотри iterator_traits. Это то что тебе нужно

Похожие вопросы

Обсуждают сегодня

я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
100
в сях есть множество как в питоне? для удаление дубликатов
Linus
25
читать файл максимально быстро? странный вопрос))
zamtmn
53
How to create an OS in C? what to study?
Linus
18
тоесть, указав return eax, сгенерируется никому ненужная инструкция mov eax,eax ?
Aiwan \ (•◡•) / _bot
24
Всем доброго вечера! Хочу поделиться своим злоключением с человеком, который, как оказалось сюда тоже скидывал свое резюме. Жаль, что я вашу группу не нашел раньше… человек ки...
Роман Ахмедзянов
4
а как бы вылезти из ИО, что то типа IO -> Ether или в какую сторону смотреть ? что то туплю
Fedor
9
Компания Elif ищет менеджера проектов, который будет заниматься поиском и ведением новых проектов. Прежде чем приступить к работе, вам нужно пройти наш недельный курс, где вы ...
Elif
5
Привет, кто может сделать юзербота с апи? Задачи: - создавать группы - создавать каналы - задавать для созданных каналов аватарку или эмоджи, имя группы - добавлять в группы...
Lencore
11
а зачем этот вопрос для удаления из чата?
Mёdkinson Medvezhkin
63
Карта сайта