title: What causes the error #18 expected a ")" on a MSP430
body: <p>Compiling the following C++14 code for a MSP430 using TI Code Composer I got the following errors:</p>
  <pre>
  subdir_rules.mk:14: recipe for target 'main.obj' failed
  "Interface.h", line 75: error #18: expected a ")"
  "Derived.h", line 91: error #18: expected a ")"
  </pre>
  <p>This is for the following code structure in which the <code>Interface.h</code> class is a library which compiles fine for STM32 targets.</p>
  <pre class="lang-cpp prettyprint-override"><code>#include &lt;cstdint&gt;
  
  namespace NS
  {
    class Interface 
    {
      public:
        // Other pure virtual functions such as:
        virtual void advance() = 0;
  
        // This is the problem function
        virtual void advance(const uint32_t N) = 0;
    };
  }
  </code></pre>
  <p>Next in the MSP430 project the interface is used in multiple objects. This is one example of multiple implementations, they all give the same error.</p>
  <pre class="lang-cpp prettyprint-override"><code>#include &quot;Interface.h&quot;
  
  class Derived : public ::NS::Interface
  {
    public:
      // Overriding virtual functions with implementations in cpp file.
      void advance() override;
  
      // The problematic function
      void advance(const uint32_t N) override;
  
    private:
      uint32_t index;
  };
  </code></pre>
  <p>The cpp file:</p>
  <pre class="lang-cpp prettyprint-override"><code>#include &quot;Derived.h&quot;
  
  Derived::advance() 
  {
    ++index;
  }
  
  Derived::advance(const uint32_t N)
  {
    index += N;
  }
  </code></pre>
  <p>Now inspecting the code for any &quot;funny&quot; characters like Greek question marks did not yield any result. I tried replacing the text, typing it again etc to no result</p>
  <p>Commenting out the functions <code>advance(const uint32_t N)</code> resolves the problem so it is not something else in the file.</p>
  <p>What could cause this problem?</p>