C++ Specific Configuration Variables

The C++ specific configuration variables are provided to avoid erroneous documentation due to non-standard C++ constructs.

Cpp.ignoredirectives

The Cpp.ignoredirectives variable makes QDoc ignore the specified non-standard constructs, within C++ source code.

If not specified by the Cpp.ignoretokens or Cpp.ignoredirectives variables, non-standard constructs (typically macros) can result in erroneous documentation.


  Cpp.ignoredirectives = Q_DECLARE_INTERFACE \
                         Q_DECLARE_OPERATORS_FOR_FLAGS \
                         Q_DECLARE_PRIVATE \
                         Q_DECLARE_PUBLIC \
                         Q_DISABLE_COPY \
                         Q_DUMMY_COMPARISON_OPERATOR \
                         Q_ENUMS \
                         Q_FLAGS \
                         Q_INTERFACES \
                         __attribute__

makes sure that when processing the code below, for example, QDoc will simply ignore the 'Q_ENUMS' and 'Q_FLAGS' expressions:


  class Q_CORE_EXPORT Qt {
      Q_OBJECT
      Q_ENUMS(Orientation TextFormat BackgroundMode
              DateFormat ScrollBarPolicy FocusPolicy
              ContextMenuPolicy CaseSensitivity
              LayoutDirection ArrowType)
      Q_ENUMS(ToolButtonStyle)
      Q_FLAGS(Alignment)
      Q_FLAGS(Orientations)
      Q_FLAGS(DockWidgetAreas)

    public:
      ...
  };

The Q_OBJECT macro, however, is an exception: QDoc recognizes this particular non-standard construct, so there is no need specifying it using the Cpp.ignoredirectives variable.

Regarding the Q_CORE_EXPORT macro; see the documentation of the Cpp.ignoretokens variable.

See also Cpp.ignoretokens.

Cpp.ignoretokens

The Cpp.ignoretokens variable makes QDoc ignore the specified non-standard constructs, within C++ source code.

If not specified by the Cpp.ignoretokens or Cpp.ignoredirectives variables, non-standard constructs (typically macros) can result in erroneous documentation.

In qtgui.qdocconf:


  Cpp.ignoretokens = QAXFACTORY_EXPORT \
                     QM_EXPORT_CANVAS \
                     ...
                     Q_COMPAT_EXPORT \
                     Q_CORE_EXPORT \
                     Q_EXPLICIT \
                     Q_EXPORT \
                     ...
                     Q_XML_EXPORT

makes sure that when processing the code below, for example, QDoc will simply ignore the 'Q_CORE_EXPORT' expression:


  class Q_CORE_EXPORT Qt {
      Q_OBJECT
      Q_ENUMS(Orientation TextFormat BackgroundMode
              DateFormat ScrollBarPolicy FocusPolicy
              ContextMenuPolicy CaseSensitivity
              LayoutDirection ArrowType)
      Q_ENUMS(ToolButtonStyle)
      Q_FLAGS(Alignment)
      Q_FLAGS(Orientations)
      Q_FLAGS(DockWidgetAreas)
    public:
      ...
  };

Regarding the Q_OBJECT, Q_ENUMS and Q_FLAGS macros; see the documentation of the Cpp.ignoredirectives variable.

See also Cpp.ignoredirectives.