title: Intellisense warning: Incomplete type is not allowed (in inline method but defintion of type is in cpp)
body: <p>I've forward declared my enum class, definition is in cpp, program compiles but I'm getting a red "wave" under the type name (below in inline method)</p>
  
  <p>I would like to ask if it's recomended to move that inlined method into cpp file?
  I'm a hoby programer so I don't know whether is this inlined method with incomplete type in a header file ok or not.</p>
  
  <p>header file:</p>
  
  <pre><code>#include &lt;map&gt;
  
  using std::map;
  enum class MinimumName;
  
      class Limits
      {
      public:
          Limits(TableLayout layout);
          void SetMinimum(MinimumName name, unsigned int minimum);
  
  // other stuff irrelevant
  
      private:
          typedef map&lt;MinimumName, unsigned int&gt; MinContainer;
  MinContainer::iterator Miniter;
          MinContainer Minimums;
  };
                                     //intelisence warning here in argument list
  inline void Limits::SetMinimum(MinimumName name, unsigned int minimum)
  {                             // incomplete type is not allowed
      Miniter = Minimums.find(name);
      Miniter-&gt;second = minimum;
  }
  </code></pre>
  
  <p>cpp file</p>
  
  <pre><code>enum class MinimumName
  {
      Inside,
      Outside,
      Table
  };
  </code></pre>
  
  <p>shall I move it into cpp file or not? and why?</p>