title: cppcheck: Syntax error with using/typedef
body: <p>I have a syntax error with cppcheck and using/typedef declarations.
  I have a struct that contains </p>
  
  <pre><code>struct inferior
  {
  
      using visitor = int;
  
      template &lt;typename T&gt;
      bool operator()(const T &amp;a, const T &amp;b) const
      {
          return a &lt; b;
      }
  };
  
  int main() { 
      return 0; 
  }
  </code></pre>
  
  <p>when I run <code>cppcheck file.cpp</code> output is </p>
  
  <p><code>[file.cpp:5]: (error) syntax error</code> with no further output. </p>
  
  <p>The error  disappeared if I remove the <code>using</code> declaration.</p>
  
  <p>I wonder if it's normal behaviour from <code>cppcheck</code>. the <code>using</code>  declaration not being used directly. (It's a reduced example with a <code>using</code> redefining int).</p>
  
  <p>Some context if needed: In my application, the <code>using</code> defines a specialisation of a visitor <code>OnlyArithmetic</code> like so: <code>using visitor = OnlyArithmetic&lt;inferior&gt;</code> that filters the non-arithmetic types using metaprogramming techniques, then I call std::visit on inferior::visitor(). I used this trick to not repeat the filtering part for all structures I need (inferior, superior, ...).</p>
  
  <p>[EDIT] Using cppcheck 1.88</p>