title: BOOST_SPIRIT_DEFINE not understand
body: <p>I'm trying to write an expression parser with boost spirit x3.
  I based my new code on old code that I written years ago (and worked well) with Spirit 2.x (qi).</p>
  <p>The core of my code is:</p>
  <pre><code>   //Make new rule(s) for expression
      auto term = factor &gt;&gt; *(('*' &gt;&gt; factor) | ('/' &gt;&gt; factor));
      auto expression = term &gt;&gt; *(('+' &gt;&gt; term) | ('-' &gt;&gt; term));
      auto group = '(' &gt;&gt; expression &gt;&gt; ')';
      auto factor = lexeme[&quot;double_&quot;] | group;
  
       
      string s=&quot;12.4 + 3.2&quot;;
  
      auto first = s.begin();
      auto last = s.end();
      bool r = x3::phrase_parse(
          first,
          last,
          //  Begin grammar
          expression,
          //  End grammar
          x3::space);
  </code></pre>
  <p>I obtain two errors (Visual Studio 2019):
  Error   C2338   BOOST_SPIRIT_DEFINE undefined for this rule.
  Error   C2039   'parse': is not a member of 'boost::spirit::x3::unused_type'</p>
  <p>Why?</p>