When dealing with versioned exchanged API messages, it is often useful to upgrade/downgrade the version to answer the requests, e.g. the client is communicating with version 1.1 and the server is using version 1.2.1 internally.
This talk presents an elegant solution in Modern C++ for this use case