Важно ли объявить пространство имен с помощью QT_BEGIN_NAMESPACE .. QT_END_NAMESPACE

qt qt4

4785 просмотра

1 ответ

740 Репутация автора

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

QT_BEGIN_NAMESPACE
class QLineEdit;
QT_END_NAMESPACE

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

Автор: zibib Источник Размещён: 27.07.2010 07:03

Ответы (1)


19 плюса

10155 Репутация автора

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не приведет к каким-либо проблемам.

Автор: Greg S Размещён: 27.07.2010 07:45
32x32