Compatibility
Let’s assume that you find a very promising library and decide to add it to your project. Does it work? How well will it work?
Here’s where the fragmentation of C++ shows its ugly side. The chance of any of the following undesirable things to happen is non-zero:
- The library uses a newer C++ version than your code and you can’t compile it
- The library uses an older C++ version than your code
- You get a lot of warnings for different reasons
- The library compiles well with your version of C++, but its interface uses older constructs
- The library doesn’t work on all platforms your project targets
- The library is incompatible with your compiler
- The library is incompatible with your compilation process
- The library is compatible with all platforms your project targets, but it has different behavior or performance issues or bugs on specific platforms
I hope you never encounter any of the preceding problems....