Skip to content

Switch to c++17 #55

Open
Open
@breznak

Description

@breznak

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:: with std:: -- boost now optional with c++17
  • integrate c++17 enhancements in codebase (may not need all at once)
    • replace all *T, Real*, etc with std::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; ie fill(), etc

This is a great readup for any c++ programmer:
https://github.com/isocpp/CppCoreGuidelines/blob/master/CppCoreGuidelines.md

Metadata

Metadata

Assignees

No one assigned

    Labels

    codecode enhancement, optimization, cleanup..programmer stuffenhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions