powered by simpleCommunicator - 2.0.58     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Немножко про shared_ptr
13 сообщений из 38, страница 2 из 2
Немножко про shared_ptr
    #39906813
Фотография CEMb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZiv
Пишут же тебе всё человечьим голосом
я вижу, что мне пишут. Мне было интересно, почему там не lvalue, потому что изначально это была переменная класса. Ну, т.е. мне было понятно, что происходит внутри, непонятно, как бы так хитро вернуть ссылку на объект из класса.

Потому что ты по значению возвращаешь shared_ptr, это temporary, он нигде вообще не lvalue
...
Рейтинг: 0 / 0
Немножко про shared_ptr
    #39906910
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
// теперь пытаемся воспользоваться этим методом, разными способами.

Да ты просто С++ не знаешь!

A a;
const shared_ptr<int>& shrpi = a.GetPtr();


shared_ptr<int> shpi = a.GetPtr(); // ВОТ ТАК И НАДО ДЕЛАТЬ !!!
shared_ptr<int>&& shpcri = a.GetPtr(); // OK, but...

Непонятно, почему нельзя заинтинить ссылку?
По стандарту С++, и тут это не только для shared_ptr


Учи С++ ! Б....!
...
Рейтинг: 0 / 0
Немножко про shared_ptr
    #39907701
Фотография CEMb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Потому что ты по значению возвращаешь shared_ptr, это temporary, он нигде вообще не lvalue
да я же уже написал 2 раза, что понял.
MasterZiv
Да ты просто С++ не знаешь!
Ок, ты знаешь C++, расскажи мне, как мне вернуть ссылку возвращаемым значением на переменную из класса.
MasterZiv
// ВОТ ТАК И НАДО ДЕЛАТЬ !!!
Мне нужно вернуть ссылку, возвращение указателя работает на порядок медленнее.
...
Рейтинг: 0 / 0
Немножко про shared_ptr
    #39907874
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CEMb
Мне нужно вернуть ссылку, возвращение указателя работает на порядок медленнее.

Так если там и так есть weak_ptr.lock() то это само по себе уже копирование указателя, а дальше сработает RVO и никакого копирования возвращаемого значения не будет.
Так что про "на порядок медленнее" что-то не сходится.
...
Рейтинг: 0 / 0
Немножко про shared_ptr
    #39907879
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Странно как-то меня квотировали. Хотя текст не мой.
...
Рейтинг: 0 / 0
Немножко про shared_ptr
    #39907900
Фотография CEMb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anatoly Moskovsky
Так если там и так есть weak_ptr.lock()
я пока проводил эксперименты без weak_ptr
mayton
Странно как-то меня квотировали. Хотя текст не мой.
Ну, прошу прощения. Просто пару раз уже было, что ты вместо reply делал редактирование. Благодаря такой мощной выборке, я сделал вывод, что это опять ты :)
...
Рейтинг: 0 / 0
Немножко про shared_ptr
    #39907952
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CEMb
mayton
Потому что ты по значению возвращаешь shared_ptr, это temporary, он нигде вообще не lvalue
да я же уже написал 2 раза, что понял.
MasterZiv
Да ты просто С++ не знаешь!
Ок, ты знаешь C++, расскажи мне, как мне вернуть ссылку возвращаемым значением на переменную из класса.
MasterZiv
// ВОТ ТАК И НАДО ДЕЛАТЬ !!!
Мне нужно вернуть ссылку, возвращение указателя работает на порядок медленнее.


Альтернативный С++?
...
Рейтинг: 0 / 0
Немножко про shared_ptr
    #39907953
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну шикарно. Так мне ещё припишут цитаты Адольфа Алоизовича.
...
Рейтинг: 0 / 0
Немножко про shared_ptr
    #39907954
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CEMb
mayton
Потому что ты по значению возвращаешь shared_ptr, это temporary, он нигде вообще не lvalue
да я же уже написал 2 раза, что понял.
MasterZiv
Да ты просто С++ не знаешь!
Ок, ты знаешь C++, расскажи мне, как мне вернуть ссылку возвращаемым значением на переменную из класса.
MasterZiv
// ВОТ ТАК И НАДО ДЕЛАТЬ !!!
Мне нужно вернуть ссылку, возвращение указателя работает на порядок медленнее.


Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
class Foo 
{
  T m_t;

public:
 
  const T& getT() const { return m_t; }

};
...
Рейтинг: 0 / 0
Немножко про shared_ptr
    #39908248
Фотография CEMb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Ну шикарно. Так мне ещё припишут цитаты Адольфа Алоизовича.
Ты и там модератор?
...
Рейтинг: 0 / 0
Немножко про shared_ptr
    #39908249
Фотография CEMb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quote MasterZiv#22048572][SRC c++]ну вот придётся делать как-то так, да, два метода, один возвращает указатель, второй ссылку.
...
Рейтинг: 0 / 0
Немножко про shared_ptr
    #39908372
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CEMb
mayton
Ну шикарно. Так мне ещё припишут цитаты Адольфа Алоизовича.
Ты и там модератор?

Где "там"?
...
Рейтинг: 0 / 0
Немножко про shared_ptr
    #39908497
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quot CEMb#22049064]
MasterZiv
[SRC c++]ну вот придётся делать как-то так, да, два метода, один возвращает указатель, второй ссылку.


зачем?

Если то, на что это всё ссылается, есть всегда за всю жизнь объекта, на котором вызывается метод,
возвращай ссылку. Если иногда того, на что ссылку ты возвращаешь , может не быть (nullptr) , возвращай указатель.

Вот и всё
...
Рейтинг: 0 / 0
13 сообщений из 38, страница 2 из 2
Форумы / C++ [игнор отключен] [закрыт для гостей] / Немножко про shared_ptr
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]