On 13 April 2018 at 06:49, Chris Glover via Boost-users < boost-users@lists.boost.org> wrote:
There are of course other reasons for choosing the boost variant over the std variant, even outside of boost. Four that often influence me are:
There are good reasons to use the std variants as well.
- Boost often offers an extended API
This means the implementation does not adhere to the standard, documentation problems (or lack thereof are often the result). Furthermore, subtle differences between std and Boost variants exist (filesystem, random) and can lead to hard to understand bugs or difficulty in use of the lib. - Boost components can be forward declared
It was recently posted here that Boost itself actually forward declares STL stuff (dis-allowed according to the std, and confirmed by the author).
- Boost offers the same implementation across platforms
Adhering to the std serves the same purpose. It also, due to inter-dependencies, obliges one to pull in large parts of Boost, possibly just to use one feature. - I can fix a boost version should I need to
Yes you can. However, parts of Boost (CMT) are not maintained (apart from serious bugs). Some (many it seems) PR's are outstanding for years. Libraries become stale (BGL, multiarray, pool f.e.) and basically just preserve the status quo (if you're lucky), with no recourse (other than DIY). degski