2016-08-13 37 views
1

在精神X3我可以建立這樣的解析器:將使用精神X3我獲得更快的解析器,當我用期待運營商

const auto p = ("Number:" >> x3::_int) 
      | ("String:" >> +x3::alpha); 

如果我知道後面的字符串Number而來的,是int和String一後我一直可以用字符串>來說Number後面只有一個數字等等。

const auto p = ("Number:" > x3::_int) 
      | ("String:" > +x3::alpha); 

對我來說,不同的是,如果解析器無法解析輸入異常拋出。

現在我的問題是,我是否應該儘可能在>>操作符上使用>操作符?使用>會比使用>>運算符的分析器快嗎?

+2

否 - '>'是'>>'如果解析失敗,則加上'throw'。 – ildjarn

+4

如果你想知道「什麼是更快」,只需測量它。 –

回答

1

你應該總是隻是簡介的東西。

不管:

請問我用精神X3獲得更快的解析器,當我用期待運營商

只有到,它可以防止回溯替代的程度,但如果你需要,它不反正也是這樣。