Использование умных указателей в качестве аргументов стандартных функций Qt - PullRequest
0 голосов
/ 10 декабря 2018

Все в названии: мне было интересно, можно ли использовать умный указатель в качестве параметра функции вместо необработанного указателя?

Например, я хотел использовать QsharedPointer<QStringListModel> вместоQStringListModel* в качестве параметра для функции QListView :: setModel.

Это касается не только инфраструктуры Qt, но и STL в целом.К сожалению, Google не смог мне помочь на этот раз ..

Ответы [ 2 ]

0 голосов
/ 10 декабря 2018

Если функция setModel не имеет перегрузки, принимающей QsharedPointer<QStringListModel>, вам необходимо предоставить необработанный указатель, хранящийся в вашем общем указателе.Вы можете использовать shared_ptr_variable.data() для этого.

0 голосов
/ 10 декабря 2018

Если функция принимает необработанный указатель в качестве аргумента, то нет, это невозможно.Однако вы можете получить необработанный указатель из умного указателя с помощью метода get() и передать его в качестве аргумента.

...