modern-cpp

Enforce C++20 embedded guidelines for ESP32 projects using ESP-IDF or Arduino.

5|3|Updated Feb 25, 2026
One-click install
npx skills add https://github.com/manuschillerdev/esphome-elero --skill modern-cpp-manuschillerdev
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: modern-cpp
Source: https://github.com/manuschillerdev/esphome-elero/tree/main/.claude/skills/modern-cpp
Command: npx skills add https://github.com/manuschillerdev/esphome-elero --skill modern-cpp-manuschillerdev

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

This guide consolidates C++20 embedded development best practices for ESP32, aligning with Google C++ Style Guide to improve safety, readability, and maintainability of ESP32 projects.

Core Features & Use Cases

  • Provides naming conventions, style rules, and architectural guidance for embedded C++.
  • Promotes modern C++ features (concepts, std::span, designated initializers) with ESP32-ready patterns.
  • Helps teams write consistent code for ESP32 devices using ESP-IDF or Arduino frameworks, across drivers, helpers, and utilities.

Quick Start

Review the guidelines and refactor a sample ESP32 module to conform to the C++20 style rules in this guide.

Frequently Asked Questions about modern-cpp

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I apply C++20 features like concepts and std::span in ESP32 embedded code?

To apply C++20 features in ESP32 embedded code, use concepts for type safety and std::span for buffer management. This guide provides ESP-IDF and Arduino-ready patterns to implement these modern features safely.

What are the best practices for naming conventions and error handling in ESP32 C++ projects?

Best practices for ESP32 C++ projects include adhering to Google C++ Style Guide naming conventions and adopting a no-exceptions error handling policy. This ensures robust, portable code across drivers and utilities.

Can I use designated initializers and modern C++20 standards with the ESP-IDF framework?

Yes, you can use designated initializers and modern C++20 standards with the ESP-IDF framework. This guide enforces C++20 embedded guidelines, specifying requirements for designated initializers to improve code readability.

How do I refactor an existing Arduino module to conform to modern C++20 style rules?

To refactor an Arduino module to modern C++20 style rules, review the guidelines for code structure, type safety, and constants. Apply the specified ESP32-ready patterns to align your project with Google C++ Style Guide.

Why should I use a no-exceptions policy for ESP32 development?

A no-exceptions policy for ESP32 development ensures robust and portable code by avoiding the overhead and unpredictability of exception handling. This guide enforces this constraint alongside C++20 features to maintain strict embedded safety.