Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности

Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
14.10.2017, 13:00
|
|||
|---|---|---|---|
|
|||
Корректно возвращать указатель на локальный объект функции? |
|||
|
#18+
Написал такую полезную функцию: Код: plaintext 1. 2. 3. 4. Меня беспокоит, что constData() возвращает указатель, на ЛОКАЛЬНЫЙ массив, созданный функцией toUtf8(). Ведь он удалится при выходе из функции и не факт, что этот код всегда будет работать верно. Правильно мыслю? Если так писать неверно, то передавать строку приемник в качестве второго параметра? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
14.10.2017, 13:20
|
|||
|---|---|---|---|
|
|||
Корректно возвращать указатель на локальный объект функции? |
|||
|
#18+
AlekseySQL Правильно мыслю? Неправильно. Возврат идёт по значению, а не указателю или ссылке. Данные будут скопированы в свежевыделенную память. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
14.10.2017, 13:22
|
|||
|---|---|---|---|
|
|||
Корректно возвращать указатель на локальный объект функции? |
|||
|
#18+
Спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
14.10.2017, 15:39
|
|||
|---|---|---|---|
Корректно возвращать указатель на локальный объект функции? |
|||
|
#18+
Вообще-то в QString есть встроенная функция преоьразования В std::string ... AlekseySQLНаписал такую полезную функцию: Код: plaintext 1. 2. 3. 4. Меня беспокоит, что constData() возвращает указатель, на ЛОКАЛЬНЫЙ массив, созданный функцией toUtf8(). Ведь он удалится при выходе из функции и не факт, что этот код всегда будет работать верно. Правильно мыслю? ? Неправильно. Массив то локальный, но и из него должна ДО выхода из функции Сформироваться выходная строка string, и платно вернуться из функции. Поэтому в этом коде все ок в этом смысле. А вот как ты собираешься хранить utf8 в std:: string, не понятно. Оно конечно можно, но ... [src c++] Если так писать неверно, то передавать строку приемник в качестве второго параметра?[/quot] Это как раз был бы вверх идиотизма ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
14.10.2017, 16:09
|
|||
|---|---|---|---|
|
|||
Корректно возвращать указатель на локальный объект функции? |
|||
|
#18+
AlekseySQLНаписал такую полезную функцию: Код: plaintext 1. 2. 3. 4. Это полностью валидный код - возвращаемое значение создается до удаления всех временных переменных. Это не оптимальный код правда, но это смотря насколько часто такая функция вызывается. AlekseySQLпередавать строку приемник в качестве второго параметра? Не надо. Возврат std::string в большинстве случаев оптимизируется так что становится равным по эффективности передаче ссылки на результат в аргументах. А в C++11 и выше оптимизация происходит всегда. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
16.10.2017, 12:39
|
|||
|---|---|---|---|
|
|||
Корректно возвращать указатель на локальный объект функции? |
|||
|
#18+
MasterZiv , Anatoly Moskovsky - спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
28.10.2017, 04:53
|
|||
|---|---|---|---|
|
|||
Корректно возвращать указатель на локальный объект функции? |
|||
|
#18+
MasterZivА вот как ты собираешься хранить utf8 в std:: string, не понятно.А в чём проблема? MasterZivЭто как раз был бы вверх идиотизмаstd::getline смотрит с недоумением. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
28.10.2017, 04:54
|
|||
|---|---|---|---|
|
|||
Корректно возвращать указатель на локальный объект функции? |
|||
|
#18+
Anatoly MoskovskyА в C++11 и выше оптимизация происходит всегда.Может в C++17? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
28.10.2017, 13:24
|
|||
|---|---|---|---|
Корректно возвращать указатель на локальный объект функции? |
|||
|
#18+
Anatoly MoskovskyВозврат std::string в большинстве случаев оптимизируется так что становится равным по эффективности передаче ссылки на результат в аргументах. А в C++11 и выше оптимизация происходит всегда. Всегда? Можно ссылку на параграф стандарта С++ и где было описано "всегда". И как "всегда", кстати? Я хотел бы получить ответ, Анатолий. Если Вас не затруднит, я не ёрничаю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
28.10.2017, 18:46
|
|||
|---|---|---|---|
|
|||
Корректно возвращать указатель на локальный объект функции? |
|||
|
#18+
Dimitry SibiryakovВозврат идёт по значению, а не указателюПопридираюсь: возврата по указателю не существует, есть возврат по значению для значения указателя. Так что есть только возвраты/передачи по значению и ссылке ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
28.10.2017, 20:53
|
|||
|---|---|---|---|
|
|||
Корректно возвращать указатель на локальный объект функции? |
|||
|
#18+
ПриплюснутыйТак что есть только возвраты/передачи по значению и ссылке Да, но ссылка это и есть указатель. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
28.10.2017, 20:58
|
|||
|---|---|---|---|
|
|||
Корректно возвращать указатель на локальный объект функции? |
|||
|
#18+
Dimitry SibiryakovПриплюснутыйТак что есть только возвраты/передачи по значению и ссылке Да, но ссылка это и есть указатель. Цитатку из стандарта, плес. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
28.10.2017, 21:33
|
|||
|---|---|---|---|
|
|||
Корректно возвращать указатель на локальный объект функции? |
|||
|
#18+
ПриплюснутыйЦитатку из стандарта Без цитатки сложно опознать синтаксический сахар?.. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
28.10.2017, 21:41
|
|||
|---|---|---|---|
|
|||
Корректно возвращать указатель на локальный объект функции? |
|||
|
#18+
Dimitry SibiryakovБез цитатки сложно опознать синтаксический сахар?..Думаю, ты не знаешь определения термина "синтаксический сахар". Ссылки это не просто сахар, они обладают своей семантикой в языке, которую никак не выразишь через указатели. Взять ту же пресловутую способность продлевать время жизни временных объектов. Никакими синтаксическими заменами это не выразишь через указатели. Синтаксический сахар — это, например, range-based for loop, который тупо синтаксически можно переписать через обычный for loop. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
30.10.2017, 19:42
|
|||
|---|---|---|---|
Корректно возвращать указатель на локальный объект функции? |
|||
|
#18+
ПриплюснутыйMasterZivА вот как ты собираешься хранить utf8 в std:: string, не понятно.А в чём проблема? MasterZivЭто как раз был бы вверх идиотизмаstd::getline смотрит с недоумением. так это ж STL, им же надо было показать всем, как не нужно писать программы, а то ж никто и не знал до этого.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
30.10.2017, 19:43
|
|||
|---|---|---|---|
Корректно возвращать указатель на локальный объект функции? |
|||
|
#18+
Dimitry SibiryakovПриплюснутыйТак что есть только возвраты/передачи по значению и ссылке Да, но ссылка это и есть указатель. нет, ссылка и указатель р разные типы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
30.10.2017, 19:46
|
|||
|---|---|---|---|
|
|||
Корректно возвращать указатель на локальный объект функции? |
|||
|
#18+
MasterZivссылка и указатель р разные типы. Типы разные, ассемблерный код один. Ссылка просто не даёт передать инвалидное значение типа nullptr. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
30.10.2017, 19:50
|
|||
|---|---|---|---|
Корректно возвращать указатель на локальный объект функции? |
|||
|
#18+
Dimitry SibiryakovMasterZivссылка и указатель р разные типы. Типы разные, ассемблерный код один. Ссылка просто не даёт передать инвалидное значение типа nullptr. 1. Если аргумент константная ссылка - туда можно передавать временные объекты (в том числе и созданные конструкторами преобразования). 2. Удержание ссылки. Для указателей такого нет. Может я что-то еще забыл. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=57&tablet=1&tid=2018054]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
174ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
51ms |
get tp. blocked users: |
2ms |
| others: | 307ms |
| total: | 580ms |

| 0 / 0 |
