- Notifications
You must be signed in to change notification settings - Fork42
Semantic Versioning for modern C++
License
Neargye/semver
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
C++ library compare and manipulate versions are available as extensions to the<major>.<minor>.<patch>-<prerelease_tag>+<build_metadata>
format complying withSemantic Versioning 2.0.0
Parse
semver::version v1;if (semver::parse("1.4.3", v1)) {constint patch = v1.patch();// 3// do something...}semver::version v2;if (semver::parse("1.2.4-alpha.10")) {const std::string prerelease_tag = v2.prerelease_tag()// alpha.10// do something...}
Сomparison
assert(v1 != v2);assert(v1 > v2);assert(v1 >= v2);assert(v2 < v1);assert(v2 <= v1);
Validate
constbool result = semver::valid("1.2.3-alpha+build");assert(result);
Range matching
semver::range_set range;if (semver::parse(">=1.0.0 <2.0.0 || >3.2.1", range)) { semver::version version;if (semver::parse("1.2.3", version)) {assert(range.contains(version)); }}
Check theexamples folder to see more various usage examples
You should add required filesemver.hpp.
If you are usingvcpkg on your project for external dependencies, then you can use theneargye-semver.
If you are usingConan to manage your dependencies, merely addneargye-semver/x.y.z
to your conan's requires, wherex.y.z
is the release version you want to use.
Alternatively, you can use something likeCPM which is based on CMake'sFetch_Content
module.
CPMAddPackage(NAMEsemverGITHUB_REPOSITORYNeargye/semverGIT_TAGx.y.z# Where `x.y.z` is the release version you want to use.)
- Clang/LLVM >= 5
- MSVC++ >= 14.11 / Visual Studio >= 2017
- Xcode >= 10
- GCC >= 7
Licensed under theMIT License
About
Semantic Versioning for modern C++
Topics
Resources
License
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Packages0
Uh oh!
There was an error while loading.Please reload this page.
Contributors11
Uh oh!
There was an error while loading.Please reload this page.