<!--toc-->
|
|
## General
|
|
This is CppCMS future proofing release:
|
|
- CppCMS moved to C++11 by default and now requires a compiler that supports it
|
- Templates compiler and unit-tests support both python 2.7 and python >= 3.5
|
- Lots of booster API had become an alias to C++11 libraries
|
|
|
## Breaking Changes
|
|
- All references to `std::auto_ptr` were replaced by `std::unique_ptr` since `auto_ptr` was deprecated and removed in C++17.
|
- Booster API become alias for std equivalents
|
|
- `shared_ptr`, `weak_ptr`, `enable_shared_from_this`
|
- `static_pointer_cast`, `dynamic_pointer_cast`, `const_pointer_cast`
|
- all `booster::system` now refers to std system library: `error_category`, `system_category`, `error_code`, `system_error`
|
- `function`
|
- `thread`, `mutex`, `recursive_mutex`, `conditional_variable`, `unique_lock`
|
|
|
Since some interfaces of C++ standard library functions may differ from ones appear in booster these changes may break some code
|
|
## Additional Changes
|
|
- `cppcms_tmpl_cc` now uses `std::begin/end`, `std::rbegin/rend` to iterate over containers
|
- Now it is possible to use `std::regex` instead of PCRE, it has some performance penalty and lack UTF-8 support but it is good option to eliminate some dependencies - for example on Windows.
|
- `zlib` dependency optional it does not remove file based session storage.
|
- Atomic counter now uses `std::atomic`
|
- Many (but not all) APIs that require dynamic parameters size moved to C++11 variadic templates
|
|
|
|
## Requirements
|
|
- Python 2.7 or >= 3.5
|
- C++11 enabled compiler, tested on gcc>=4.8, clang >=3.8, msvc 2017 (2015 probably will work as well) |