title: Using two headers with the same function names
body: <p>I want to use some of the functionality of <code>&lt;termios.h</code> and <code>&lt;asm/termios.h&gt;</code>, but they contain functions with the same name, and only including them both I got <strong>error: redefinition of 'struct termio'</strong>.</p>
  
  <p>I managed to use some of <code>&lt;asm/termios.h</code> structures (<code>struct termios2</code>) by isolating the <code>#include</code> directive exactly where I need (in a function).</p>
  
  <pre><code>void MyClass::MyMethod() {
  #include &lt;asm/termios.h&gt;
      struct termios2 tio;
  
      // do stuff with tio variable.
  }
  </code></pre>
  
  <p>This works fine for only one function, but if I try to do the same with more functions (including the <code>&lt;asm/termios.h&gt;</code> header) I get <strong>aggregate 'MyClass::MyMethod()::termios2 tio' has incomplete type and cannot be defined</strong></p>
  
  <p>Any solutions?</p>