Design goals:
Do both of these:
This seems impossible but is in fact fairly easily achievable:
Put everything under pystd<year> namespace
When release happens, copy all files from foo<year>.[ch]pp to
foo<year+1>.[ch]pp and rename the namespace accordingly
The old version remains forever frozen in time
Arbitrary changes can be done to the new version
Anyone who needs to interoperate with code using the old versions can
#include the old header and use things from its namespace as needed.
Tested with GCC and Clang on Linux and macOS. Does not work with MSVC as it has not yet added support for pack indexing.
412 commits
C++
98.4%
Python
1.1%
Design goals:
Do both of these:
This seems impossible but is in fact fairly easily achievable:
Put everything under pystd<year> namespace
When release happens, copy all files from foo<year>.[ch]pp to
foo<year+1>.[ch]pp and rename the namespace accordingly
The old version remains forever frozen in time
Arbitrary changes can be done to the new version
Anyone who needs to interoperate with code using the old versions can
#include the old header and use things from its namespace as needed.
Tested with GCC and Clang on Linux and macOS. Does not work with MSVC as it has not yet added support for pack indexing.
412 commits
C++
98.4%
Python
1.1%