Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Простой вопрос
|
|||
|---|---|---|---|
|
#18+
Пардон, Котовасия... ОК, сразу понятно, что также указатели ссылки полезны в общем случае, когда нужен доступ к объекту, например: ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2018, 19:56 |
|
||
|
Простой вопрос
|
|||
|---|---|---|---|
|
#18+
Насколько я помню: std::string s - вызывается конструктор копии и создается новый объект. std::string &s - не вызывается конструктор копии и новый объект не создается, т.к. по сути, как писали выше, это неизменяемый указатель. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2018, 20:00 |
|
||
|
Простой вопрос
|
|||
|---|---|---|---|
|
#18+
cronix111std::string s - вызывается конструктор копии и создается новый объект. Это важный момент, кстати. Для понимания лучше написать класс, который в конструкторе и деструкторе выкидывает сообщение об этом ("ctor"/"dtor"), например, в поток, а потом объект этого класса попробовать попередавать в разных вариантах в качестве параметра в функции. Потом добавить наследование, виртуализацию, попередавать объекты дочерних классов и так далее. И ещё полезно посмотреть под дебагом ассемблерный код. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2018, 05:23 |
|
||
|
Простой вопрос
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovКотовасияНу, в каком случае имеет смысл использовать b вместо использования a? Я, например, использую тупо для сокращения кода: Код: sql 1. 2. 3. Да, для сокращения кода самое очевидное использование. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2018, 09:43 |
|
||
|
Простой вопрос
|
|||
|---|---|---|---|
|
#18+
semen.s.semenМожет быть как rvalue ?Нет, именно как lvalue! lvalue и rvalue, это не синонимы для левой и правой частей выражения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2018, 09:44 |
|
||
|
Простой вопрос
|
|||
|---|---|---|---|
|
#18+
Dima TДа ладно?... Код: plaintext 1. Основное различие в том, что ссылка должна быть обязательно проинициализирована выражением, расценивающимся как lvalue. Попробуй написать свой пример без использования указателей [/quot]Зачем? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2018, 09:45 |
|
||
|
Простой вопрос
|
|||
|---|---|---|---|
|
#18+
КотовасияMasterZiv, расскажи про ссылки, пожалуйста. Не в контексте "ссылка как описатель аргумента функции", а в контексте "ссылка как альтернативное имя объекта", например: Код: plaintext 1. 2. Если объект b - всего лишь синоним объекта a, то для чего он этот синоним вообще нужен? Ну, в каком случае имеет смысл использовать b вместо использования a? Ну, общефилософски я бы не пытался рассуждать в сторону анализа. Я бы рассуждал синтетически, у вас есть такая возмжоность в языке, вы можете применять её там, где вам удобно. В любой момент вы можете присвоить объекту ещё одно имя. и даже несколько. Может это использоваться например и в создании аналогов С-шных макросов, которые реализуют новые языковые конструкции, например, WITH() какой нибудь, TRY...FINALLY и так далее. Сотни применений разных. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2018, 09:48 |
|
||
|
Простой вопрос
|
|||
|---|---|---|---|
|
#18+
semen.s.semenКотовасияпропущено... Да. Сейчас сын в ВУЗе изучает, я сбоку пристроился... :) А я вот спрашиваю себя - ну и нахера я стока времени на Java потратил ) Прекрасно слышать слова твои ! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2018, 09:49 |
|
||
|
Простой вопрос
|
|||
|---|---|---|---|
|
#18+
semen.s.semenКотовасия, Плюсы прекрасны ) Это ты еще до ссылок на rvalue и шаблонов перемещения не дошел... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2018, 09:49 |
|
||
|
Простой вопрос
|
|||
|---|---|---|---|
|
#18+
semen.s.semenКотовасия, Плюсы прекрасны )На, прослезись от счастья! :) Декларатор ссылки Rvalue (&&); конструктор перемещения; точная пересылка; RVO/NRVO и прочее, и прочее... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2018, 09:57 |
|
||
|
Простой вопрос
|
|||
|---|---|---|---|
|
#18+
semen.s.semenА я вот спрашиваю себя - ну и нахера я стока времени на Java потратил ) великий английский писатель Френцх ПровербA man who knows two languages is worth two men.к программистам это относится как никогда кстати. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2018, 10:05 |
|
||
|
Простой вопрос
|
|||
|---|---|---|---|
|
#18+
rdb_devНа, прослезись от счастья! :)и это он ещё шаблоны не видел ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2018, 10:06 |
|
||
|
Простой вопрос
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov Код: sql 1. 2. 3. А я "иногда" даже так делаю, чтобы в объемной реализации поменьше символов печатать и чтобы код был более читаемым: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2018, 10:14 |
|
||
|
Простой вопрос
|
|||
|---|---|---|---|
|
#18+
CEMbrdb_devНа, прослезись от счастья! :)и это он ещё шаблоны не виделТам и увидит! И std::move и std::forward и многое другое. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2018, 10:15 |
|
||
|
Простой вопрос
|
|||
|---|---|---|---|
|
#18+
rdb_devsemen.s.semenМожет быть как rvalue ?Нет, именно как lvalue! lvalue и rvalue, это не синонимы для левой и правой частей выражения. Расскажите, пожалуйста что Вы имеете ввиду По моей информации Любое выражение в C++ относится к категории lvalue(левостороннее выражение) либо rvalue (правостороннее выражение). lvalue выражение это объект, который имеет имя. Все переменные являются lvalue. rvalue — это временный объект, которые не существует за пределами выражения, которое его создало. В следующем примере a является lvalue, а результат выражения 2 + 2 — rvalue. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2018, 13:45 |
|
||
|
Простой вопрос
|
|||
|---|---|---|---|
|
#18+
semen.s.semen, вот тут, как раз, есть одна особенность. Обычно, ссылка инициализируется, как ссылка на lvalue, но не всегда. Например, при передаче значения из перегруженного для класса оператора "+", может быть возвращена ссылка на временный результат - rvalue (временный экземпляр класса) и этот rvalue не обязательно должен быть const, так как в современном стандарте C++ существует такое понятие, как "конструктор пересылки" (не путать с конструктором копии). Задача конструктора пересылки - оптимизация передачи результата в lvalue. Простой пример - допустим, у тебя есть некий класс, в котором одним из членов является указатель на какой-то массив данных и чтобы не копировать весь этот массив данных из временного объекта rvalue, конструктор пересылки может скопировать к себе указатель не создавая копию этого массива и "обнулить" указатель во временном объекте, чтобы деструктор временного объекта не освободил память с массивом данных. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2018, 14:06 |
|
||
|
Простой вопрос
|
|||
|---|---|---|---|
|
#18+
rdb_devsemen.s.semen, вот тут, как раз, есть одна особенность. Обычно, ссылка инициализируется, как ссылка на lvalue, но не всегда. Например, при передаче значения из перегруженного для класса оператора "+", может быть возвращена ссылка на временный результат - rvalue (временный экземпляр класса) и этот rvalue не обязательно должен быть const, так как в современном стандарте C++ существует такое понятие, как "конструктор пересылки" (не путать с конструктором копии). Задача конструктора пересылки - оптимизация передачи результата в lvalue. Простой пример - допустим, у тебя есть некий класс, в котором одним из членов является указатель на какой-то массив данных и чтобы не копировать весь этот массив данных из временного объекта rvalue, конструктор пересылки может скопировать к себе указатель не создавая копию этого массива и "обнулить" указатель во временном объекте, чтобы деструктор временного объекта не освободил память с массивом данных. Ничего не понял Если не сложно - дайте Ваше строгое определение того что такое rvalue и lvalue Также буду благодарен за описание того как работает std::move and std::forward ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2018, 18:56 |
|
||
|
Простой вопрос
|
|||
|---|---|---|---|
|
#18+
CEMbrdb_devНа, прослезись от счастья! :)и это он ещё шаблоны не видел Видел ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2018, 18:59 |
|
||
|
Простой вопрос
|
|||
|---|---|---|---|
|
#18+
semen.s.semenCEMbпропущено... и это он ещё шаблоны не видел Видел boost посмотри ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2018, 20:10 |
|
||
|
Простой вопрос
|
|||
|---|---|---|---|
|
#18+
Dima Tsemen.s.semenпропущено... Видел boost посмотри И буст видел ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2018, 20:28 |
|
||
|
Простой вопрос
|
|||
|---|---|---|---|
|
#18+
semen.s.semenИ буст видел Поздравляю, я видел и больше видеть не хочу. Изучать портянки на 1000+ строк с сообщением ошибки компиляции из-за одной неверной буковки в коде - не мое. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2018, 20:33 |
|
||
|
Простой вопрос
|
|||
|---|---|---|---|
|
#18+
semen.s.semenТакже буду благодарен за описание того как работает std::move and std::forward Отличная книга в т.ч. про это https://www.ozon.ru/context/detail/id/34747131/ Букав немного, советую найти и почитать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2018, 20:48 |
|
||
|
Простой вопрос
|
|||
|---|---|---|---|
|
#18+
Dima T...boost посмотри Имхо, бустом просто страшилка. Народ на ЛОРе, когда в друг дружку какашки кидает. Новичков опять же пугают. Реально возможно никто не использует. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2018, 21:56 |
|
||
|
Простой вопрос
|
|||
|---|---|---|---|
|
#18+
semen.s.semenЕсли не сложно - дайте Ваше строгое определение того что такое rvalue и lvalue Также буду благодарен за описание того как работает std::move and std::forwardШо, опять? :) Держи: 21344431 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.04.2018, 01:00 |
|
||
|
Простой вопрос
|
|||
|---|---|---|---|
|
#18+
КотовасияРеально возможно никто не использует. :)я использую, мало, но рад. Радует то, что можно взять только нужный кусок от буста, не надо тащить всё. Использовал несколько раз для парсинга xml-ек. И для чего-то ещё, уже не помню. Хотел недавно взять для работы с графами, но он не подошёл по религиозным причинам Кроме того, в бусте вроде как давно уже сделано то, что потом стало появляться в 11/14/17. В общем, если чего-то не хватает в стандарте, можно посмотреть в бусте. rdb_devДержии вот это ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.04.2018, 05:22 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=39631952&tid=2017884]: |
0ms |
get settings: |
8ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
68ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
47ms |
get tp. blocked users: |
1ms |
| others: | 12ms |
| total: | 165ms |

| 0 / 0 |
