title: What is the use of private static member functions?
body: <p>I was looking at the <a href="http://www.boost.org/doc/libs/1_46_1/doc/html/boost_asio/example/http/server/request_parser.hpp">request parser</a> from the boost::asio example and I was wondering why the private member functions like <code>is_char()</code> are <code>static</code>? :</p>
  
  <pre><code>class request_parser
  {
    ...
    private:
      static bool is_char(int c);
    ...
  };
  </code></pre>
  
  <p>It is used in the function <a href="http://www.boost.org/doc/libs/1_46_1/doc/html/boost_asio/example/http/server/request_parser.cpp">consume</a> which is not a static function:</p>
  
  <pre><code>boost::tribool request_parser::consume(request&amp; req, char input)
  {
    switch (state_)
    {
      case method_start:
      if (!is_char(input) || is_ctl(input) || is_tspecial(input))
      {
        return false;
      }
      ...
  </code></pre>
  
  <p>Only member functions can call <code>is_char()</code> and no static member function is calling <code>is_char()</code>. So is there a reason why these functions are static?</p>