title: Auto function must be defined before it is used
body: <p>Say we have two member functions:</p>
  
  <ul>
  <li>public foo()</li>
  <li>private bar()</li>
  </ul>
  
  <p>We want to call bar() in foo():</p>
  
  <pre><code>&gt; cat test.cpp
  class a
  {
  public:
      auto foo()
      {
          auto a = bar();
      }
  private:
      auto bar()
      {
          return 1;
      }
  };
  &gt; g++ test.cpp -std=c++14
  test.cpp:6:12: error: function 'bar' with deduced return type cannot be used before it is defined
              auto a = bar();
                       ^
  test.cpp:9:7: note: 'bar' declared here
      auto bar()
           ^
  </code></pre>
  
  <p>Does that mean I have to defined the <strong>private bar() before the public foo()</strong> to get through the compilation?</p>
  
  <p>But I'm used to defining <strong>public members before private ones</strong>...</p>
  
  <p>Will the parser be improved to allow calling <code>auto function()</code> before its definition?</p>