Важно ли объявить пространство имен с помощью QT_BEGIN_NAMESPACE .. QT_END_NAMESPACE - PullRequest
11 голосов
/ 27 июля 2010

Какое влияние имеет QT_BEGIN_NAMESPACE?

QT_BEGIN_NAMESPACE
class QLineEdit;
QT_END_NAMESPACE

Если я не использую объявление класса таким образом, возникнет ли какая-либо проблема?

1 Ответ

16 голосов
/ 27 июля 2010

QT_BEGIN_NAMESPACE и QT_END_NAMESPACE являются макросами препроцессора, и они определены в QtGlobal как:

#define QT_BEGIN_NAMESPACE namespace QT_NAMESPACE {
#define QT_END_NAMESPACE }

Но: эти два макроса имеют какой-либо эффект только при настройке Qt ипостроен с использованием опции -qtnamespace, которая позволяет вам собирать Qt в определенном пользователем пространстве имен.

Итак: если вы не используете (или не планируете использовать) библиотеку Qt, которая была построена таким образом (по умолчанию библиотека Qt находится в глобальном пространстве имен), пропуская QT_BEGIN_NAMESPACE и QT_END_NAMESPACE не приведет ни к каким проблемам.

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