1

Why is this library not listed in the directory of the matching boost version? What are the differences compared to v2.*? What are the required/supported C++ standards?

Frank Puck
  • 467
  • 1
  • 11

1 Answers1

0

X3 is not a boost library. It's a component of the Boost Spirit library.

The documentation is here: https://www.boost.org/doc/libs/1_82_0/libs/spirit/doc/x3/html/index.html

It requires c++14, but there are deprecation warning that in the future they will only support c++17. In fact I just found (on that page) they already do:

WARNING*: C++14 compilers support will be dropped soon. Spirit X3 in Boost 1.81 (scheduled to November 2022) will use C++17 features.

The differences are legion, but you can find them by reading the docs.

I guess besides that, you can find some of that info on this site:

  1. Maturity

    - https://stackoverflow.com/questions/48237777/is-boost-spirit-x3-production-ready/48239766#48239766
    - https://stackoverflow.com/questions/45014216/how-future-safe-is-it-to-write-a-parser-with-boost-spirit-x3/45015809#45015809
    - https://stackoverflow.com/questions/52990661/getting-into-boost-spirit-qi-or-x3/52991170#52991170
    
  2. Differences

  3. Overcoming differences/missing bits:

  4. Advanced Use

  5. Common Pitfalls

I could go on, but it's probably better to search/ask targeted questions if you run into more.

TL/DR

As I happen to have recommended someone else yesteday:

@sehe. Since I'm using the latest boost version (1.82,0), do you recommend using QI or X3 for this project? They both new for me to learn anyway. I just don't want to spend time upgrading this to X3 in the future. – Dylan 6 hours ago

I think Qi is more mature and has fewer surprises (especially surrounding automatic propagation). However, X3 is a lot quicker to compile. If you are prepared to do a lot manual massaging with semantic actions anyways, X3 might be easier, since they're bit more natural now. – sehe 5 hours ago

sehe
  • 374,641
  • 47
  • 450
  • 633