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

start [/forum/topic.php?fid=57&msg=39543793&tid=2018054]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
162ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
56ms |
get tp. blocked users: |
1ms |
| others: | 15ms |
| total: | 285ms |

| 0 / 0 |
