Semantic versioning in C++, testing with QuickCheck