Skip to content

Draft: Modernize to C++17, 1st iteration: std::filesystem with GitLab Duo Workflow

What does this MR do and why?

Summary of Changes

This update modernizes the codebase from C++11 to C++17, enabling the use of newer language features like std::filesystem. A new ConfigurationParser class has been added to manage application settings using a singleton pattern, allowing for centralized configuration management. The MetricsCollector now accepts a configurable collection interval parameter. The ArduinoTemperatureSensor has been made more resilient by gracefully falling back to simulated values when hardware issues occur instead of throwing exceptions. The Utils namespace has been expanded with filesystem-related helper functions that leverage C++17 capabilities. Documentation has been updated to reflect these changes and provide examples of additional C++17 features that could be incorporated in the future, such as structured bindings, std::optional, and parallel algorithms.

References

Screenshots or screen recordings

Before After

How to set up and validate locally

MR acceptance checklist

  • Styleguide
  • Tests
  • Documentation

Merge request reports

Loading