unable to decipher compile error when using boost.spirit.parser
<p>I am trying to learn to parse using boost.spirit parser. I am using Windows 8.1 with VisualStudio 2015. I have installed and successfuly compiled the test program from the boost.spirit installation document so my installation of boost seems fine.</p>

<p>I have been following the tutorial on the boost.org on using the paser. I created the following code to parse a double:</p>

<pre><code>  #include &lt;boost/config/warning_disable.hpp&gt;
  #include &lt;boost/spirit/include/qi.hpp&gt;
  #include &lt;boost/spirit/include/phoenix_core.hpp&gt;
  #include &lt;boost/spirit/include/phoenix_operator.hpp&gt;
  #include &lt;boost/spirit/include/phoenix_object.hpp&gt;

  namespace qi = boost::spirit::qi;
  namespace ascii = boost::spirit::ascii;

  template &lt;typename Iterator&gt;
  bool myParser(Iterator first, Iterator last) {
      using qi::double_;
      qi::rule&lt;Iterator, double(), ascii::space_type&gt; myrule;
      myrule %= double_;
      bool r = parse(first, last, myrule, ascii::space);
      return r;
   }
  int main() {
      std::string dstr = std::string("2.1");
      bool r = myParser(dstr.begin(), dstr.end());
      return 0;
     }
</code></pre>

<p>When I compile I get the following error message from rule.hpp line 304:</p>

<pre><code>'bool boost::function4&lt;R,T0,T1,T2,T3&gt;::operator ()(T0,T1,T2,T3) const': cannot convert argument 4 from 'const boost::spirit::unused_type' to 'const boost::spirit::qi::char_class&lt;boost::spirit::tag::char_code&lt;boost::spirit::tag::space,boost::spirit::char_encoding::ascii&gt;&gt; '   
</code></pre>

<p>Any help will be greatly appreciated. Thanks</p>