MSVC C4100: «приложение»: предупреждение о формальном параметре без ссылки - PullRequest
4 голосов
/ 28 декабря 2010

Следующий код генерирует предупреждение C4100 при компиляции с использованием MSVC.Как это возможно?На «appliation» явно ссылаются.

class ApplicationInfo : public QObject
{
    Q_OBJECT

    public:
        ...
        static void initialize(QApplication &application);
        ...
    ...
}

void ApplicationInfo::initialize(QApplication &application)
{
    application.setOrganizationName(ApplicationInfo::organizationName());
    application.setOrganizationDomain(ApplicationInfo::organizationName());
    application.setApplicationName(ApplicationInfo::applicationName());
    application.setApplicationVersion(ApplicationInfo::applicationVersion().toString());
}

1 Ответ

7 голосов
/ 28 декабря 2010

Функции, которые вы вызываете с использованием объекта application, являются статическими функциями, поэтому они на самом деле не ссылаются на объект application.

setOrganizationName
setOrganizationDomain
setApplicationName
setApplicationVersion

Все статические члены QCoreApplication, которые QApplication являются производными. Использование ссылки application разрешает только область имен для этих функций, но объект фактически не используется.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...