Open
Description
from modern C++ features support, reducing dependencies.
- enable c++17 in CMake, compile code with it locally
- fix additional c++17 nuances
- enable in all CI and make sure all compile
- update build scripts
- make sure recent version of compiler installs in the CI
- Linux
- Windows
- OSX
- replace suitable
boost::
withstd::
-- boost now optional with c++17 - integrate c++17 enhancements in codebase (may not need all at once)
- replace all
*T
,Real*
, etc withstd::array
(for fixed size),std::vector
for variable respectively; no speed impact - use RAII; remove pointers, make local variable where possible; elsewhere use
smart_pointers
- use
const
where possible, cleaner, safer, faster - use
auto
for cleaner code - use for-each
for(auto item : list)
- replace loops with
<algorithms>
where possible; iefill()
, etc
- replace all
This is a great readup for any c++ programmer:
https://github.com/isocpp/CppCoreGuidelines/blob/master/CppCoreGuidelines.md