有
# define QT_USE_NAMESPACE
# define QT_BEGIN_NAMESPACE
# define QT_END_NAMESPACE
标题就像
QT_BEGIN_NAMESPACE
class QVBoxLayout;
QT_END_NAMESPACE
这些定义的深层含义是什么?
这些不是宏。他们需要什么?
有
# define QT_USE_NAMESPACE
# define QT_BEGIN_NAMESPACE
# define QT_END_NAMESPACE
标题就像
QT_BEGIN_NAMESPACE
class QVBoxLayout;
QT_END_NAMESPACE
这些定义的深层含义是什么?
这些不是宏。他们需要什么?
文档解释. 简而言之 - 在 Linux 的某些配置下,您可能会遇到错误 - 应用程序崩溃。为了解决这个问题,他们提出了将代码包装在命名空间中的方法。但由于此错误仅在某些特定条件下出现,因此通常不需要。
因此,在大多数情况下,这些定义会扩展为一个空字符串。但是你可以在构建 Qt 时指定一个特殊的标志,
-qtnamespace xxx
然后所需的命名空间就会在那里。所有这些都对开发人员提出了正确格式化其代码的要求。