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?
1 Answers
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:
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
Differences
Overcoming differences/missing bits:
Advanced Use
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

- 374,641
- 47
- 450
- 633