Присоединение сигналов и слотов к объекту внутри QSharedPointer

Мое приложение содержало несколько таких функций:

void SomeClass::set_data_provider(DataProvider *data_provider)
{
    connect(data_provider, SIGNAL(data_available(int)),
        this, SLOT(data_available(int)));
}

Чтобы избежать передачи необработанных указателей, я изменил все вхожденияDataProvider * вQSharedPointer<DataProvider>, Последний является почти заменой первого, за исключением того, что вы не можете передать QSharedPointerQObject::connect, Я работал над этим, извлекая необработанный указатель из QSharedPointer:

void SomeClass::set_data_provider(QSharedPointer<DataProvider> data_provider)
{
    connect(data_provider.data(), SIGNAL(data_available(int)),
        this, SLOT(data_available(int)));
}

Кажется, это работает нормально, но выглядит не элегантно, и я опасаюсь обращаться к необработанному указателю, как это. Есть ли лучший способ подключения к объекту, который передается в QSharedPointer?

Ответы на вопрос(2)

Ваш ответ на вопрос