title: QT Type being defined as an int by an external library?
body: <p>I am working on integrating a project into another project, and am having some build issues with QT.
  The issue I am getting is a line being produced in a moc file thats declares QMetaType::Bool.
  It says &quot;expected unqualified-id before 'int'&quot;, followed by a couple bracket errors down the line caused by that one error.
  Based on my research, other people say it is due to xlib.h somewhere else in the project defining Bool as an int.
  I have tried the '#undef Bool' line, but it doesnt seem to work. When I place it in the header of the most recent cpp file in the call stack, the error mentioned above goes away, but it also breaks all the objects I have declared in said cpp file, giving me a bunch of undefined reference errors that I know are not true.
  So two questions:</p>
  <ol>
  <li><p>Why am I getting an error where it takes a different definition of Bool from a different library, despite me calling out the QMetaType:: namespace explicitly?</p>
  </li>
  <li><p>Any ideas of other ways to resolve this issue?</p>
  </li>
  </ol>
  <p>Edit: This is the function block causing the issue in the moc file.</p>
  <pre><code>#undef QT_MOC_LITERAL
  
  static const uint qt_meta_data_FUNCTIONNAMEREDACTED[] = {
  
   // content:
         7,       // revision
         0,       // classname
         0,    0, // classinfo
         6,   14, // methods
         0,    0, // properties
         0,    0, // enums/sets
         0,    0, // constructors
         0,       // flags
         0,       // signalCount
  
   // slots: name, argc, parameters, tag, flags
         1,    0,   44,    2, 0x0a /* Public */,
         3,    1,   45,    2, 0x0a /* Public */,
         5,    1,   48,    2, 0x0a /* Public */,
         6,    0,   51,    2, 0x0a /* Public */,
         7,    1,   52,    2, 0x0a /* Public */,
         9,    1,   55,    2, 0x0a /* Public */,
  
   // slots: parameters
      QMetaType::Void,
      QMetaType::Void, QMetaType::Int,    4,
      QMetaType::Void, QMetaType::Int,    4,
      QMetaType::Void,
      QMetaType::Void, QMetaType::Bool,    8,
      QMetaType::Void, QMetaType::QString,   10,
  
         0        // eod
  };
  </code></pre>