From 8828a4f4ef3ab7784da124dfa0917553b182387c Mon Sep 17 00:00:00 2001 From: owenpkent <20529132+owenpkent@users.noreply.github.com> Date: Sun, 11 Oct 2026 14:40:01 -0600 Subject: [PATCH] chore: standardize on C++23 across examples, host tests, docs and CI The library targets (lib/, pc/) already require C++23, but most of the repo around them still said C++20: 143 example CMakeLists set CMAKE_CXX_STANDARD 20, the host-test build lines and the READMEs / RST pages that mirror them used -std=c++20, the desktop_tests CI job and the odrive_native interop scripts built with c++20, and the rtps pc example pinned cxx_std_17. Move all of it to C++23 and update the prose ("depends only on the C++20 standard library", "requires a C++20 compiler") and the copilot code-style note to match. References to C++20 language features (concepts, requires clauses, designated initializers) are unchanged. The hid-rp host tests are the concrete motivation: hid-rp-switch-pro.hpp uses C++23 decay-copy (auto(x)), so the -std=c++20 build line in three of the four test headers could never have worked with clang. --- .github/copilot-instructions.md | 2 +- .github/workflows/desktop_tests.yml | 4 ++-- components/adc/example/CMakeLists.txt | 2 +- components/adrc/example/CMakeLists.txt | 2 +- components/ads1x15/example/CMakeLists.txt | 2 +- components/ads7138/example/CMakeLists.txt | 2 +- components/adxl345/example/CMakeLists.txt | 2 +- components/as5600/example/CMakeLists.txt | 2 +- components/at581x/example/CMakeLists.txt | 2 +- components/aw9523/example/CMakeLists.txt | 2 +- components/basicmicro/README.md | 2 +- components/basicmicro/example/CMakeLists.txt | 2 +- components/basicmicro/test/basicmicro_host_test.cpp | 2 +- components/bdc_driver/example/CMakeLists.txt | 2 +- components/binary-log/example/CMakeLists.txt | 2 +- components/bldc_current_sense/example/CMakeLists.txt | 2 +- components/bldc_motor/example/CMakeLists.txt | 2 +- components/ble_gatt_server/example/CMakeLists.txt | 2 +- components/bm8563/example/CMakeLists.txt | 2 +- components/bmi270/example/CMakeLists.txt | 2 +- components/bq27220/example/CMakeLists.txt | 2 +- components/button/example/CMakeLists.txt | 2 +- components/byte90/example/CMakeLists.txt | 2 +- components/canopen/README.md | 2 +- components/canopen/can_bridge_example/CMakeLists.txt | 2 +- components/canopen/can_bridge_example/README.md | 2 +- .../test/simulated_node_host_test.cpp | 2 +- components/canopen/example/CMakeLists.txt | 2 +- components/canopen/test/canopen_host_test.cpp | 2 +- components/chsc6x/example/CMakeLists.txt | 2 +- components/cli/example/CMakeLists.txt | 2 +- components/cobs/example/CMakeLists.txt | 2 +- components/color/example/CMakeLists.txt | 2 +- components/controller/example/CMakeLists.txt | 2 +- components/cst816/example/CMakeLists.txt | 2 +- components/csv/example/CMakeLists.txt | 2 +- components/desktop/example/CMakeLists.txt | 2 +- components/desktop/test/desktop_host_test.cpp | 2 +- components/dispatcher/README.md | 2 +- components/dispatcher/example/CMakeLists.txt | 2 +- components/dispatcher/test/dispatcher_host_test.cpp | 2 +- components/display_drivers/example/CMakeLists.txt | 2 +- components/dns_server/example/CMakeLists.txt | 2 +- components/drv2605/example/CMakeLists.txt | 2 +- components/encoder/example/CMakeLists.txt | 2 +- components/esp-box/example/CMakeLists.txt | 2 +- components/esp32-ethernet-kit/example/CMakeLists.txt | 2 +- components/esp32-p4-eth/example/CMakeLists.txt | 2 +- .../esp32-p4-function-ev-board/example/CMakeLists.txt | 2 +- components/esp32-p4-nano/example/CMakeLists.txt | 2 +- components/esp32-timer-cam/example/CMakeLists.txt | 2 +- components/ethernet/example/CMakeLists.txt | 2 +- components/event_manager/example/CMakeLists.txt | 2 +- components/expressive_eyes/example/CMakeLists.txt | 2 +- components/file_system/example/CMakeLists.txt | 2 +- components/filters/example/CMakeLists.txt | 2 +- components/ft5x06/example/CMakeLists.txt | 2 +- components/ftp/example/CMakeLists.txt | 2 +- components/gfps_service/example/CMakeLists.txt | 2 +- components/gps/example/CMakeLists.txt | 2 +- components/gt911/example/CMakeLists.txt | 2 +- components/hid-rp/example/CMakeLists.txt | 2 +- .../hid-rp/test/hid_rp_3dconnexion_host_test.cpp | 2 +- components/hid-rp/test/hid_rp_gamepad_host_test.cpp | 2 +- components/hid-rp/test/hid_rp_report_map_host_test.cpp | 2 +- components/hid_service/example/CMakeLists.txt | 2 +- components/i2c/example/CMakeLists.txt | 2 +- components/icm20948/example/CMakeLists.txt | 2 +- components/icm42607/example/CMakeLists.txt | 2 +- components/ina226/example/CMakeLists.txt | 2 +- components/interrupt/example/CMakeLists.txt | 2 +- components/iperf_menu/example/CMakeLists.txt | 2 +- components/joystick/example/CMakeLists.txt | 2 +- components/kts1622/example/CMakeLists.txt | 2 +- components/led/example/CMakeLists.txt | 2 +- components/led_strip/example/CMakeLists.txt | 2 +- components/lilygo-t5-47/example/CMakeLists.txt | 2 +- components/logger/example/CMakeLists.txt | 2 +- components/lp5817/example/CMakeLists.txt | 2 +- components/lsm6dso/example/CMakeLists.txt | 2 +- components/m5stack-cardputer/example/CMakeLists.txt | 2 +- components/m5stack-tab5/example/CMakeLists.txt | 2 +- components/math/example/CMakeLists.txt | 2 +- .../matouch-rotary-display/example/CMakeLists.txt | 2 +- components/max1704x/example/CMakeLists.txt | 2 +- components/mcp23x17/example/CMakeLists.txt | 2 +- components/mcp266/example/CMakeLists.txt | 2 +- components/mcp266/test/mcp266_host_test.cpp | 2 +- components/mcp266/test/mcp266_protocol_host_test.cpp | 2 +- components/mcp266/webapp_example/CMakeLists.txt | 2 +- components/meshtastic/example/CMakeLists.txt | 2 +- components/monitor/example/CMakeLists.txt | 2 +- components/monitor/test/monitor_host_test.cpp | 2 +- components/motorgo-axis/example/CMakeLists.txt | 2 +- components/motorgo-mini/example/CMakeLists.txt | 2 +- components/motorgo-plink/example/CMakeLists.txt | 2 +- components/mt6701/example/CMakeLists.txt | 2 +- components/neopixel/example/CMakeLists.txt | 2 +- components/nvs/example/CMakeLists.txt | 2 +- components/odrive_ascii/example/CMakeLists.txt | 2 +- components/odrive_native/example/CMakeLists.txt | 2 +- components/odrive_native/interop/README.md | 2 +- .../interop/odrive_native_interop_device.cpp | 4 ++-- components/odrive_native/interop/run.sh | 2 +- components/odrive_native/interop/run_interop.sh | 10 +++++----- components/odrive_native/python/tests/test_odrive.py | 2 +- .../odrive_native/test/odrive_native_host_test.cpp | 2 +- .../odrive_native/test/odrive_native_stream_test.cpp | 2 +- components/odrive_native/usb_example/CMakeLists.txt | 2 +- components/ota/README.md | 4 ++-- components/ota/example/CMakeLists.txt | 2 +- components/ota/test/ota_protocol_host_test.cpp | 2 +- components/pca9535/example/CMakeLists.txt | 2 +- components/pcf85063/example/CMakeLists.txt | 2 +- components/pi4ioe5v/example/CMakeLists.txt | 2 +- components/pid/example/CMakeLists.txt | 2 +- components/ping/example/CMakeLists.txt | 2 +- components/provisioning/example/CMakeLists.txt | 2 +- components/qmi8658/example/CMakeLists.txt | 2 +- components/qtpy/example/CMakeLists.txt | 2 +- components/qwiicnes/example/CMakeLists.txt | 2 +- components/reflect_cpp/README.md | 2 +- components/remote_debug/example/CMakeLists.txt | 2 +- components/rmt/example/CMakeLists.txt | 2 +- components/rtps/example/CMakeLists.txt | 2 +- components/rtps/example/pc/CMakeLists.txt | 2 +- components/rtsp/example/CMakeLists.txt | 2 +- components/runqueue/example/CMakeLists.txt | 2 +- components/rx8130ce/example/CMakeLists.txt | 2 +- components/sdcard/example/CMakeLists.txt | 2 +- .../seeed-studio-round-display/example/CMakeLists.txt | 2 +- components/serialization/example/CMakeLists.txt | 2 +- .../smartpanlee-sc01-plus/example/CMakeLists.txt | 2 +- components/socket/example/CMakeLists.txt | 2 +- components/spi/example/CMakeLists.txt | 2 +- components/st25dv/example/CMakeLists.txt | 2 +- components/state_machine/example/CMakeLists.txt | 2 +- components/stream_frame/README.md | 4 ++-- components/stream_frame/example/CMakeLists.txt | 2 +- components/stream_frame/include/stream_frame.hpp | 2 +- .../stream_frame/test/stream_frame_host_test.cpp | 2 +- components/switch_pro/example/CMakeLists.txt | 2 +- components/sx126x/example/CMakeLists.txt | 2 +- components/system/example/CMakeLists.txt | 2 +- components/system/test/system_host_test.cpp | 2 +- components/t-deck/example/CMakeLists.txt | 2 +- components/t-dongle-s3/example/CMakeLists.txt | 2 +- components/t_keyboard/example/CMakeLists.txt | 2 +- components/tabulate/example/CMakeLists.txt | 2 +- components/task/example/CMakeLists.txt | 2 +- components/telemetry/example/CMakeLists.txt | 8 ++++---- components/thermistor/example/CMakeLists.txt | 2 +- components/thread_pool/example/CMakeLists.txt | 2 +- components/timer/example/CMakeLists.txt | 2 +- components/tla2528/example/CMakeLists.txt | 2 +- components/touch/example/CMakeLists.txt | 2 +- components/trajectory_planner/example/CMakeLists.txt | 2 +- components/tt21100/example/CMakeLists.txt | 2 +- components/twai/example/CMakeLists.txt | 2 +- components/usb_device/example/CMakeLists.txt | 2 +- components/usb_device/msc_example/CMakeLists.txt | 2 +- components/usb_device/test/xinput_host_test.cpp | 2 +- components/usb_device/xinput_example/CMakeLists.txt | 2 +- components/usb_host/example/CMakeLists.txt | 2 +- components/usb_host/tab5_example/CMakeLists.txt | 2 +- components/vl53l/example/CMakeLists.txt | 2 +- components/wdi/README.md | 10 +++++----- components/wdi/ble_central_example/CMakeLists.txt | 2 +- components/wdi/ble_example/CMakeLists.txt | 2 +- components/wdi/include/wdi.hpp | 2 +- components/wdi/include/wdi_host.hpp | 2 +- components/wdi/test/wdi_device_host_test.cpp | 2 +- components/wdi/test/wdi_hid_host_test.cpp | 2 +- components/wdi/test/wdi_host_host_test.cpp | 2 +- components/wdi/test/wdi_protocol_host_test.cpp | 4 ++-- components/wdi/usb_example/CMakeLists.txt | 2 +- components/wdi/usb_host_example/CMakeLists.txt | 2 +- components/wifi/example/CMakeLists.txt | 2 +- components/wrover-kit/example/CMakeLists.txt | 2 +- components/ws-s3-geek/example/CMakeLists.txt | 2 +- components/ws-s3-lcd-1-47/example/CMakeLists.txt | 2 +- components/ws-s3-touch/example/CMakeLists.txt | 2 +- components/xiao-esp32s3-sense/example/CMakeLists.txt | 2 +- doc/en/data/reflect_cpp.rst | 2 +- doc/en/dispatcher/custom_modules.rst | 2 +- doc/en/motor_control/basicmicro.rst | 2 +- doc/en/motor_control/mcp266.rst | 2 +- doc/en/stream_frame/stream_frame.rst | 2 +- lib/README_PYPI.md | 2 +- pc/tests/odrive_native_golden.cpp | 2 +- 190 files changed, 206 insertions(+), 206 deletions(-) diff --git a/.github/copilot-instructions.md b/.github/copilot-instructions.md index 19ec9a1dc8..ac362bcd09 100644 --- a/.github/copilot-instructions.md +++ b/.github/copilot-instructions.md @@ -145,7 +145,7 @@ Hardware section if it is not relevant to the PR. ## Code Style -- C++20 standard +- C++23 standard - Follow `.clang-format` for formatting - Use `espp` namespace - Follow the patterns of existing components for logging (`espp::Logger`), configuration structs (`Config`), and task usage diff --git a/.github/workflows/desktop_tests.yml b/.github/workflows/desktop_tests.yml index e4301c5140..16be2f2d10 100644 --- a/.github/workflows/desktop_tests.yml +++ b/.github/workflows/desktop_tests.yml @@ -1,7 +1,7 @@ name: Desktop host + web tests # The desktop component's host-side checks: the C++ codec / model test -# (components/desktop/test, built with g++ -std=c++20), the web app's node +# (components/desktop/test, built with g++ -std=c++23), the web app's node # codec test against the same golden vectors, the dispatcher web-app lints # (module-id resolution, app registry) and the headless-Chrome smoke test of # desktop.html (file:// load with / without ?autoconnect and the ?selftest=1 @@ -44,7 +44,7 @@ jobs: working-directory: components/desktop/test run: | g++ --version | head -1 - g++ -std=c++20 -Wall -Wextra -I../include -I../../stream_frame/include \ + g++ -std=c++23 -Wall -Wextra -I../include -I../../stream_frame/include \ desktop_host_test.cpp -o desktop_host_test ./desktop_host_test desktop_vectors.txt diff --git a/components/adc/example/CMakeLists.txt b/components/adc/example/CMakeLists.txt index a7c6dc911d..412267a2a4 100644 --- a/components/adc/example/CMakeLists.txt +++ b/components/adc/example/CMakeLists.txt @@ -19,4 +19,4 @@ set( project(adc_example) -set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD 23) diff --git a/components/adrc/example/CMakeLists.txt b/components/adrc/example/CMakeLists.txt index 6a48bcb6ca..0052b9ce65 100755 --- a/components/adrc/example/CMakeLists.txt +++ b/components/adrc/example/CMakeLists.txt @@ -18,4 +18,4 @@ set( project(adrc_example) -set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD 23) diff --git a/components/ads1x15/example/CMakeLists.txt b/components/ads1x15/example/CMakeLists.txt index 31424a62ad..c16890d850 100644 --- a/components/ads1x15/example/CMakeLists.txt +++ b/components/ads1x15/example/CMakeLists.txt @@ -19,4 +19,4 @@ set( project(ads1x15_example) -set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD 23) diff --git a/components/ads7138/example/CMakeLists.txt b/components/ads7138/example/CMakeLists.txt index 6d1f116400..1ca454f6d8 100644 --- a/components/ads7138/example/CMakeLists.txt +++ b/components/ads7138/example/CMakeLists.txt @@ -19,4 +19,4 @@ set( project(ads7138_example) -set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD 23) diff --git a/components/adxl345/example/CMakeLists.txt b/components/adxl345/example/CMakeLists.txt index 329f63f5fb..49e3d0e1a3 100644 --- a/components/adxl345/example/CMakeLists.txt +++ b/components/adxl345/example/CMakeLists.txt @@ -19,4 +19,4 @@ set( project(adxl345_example) -set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD 23) diff --git a/components/as5600/example/CMakeLists.txt b/components/as5600/example/CMakeLists.txt index a721ca71d2..7bb71c9050 100644 --- a/components/as5600/example/CMakeLists.txt +++ b/components/as5600/example/CMakeLists.txt @@ -19,4 +19,4 @@ set( project(as5600_example) -set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD 23) diff --git a/components/at581x/example/CMakeLists.txt b/components/at581x/example/CMakeLists.txt index 3567db55f7..164b57d949 100644 --- a/components/at581x/example/CMakeLists.txt +++ b/components/at581x/example/CMakeLists.txt @@ -19,4 +19,4 @@ set( project(at581x_example) -set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD 23) diff --git a/components/aw9523/example/CMakeLists.txt b/components/aw9523/example/CMakeLists.txt index d66910aa94..fc5ab0a2f0 100644 --- a/components/aw9523/example/CMakeLists.txt +++ b/components/aw9523/example/CMakeLists.txt @@ -19,4 +19,4 @@ set( project(aw9523_example) -set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD 23) diff --git a/components/basicmicro/README.md b/components/basicmicro/README.md index b2c06006d0..12752bbeb2 100644 --- a/components/basicmicro/README.md +++ b/components/basicmicro/README.md @@ -76,5 +76,5 @@ duty-cycle ramp on motor 1 with encoder readback, and stop. The wire core is host-buildable and unit-tested without ESP-IDF: ```sh -c++ -std=c++20 -I include -o /tmp/bm_test test/basicmicro_host_test.cpp && /tmp/bm_test +c++ -std=c++23 -I include -o /tmp/bm_test test/basicmicro_host_test.cpp && /tmp/bm_test ``` diff --git a/components/basicmicro/example/CMakeLists.txt b/components/basicmicro/example/CMakeLists.txt index 33f1050d56..215e9162ba 100644 --- a/components/basicmicro/example/CMakeLists.txt +++ b/components/basicmicro/example/CMakeLists.txt @@ -16,4 +16,4 @@ set( project(basicmicro_example) -set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD 23) diff --git a/components/basicmicro/test/basicmicro_host_test.cpp b/components/basicmicro/test/basicmicro_host_test.cpp index e8e85fa40a..ec12129b6f 100644 --- a/components/basicmicro/test/basicmicro_host_test.cpp +++ b/components/basicmicro/test/basicmicro_host_test.cpp @@ -1,6 +1,6 @@ // Host-buildable unit tests for the Basicmicro (MCP / RoboClaw-family) packet // serial wire core. Build & run with: -// c++ -std=c++20 -I../include -I../../motor_controller/include \ +// c++ -std=c++23 -I../include -I../../motor_controller/include \ // basicmicro_host_test.cpp -o test && ./test // (the -I../../motor_controller/include is for the shared BasicmicroCommand table) // diff --git a/components/bdc_driver/example/CMakeLists.txt b/components/bdc_driver/example/CMakeLists.txt index 34eae59a18..cd969007de 100644 --- a/components/bdc_driver/example/CMakeLists.txt +++ b/components/bdc_driver/example/CMakeLists.txt @@ -18,4 +18,4 @@ set( project(bdc_driver_example) -set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD 23) diff --git a/components/binary-log/example/CMakeLists.txt b/components/binary-log/example/CMakeLists.txt index a98237e5a0..08bb41fee8 100644 --- a/components/binary-log/example/CMakeLists.txt +++ b/components/binary-log/example/CMakeLists.txt @@ -19,4 +19,4 @@ set( project(binary_log_example) -set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD 23) diff --git a/components/bldc_current_sense/example/CMakeLists.txt b/components/bldc_current_sense/example/CMakeLists.txt index dc5a3475a4..a0661fe578 100644 --- a/components/bldc_current_sense/example/CMakeLists.txt +++ b/components/bldc_current_sense/example/CMakeLists.txt @@ -19,4 +19,4 @@ set( project(bldc_current_sense_example) -set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD 23) diff --git a/components/bldc_motor/example/CMakeLists.txt b/components/bldc_motor/example/CMakeLists.txt index c7492099dd..80171c4f04 100644 --- a/components/bldc_motor/example/CMakeLists.txt +++ b/components/bldc_motor/example/CMakeLists.txt @@ -19,4 +19,4 @@ set( project(bldc_motor_example) -set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD 23) diff --git a/components/ble_gatt_server/example/CMakeLists.txt b/components/ble_gatt_server/example/CMakeLists.txt index 949d237ddc..413241409e 100644 --- a/components/ble_gatt_server/example/CMakeLists.txt +++ b/components/ble_gatt_server/example/CMakeLists.txt @@ -20,4 +20,4 @@ set( project(ble_gatt_server_example) -set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD 23) diff --git a/components/bm8563/example/CMakeLists.txt b/components/bm8563/example/CMakeLists.txt index 600fe0e341..9bcc343bdf 100644 --- a/components/bm8563/example/CMakeLists.txt +++ b/components/bm8563/example/CMakeLists.txt @@ -19,4 +19,4 @@ set( project(bm8563_example) -set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD 23) diff --git a/components/bmi270/example/CMakeLists.txt b/components/bmi270/example/CMakeLists.txt index 68d3bd464e..526c0a00c7 100644 --- a/components/bmi270/example/CMakeLists.txt +++ b/components/bmi270/example/CMakeLists.txt @@ -19,4 +19,4 @@ set( project(bmi270_example) -set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD 23) diff --git a/components/bq27220/example/CMakeLists.txt b/components/bq27220/example/CMakeLists.txt index 90daffe681..8bd57ce592 100644 --- a/components/bq27220/example/CMakeLists.txt +++ b/components/bq27220/example/CMakeLists.txt @@ -19,4 +19,4 @@ set( project(bq27220_example) -set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD 23) diff --git a/components/button/example/CMakeLists.txt b/components/button/example/CMakeLists.txt index c6ee327d03..69eac9a939 100644 --- a/components/button/example/CMakeLists.txt +++ b/components/button/example/CMakeLists.txt @@ -19,4 +19,4 @@ set( project(button_example) -set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD 23) diff --git a/components/byte90/example/CMakeLists.txt b/components/byte90/example/CMakeLists.txt index 5103a78119..58e9df6458 100644 --- a/components/byte90/example/CMakeLists.txt +++ b/components/byte90/example/CMakeLists.txt @@ -19,4 +19,4 @@ set( project(byte90_example) -set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD 23) diff --git a/components/canopen/README.md b/components/canopen/README.md index 6af1339ccd..840e6bab3d 100644 --- a/components/canopen/README.md +++ b/components/canopen/README.md @@ -35,7 +35,7 @@ SDO transactions are blocking with a configurable timeout; `process_frame()` must be called from a different task than the one performing SDO transfers (automatic with `espp::Twai`, whose `on_receive` runs in its own task). -The wire core (`include/detail/canopen_core.hpp`) is host-buildable pure C++20 +The wire core (`include/detail/canopen_core.hpp`) is host-buildable pure C++23 with no ESP dependencies, and is covered by golden-frame unit tests in `test/canopen_host_test.cpp`. diff --git a/components/canopen/can_bridge_example/CMakeLists.txt b/components/canopen/can_bridge_example/CMakeLists.txt index 4c2dced1a4..4d60000be9 100644 --- a/components/canopen/can_bridge_example/CMakeLists.txt +++ b/components/canopen/can_bridge_example/CMakeLists.txt @@ -55,4 +55,4 @@ set( project(can_bridge_example) -set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD 23) diff --git a/components/canopen/can_bridge_example/README.md b/components/canopen/can_bridge_example/README.md index 0a6bbff9af..98e7944d34 100644 --- a/components/canopen/can_bridge_example/README.md +++ b/components/canopen/can_bridge_example/README.md @@ -150,7 +150,7 @@ The node is host-buildable and unit-tested against the `canopen` component's client-side frame builders / parsers: ``` -cd test && c++ -std=c++20 -I../../include -I../main simulated_node_host_test.cpp -o test && ./test +cd test && c++ -std=c++23 -I../../include -I../main simulated_node_host_test.cpp -o test && ./test ``` The simulation has no bit timing, so the baudrate is only reported; in diff --git a/components/canopen/can_bridge_example/test/simulated_node_host_test.cpp b/components/canopen/can_bridge_example/test/simulated_node_host_test.cpp index bb69341fb3..95da306dfa 100644 --- a/components/canopen/can_bridge_example/test/simulated_node_host_test.cpp +++ b/components/canopen/can_bridge_example/test/simulated_node_host_test.cpp @@ -1,6 +1,6 @@ // Host-buildable tests for the bridge example's simulated CiA 402 node // (main/simulated_ds402_node.hpp). Build & run with: -// c++ -std=c++20 -I../../include -I../main simulated_node_host_test.cpp -o test && ./test +// c++ -std=c++23 -I../../include -I../main simulated_node_host_test.cpp -o test && ./test // // The node is driven with the canopen component's client-side frame builders // / parsers, so a passing run means espp::CanopenClient / Ds402Drive (and the diff --git a/components/canopen/example/CMakeLists.txt b/components/canopen/example/CMakeLists.txt index ca86c2ad30..96325387b4 100644 --- a/components/canopen/example/CMakeLists.txt +++ b/components/canopen/example/CMakeLists.txt @@ -19,4 +19,4 @@ set( project(canopen_example) -set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD 23) diff --git a/components/canopen/test/canopen_host_test.cpp b/components/canopen/test/canopen_host_test.cpp index 2578b09e57..fdfe42eddd 100644 --- a/components/canopen/test/canopen_host_test.cpp +++ b/components/canopen/test/canopen_host_test.cpp @@ -1,6 +1,6 @@ // Host-buildable unit tests for the CANopen (CiA 301) wire core and the // CiA 402 statusword decoding. Build & run with: -// c++ -std=c++20 -I../include canopen_host_test.cpp -o test && ./test +// c++ -std=c++23 -I../include canopen_host_test.cpp -o test && ./test // // These tests exercise espp::detail::canopen / espp::detail::ds402 directly so // they need no ESP-IDF headers. diff --git a/components/chsc6x/example/CMakeLists.txt b/components/chsc6x/example/CMakeLists.txt index 01a98d3c73..539efdeb7e 100644 --- a/components/chsc6x/example/CMakeLists.txt +++ b/components/chsc6x/example/CMakeLists.txt @@ -19,4 +19,4 @@ set( project(chsc6x_example) -set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD 23) diff --git a/components/cli/example/CMakeLists.txt b/components/cli/example/CMakeLists.txt index 8ded9e5f2d..6324946cd1 100644 --- a/components/cli/example/CMakeLists.txt +++ b/components/cli/example/CMakeLists.txt @@ -19,4 +19,4 @@ set( project(cli_example) -set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD 23) diff --git a/components/cobs/example/CMakeLists.txt b/components/cobs/example/CMakeLists.txt index 348c66b708..59f98a9b29 100644 --- a/components/cobs/example/CMakeLists.txt +++ b/components/cobs/example/CMakeLists.txt @@ -19,4 +19,4 @@ set( project(cobs_example) -set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD 23) diff --git a/components/color/example/CMakeLists.txt b/components/color/example/CMakeLists.txt index ba7c04efef..53d7fbed52 100644 --- a/components/color/example/CMakeLists.txt +++ b/components/color/example/CMakeLists.txt @@ -19,4 +19,4 @@ set( project(color_example) -set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD 23) diff --git a/components/controller/example/CMakeLists.txt b/components/controller/example/CMakeLists.txt index 8956a0ed74..9b8d0ce2df 100644 --- a/components/controller/example/CMakeLists.txt +++ b/components/controller/example/CMakeLists.txt @@ -19,4 +19,4 @@ set( project(controller_example) -set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD 23) diff --git a/components/cst816/example/CMakeLists.txt b/components/cst816/example/CMakeLists.txt index 07356b02cf..99518eaba6 100644 --- a/components/cst816/example/CMakeLists.txt +++ b/components/cst816/example/CMakeLists.txt @@ -19,4 +19,4 @@ set( project(cst816_example) -set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD 23) diff --git a/components/csv/example/CMakeLists.txt b/components/csv/example/CMakeLists.txt index d3de5a25fa..f850a0cee5 100644 --- a/components/csv/example/CMakeLists.txt +++ b/components/csv/example/CMakeLists.txt @@ -19,4 +19,4 @@ set( project(csv_example) -set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD 23) diff --git a/components/desktop/example/CMakeLists.txt b/components/desktop/example/CMakeLists.txt index b2c15fafd2..8f84691b51 100644 --- a/components/desktop/example/CMakeLists.txt +++ b/components/desktop/example/CMakeLists.txt @@ -2,7 +2,7 @@ # in this exact order for cmake to work correctly cmake_minimum_required(VERSION 3.20) -set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD 23) # This example needs the managed `espressif/esp_tinyusb` component (required by # usb_device) and `joltwallet/littlefs` (required by file_system). It supports diff --git a/components/desktop/test/desktop_host_test.cpp b/components/desktop/test/desktop_host_test.cpp index 42414b3932..2cd4c5d072 100644 --- a/components/desktop/test/desktop_host_test.cpp +++ b/components/desktop/test/desktop_host_test.cpp @@ -1,7 +1,7 @@ // Host-buildable unit tests for the espp desktop wire codec // (include/detail/desktop_protocol.hpp) and the ESP-free desktop model // (include/detail/desktop_model.hpp). Build & run from this directory with: -// c++ -std=c++20 -I../include -I../../stream_frame/include desktop_host_test.cpp -o test && +// c++ -std=c++23 -I../include -I../../stream_frame/include desktop_host_test.cpp -o test && // ./test // // The golden vectors live in desktop_vectors.txt (shared with the web app's diff --git a/components/dispatcher/README.md b/components/dispatcher/README.md index bd44683c24..8463f2d455 100644 --- a/components/dispatcher/README.md +++ b/components/dispatcher/README.md @@ -213,7 +213,7 @@ reported as a warning, not refused. ## Host tests ``` -c++ -std=c++20 -Werror -I components/dispatcher/include -I components/stream_frame/include \ +c++ -std=c++23 -Werror -I components/dispatcher/include -I components/stream_frame/include \ components/dispatcher/test/dispatcher_host_test.cpp -o test && ./test node components/dispatcher/web/test/resolve_module_id_test.js # the consoles' shared discovery helpers node components/dispatcher/web/test/apps_registry_test.js # app metadata, registry generator, hub app matching diff --git a/components/dispatcher/example/CMakeLists.txt b/components/dispatcher/example/CMakeLists.txt index e9fc7f974a..c9260a228a 100644 --- a/components/dispatcher/example/CMakeLists.txt +++ b/components/dispatcher/example/CMakeLists.txt @@ -19,4 +19,4 @@ set( project(dispatcher_example) -set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD 23) diff --git a/components/dispatcher/test/dispatcher_host_test.cpp b/components/dispatcher/test/dispatcher_host_test.cpp index 011da6e5ea..cd7d0a6377 100644 --- a/components/dispatcher/test/dispatcher_host_test.cpp +++ b/components/dispatcher/test/dispatcher_host_test.cpp @@ -1,5 +1,5 @@ // Host-buildable unit tests for espp::Dispatcher (v2). Build & run with: -// c++ -std=c++20 -Werror -I components/dispatcher/include \ +// c++ -std=c++23 -Werror -I components/dispatcher/include \ // -I components/stream_frame/include \ // components/dispatcher/test/dispatcher_host_test.cpp -o test && ./test // diff --git a/components/display_drivers/example/CMakeLists.txt b/components/display_drivers/example/CMakeLists.txt index 8a6e118202..e6c1a90930 100644 --- a/components/display_drivers/example/CMakeLists.txt +++ b/components/display_drivers/example/CMakeLists.txt @@ -19,4 +19,4 @@ set( project(display_drivers_example) -set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD 23) diff --git a/components/dns_server/example/CMakeLists.txt b/components/dns_server/example/CMakeLists.txt index 98297575a8..a9b8e1c37d 100644 --- a/components/dns_server/example/CMakeLists.txt +++ b/components/dns_server/example/CMakeLists.txt @@ -19,4 +19,4 @@ set( project(dns_server_example) -set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD 23) diff --git a/components/drv2605/example/CMakeLists.txt b/components/drv2605/example/CMakeLists.txt index 9ec61fee17..7b181b6a86 100644 --- a/components/drv2605/example/CMakeLists.txt +++ b/components/drv2605/example/CMakeLists.txt @@ -19,4 +19,4 @@ set( project(drv2605_example) -set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD 23) diff --git a/components/encoder/example/CMakeLists.txt b/components/encoder/example/CMakeLists.txt index 6cdd54f914..0c59d65b64 100644 --- a/components/encoder/example/CMakeLists.txt +++ b/components/encoder/example/CMakeLists.txt @@ -19,4 +19,4 @@ set( project(encoder_example) -set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD 23) diff --git a/components/esp-box/example/CMakeLists.txt b/components/esp-box/example/CMakeLists.txt index ea71a158ac..56e8a41897 100644 --- a/components/esp-box/example/CMakeLists.txt +++ b/components/esp-box/example/CMakeLists.txt @@ -19,4 +19,4 @@ set( project(esp_box_example) -set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD 23) diff --git a/components/esp32-ethernet-kit/example/CMakeLists.txt b/components/esp32-ethernet-kit/example/CMakeLists.txt index 67f753320f..e37f961a06 100644 --- a/components/esp32-ethernet-kit/example/CMakeLists.txt +++ b/components/esp32-ethernet-kit/example/CMakeLists.txt @@ -19,4 +19,4 @@ set( project(esp32_ethernet_kit_example) -set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD 23) diff --git a/components/esp32-p4-eth/example/CMakeLists.txt b/components/esp32-p4-eth/example/CMakeLists.txt index 530287ee79..c2cc14d957 100644 --- a/components/esp32-p4-eth/example/CMakeLists.txt +++ b/components/esp32-p4-eth/example/CMakeLists.txt @@ -45,4 +45,4 @@ set( project(esp32_p4_eth_example) -set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD 23) diff --git a/components/esp32-p4-function-ev-board/example/CMakeLists.txt b/components/esp32-p4-function-ev-board/example/CMakeLists.txt index d2e9e6fc2f..832f90a181 100644 --- a/components/esp32-p4-function-ev-board/example/CMakeLists.txt +++ b/components/esp32-p4-function-ev-board/example/CMakeLists.txt @@ -19,4 +19,4 @@ set( project(esp32_p4_function_ev_board_example) -set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD 23) diff --git a/components/esp32-p4-nano/example/CMakeLists.txt b/components/esp32-p4-nano/example/CMakeLists.txt index 1edab382dd..3db4c9a7cb 100644 --- a/components/esp32-p4-nano/example/CMakeLists.txt +++ b/components/esp32-p4-nano/example/CMakeLists.txt @@ -45,4 +45,4 @@ set( project(esp32_p4_nano_example) -set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD 23) diff --git a/components/esp32-timer-cam/example/CMakeLists.txt b/components/esp32-timer-cam/example/CMakeLists.txt index 545552852c..51913eba25 100644 --- a/components/esp32-timer-cam/example/CMakeLists.txt +++ b/components/esp32-timer-cam/example/CMakeLists.txt @@ -30,7 +30,7 @@ set( project(esp_timer_cam_example) -set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD 23) # The mDNS component (espressif/mdns from the registry, or the vendored copy) # trips -Werror=stringop-truncation under the ESP-IDF v6 toolchain (GCC 15). It diff --git a/components/ethernet/example/CMakeLists.txt b/components/ethernet/example/CMakeLists.txt index d89ac12916..3033ff95db 100644 --- a/components/ethernet/example/CMakeLists.txt +++ b/components/ethernet/example/CMakeLists.txt @@ -19,4 +19,4 @@ set( project(ethernet_example) -set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD 23) diff --git a/components/event_manager/example/CMakeLists.txt b/components/event_manager/example/CMakeLists.txt index 52b76feb19..8e99174059 100644 --- a/components/event_manager/example/CMakeLists.txt +++ b/components/event_manager/example/CMakeLists.txt @@ -19,4 +19,4 @@ set( project(event_manager_example) -set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD 23) diff --git a/components/expressive_eyes/example/CMakeLists.txt b/components/expressive_eyes/example/CMakeLists.txt index e27295bc2b..7a80fa44ec 100644 --- a/components/expressive_eyes/example/CMakeLists.txt +++ b/components/expressive_eyes/example/CMakeLists.txt @@ -19,4 +19,4 @@ set( project(expressive_eyes_example) -set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD 23) diff --git a/components/file_system/example/CMakeLists.txt b/components/file_system/example/CMakeLists.txt index 6aea2b1d98..cd0f173269 100644 --- a/components/file_system/example/CMakeLists.txt +++ b/components/file_system/example/CMakeLists.txt @@ -19,4 +19,4 @@ set( project(file_system_example) -set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD 23) diff --git a/components/filters/example/CMakeLists.txt b/components/filters/example/CMakeLists.txt index 487570fabf..ab51516658 100644 --- a/components/filters/example/CMakeLists.txt +++ b/components/filters/example/CMakeLists.txt @@ -19,4 +19,4 @@ set( project(filters_example) -set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD 23) diff --git a/components/ft5x06/example/CMakeLists.txt b/components/ft5x06/example/CMakeLists.txt index 0a809136e5..0c8ccae8b7 100644 --- a/components/ft5x06/example/CMakeLists.txt +++ b/components/ft5x06/example/CMakeLists.txt @@ -19,4 +19,4 @@ set( project(ft5x06_example) -set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD 23) diff --git a/components/ftp/example/CMakeLists.txt b/components/ftp/example/CMakeLists.txt index 37c11db39b..930953afa5 100644 --- a/components/ftp/example/CMakeLists.txt +++ b/components/ftp/example/CMakeLists.txt @@ -19,4 +19,4 @@ set( project(ftp_example) -set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD 23) diff --git a/components/gfps_service/example/CMakeLists.txt b/components/gfps_service/example/CMakeLists.txt index adfe2c50f5..22c7f00850 100644 --- a/components/gfps_service/example/CMakeLists.txt +++ b/components/gfps_service/example/CMakeLists.txt @@ -20,4 +20,4 @@ set( project(gfps_service_example) -set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD 23) diff --git a/components/gps/example/CMakeLists.txt b/components/gps/example/CMakeLists.txt index 33a02c5da9..3ea1d09685 100755 --- a/components/gps/example/CMakeLists.txt +++ b/components/gps/example/CMakeLists.txt @@ -22,4 +22,4 @@ set( project(gps_example) -set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD 23) diff --git a/components/gt911/example/CMakeLists.txt b/components/gt911/example/CMakeLists.txt index 725be26b18..738e0763dd 100644 --- a/components/gt911/example/CMakeLists.txt +++ b/components/gt911/example/CMakeLists.txt @@ -19,4 +19,4 @@ set( project(gt911_example) -set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD 23) diff --git a/components/hid-rp/example/CMakeLists.txt b/components/hid-rp/example/CMakeLists.txt index b6807167db..3eef26648a 100644 --- a/components/hid-rp/example/CMakeLists.txt +++ b/components/hid-rp/example/CMakeLists.txt @@ -20,4 +20,4 @@ set( project(hid_rp_example) -set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD 23) diff --git a/components/hid-rp/test/hid_rp_3dconnexion_host_test.cpp b/components/hid-rp/test/hid_rp_3dconnexion_host_test.cpp index a1af0687be..1bac6d5432 100644 --- a/components/hid-rp/test/hid_rp_3dconnexion_host_test.cpp +++ b/components/hid-rp/test/hid_rp_3dconnexion_host_test.cpp @@ -3,7 +3,7 @@ // intergatedcircuits/hid-rp headers it wraps) are not -Werror clean, so they // are pulled in via -isystem. Build & run: // -// c++ -std=c++20 -Wall -Wextra -Werror \ +// c++ -std=c++23 -Wall -Wextra -Werror \ // -isystem components/hid-rp/include \ // -isystem components/hid-rp/detail/hid-rp/hid-rp \ // -isystem components/format/include \ diff --git a/components/hid-rp/test/hid_rp_gamepad_host_test.cpp b/components/hid-rp/test/hid_rp_gamepad_host_test.cpp index cb48a4048d..1cd08e7856 100644 --- a/components/hid-rp/test/hid_rp_gamepad_host_test.cpp +++ b/components/hid-rp/test/hid_rp_gamepad_host_test.cpp @@ -5,7 +5,7 @@ // hid-rp's own headers (and the intergatedcircuits/hid-rp headers it wraps) // are not -Werror clean, so they are pulled in via -isystem. Build & run: // -// c++ -std=c++20 -Wall -Wextra -Werror \ +// c++ -std=c++23 -Wall -Wextra -Werror \ // -isystem components/hid-rp/include \ // -isystem components/hid-rp/detail/hid-rp/hid-rp \ // -isystem components/format/include \ diff --git a/components/hid-rp/test/hid_rp_report_map_host_test.cpp b/components/hid-rp/test/hid_rp_report_map_host_test.cpp index ad8bdfdd60..7cbcbbdf17 100644 --- a/components/hid-rp/test/hid_rp_report_map_host_test.cpp +++ b/components/hid-rp/test/hid_rp_report_map_host_test.cpp @@ -1,7 +1,7 @@ // Host-buildable unit tests for the runtime report map / decoders // (hid-rp-report-map.hpp). Build & run: // -// c++ -std=c++20 -Wall -Wextra -Werror \ +// c++ -std=c++23 -Wall -Wextra -Werror \ // -isystem components/hid-rp/include \ // -isystem components/hid-rp/detail/hid-rp/hid-rp \ // -isystem components/format/include \ diff --git a/components/hid_service/example/CMakeLists.txt b/components/hid_service/example/CMakeLists.txt index 815f942b0b..085fd7442d 100644 --- a/components/hid_service/example/CMakeLists.txt +++ b/components/hid_service/example/CMakeLists.txt @@ -20,4 +20,4 @@ set( project(hid_service_example) -set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD 23) diff --git a/components/i2c/example/CMakeLists.txt b/components/i2c/example/CMakeLists.txt index 2b42cccc2c..57899fee38 100644 --- a/components/i2c/example/CMakeLists.txt +++ b/components/i2c/example/CMakeLists.txt @@ -19,4 +19,4 @@ set( project(i2c_example) -set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD 23) diff --git a/components/icm20948/example/CMakeLists.txt b/components/icm20948/example/CMakeLists.txt index 0355e9f2f5..c8a087fc73 100644 --- a/components/icm20948/example/CMakeLists.txt +++ b/components/icm20948/example/CMakeLists.txt @@ -19,4 +19,4 @@ set( project(icm20948_example) -set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD 23) diff --git a/components/icm42607/example/CMakeLists.txt b/components/icm42607/example/CMakeLists.txt index 75f37a91c1..22763f7265 100644 --- a/components/icm42607/example/CMakeLists.txt +++ b/components/icm42607/example/CMakeLists.txt @@ -19,4 +19,4 @@ set( project(icm42607_example) -set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD 23) diff --git a/components/ina226/example/CMakeLists.txt b/components/ina226/example/CMakeLists.txt index 60f2efd173..157514a798 100644 --- a/components/ina226/example/CMakeLists.txt +++ b/components/ina226/example/CMakeLists.txt @@ -19,6 +19,6 @@ set( project(ina226_example) -set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD 23) diff --git a/components/interrupt/example/CMakeLists.txt b/components/interrupt/example/CMakeLists.txt index 4b5fa4a140..63549f6624 100644 --- a/components/interrupt/example/CMakeLists.txt +++ b/components/interrupt/example/CMakeLists.txt @@ -19,4 +19,4 @@ set( project(interrupt_example) -set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD 23) diff --git a/components/iperf_menu/example/CMakeLists.txt b/components/iperf_menu/example/CMakeLists.txt index cfd4811b8f..e7f36bbc39 100644 --- a/components/iperf_menu/example/CMakeLists.txt +++ b/components/iperf_menu/example/CMakeLists.txt @@ -23,4 +23,4 @@ set( project(iperf_menu_example) -set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD 23) diff --git a/components/joystick/example/CMakeLists.txt b/components/joystick/example/CMakeLists.txt index 69d2c021d9..1b4df0f0fe 100644 --- a/components/joystick/example/CMakeLists.txt +++ b/components/joystick/example/CMakeLists.txt @@ -19,4 +19,4 @@ set( project(joystick_example) -set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD 23) diff --git a/components/kts1622/example/CMakeLists.txt b/components/kts1622/example/CMakeLists.txt index 5fa771b3be..d520ee6522 100644 --- a/components/kts1622/example/CMakeLists.txt +++ b/components/kts1622/example/CMakeLists.txt @@ -19,4 +19,4 @@ set( project(kts1622_example) -set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD 23) diff --git a/components/led/example/CMakeLists.txt b/components/led/example/CMakeLists.txt index be73b4beb5..1346bedf2b 100644 --- a/components/led/example/CMakeLists.txt +++ b/components/led/example/CMakeLists.txt @@ -19,4 +19,4 @@ set( project(led_example) -set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD 23) diff --git a/components/led_strip/example/CMakeLists.txt b/components/led_strip/example/CMakeLists.txt index bdf1005614..7f0766fcdc 100644 --- a/components/led_strip/example/CMakeLists.txt +++ b/components/led_strip/example/CMakeLists.txt @@ -19,4 +19,4 @@ set( project(led_strip_example) -set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD 23) diff --git a/components/lilygo-t5-47/example/CMakeLists.txt b/components/lilygo-t5-47/example/CMakeLists.txt index 270fc2f273..4b06f5627c 100644 --- a/components/lilygo-t5-47/example/CMakeLists.txt +++ b/components/lilygo-t5-47/example/CMakeLists.txt @@ -37,4 +37,4 @@ set( project(lilygo_t5_47_example) -set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD 23) diff --git a/components/logger/example/CMakeLists.txt b/components/logger/example/CMakeLists.txt index 02b5e6cde3..5dd41f765f 100644 --- a/components/logger/example/CMakeLists.txt +++ b/components/logger/example/CMakeLists.txt @@ -21,4 +21,4 @@ set( project(logger_example) -set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD 23) diff --git a/components/lp5817/example/CMakeLists.txt b/components/lp5817/example/CMakeLists.txt index 3396fe8912..cac8fe8ba9 100644 --- a/components/lp5817/example/CMakeLists.txt +++ b/components/lp5817/example/CMakeLists.txt @@ -16,4 +16,4 @@ set( project(lp5817_example) -set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD 23) diff --git a/components/lsm6dso/example/CMakeLists.txt b/components/lsm6dso/example/CMakeLists.txt index 65ddf16c17..68fc89ca40 100644 --- a/components/lsm6dso/example/CMakeLists.txt +++ b/components/lsm6dso/example/CMakeLists.txt @@ -19,4 +19,4 @@ set( project(lsm6dso_example) -set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD 23) diff --git a/components/m5stack-cardputer/example/CMakeLists.txt b/components/m5stack-cardputer/example/CMakeLists.txt index e56e8f341b..340404e4f1 100644 --- a/components/m5stack-cardputer/example/CMakeLists.txt +++ b/components/m5stack-cardputer/example/CMakeLists.txt @@ -19,4 +19,4 @@ set( project(m5stack_cardputer_example) -set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD 23) diff --git a/components/m5stack-tab5/example/CMakeLists.txt b/components/m5stack-tab5/example/CMakeLists.txt index 408fc6bd6f..654a8be160 100644 --- a/components/m5stack-tab5/example/CMakeLists.txt +++ b/components/m5stack-tab5/example/CMakeLists.txt @@ -55,4 +55,4 @@ set( project(m5stack_tab5_example) -set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD 23) diff --git a/components/math/example/CMakeLists.txt b/components/math/example/CMakeLists.txt index c7e3523039..bd859fb2a1 100644 --- a/components/math/example/CMakeLists.txt +++ b/components/math/example/CMakeLists.txt @@ -25,4 +25,4 @@ set( project(math_example) -set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD 23) diff --git a/components/matouch-rotary-display/example/CMakeLists.txt b/components/matouch-rotary-display/example/CMakeLists.txt index 2bb67c1495..9477445c47 100644 --- a/components/matouch-rotary-display/example/CMakeLists.txt +++ b/components/matouch-rotary-display/example/CMakeLists.txt @@ -19,4 +19,4 @@ set( project(matouch_rotary_display_example) -set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD 23) diff --git a/components/max1704x/example/CMakeLists.txt b/components/max1704x/example/CMakeLists.txt index b06d85a506..da8444dba4 100644 --- a/components/max1704x/example/CMakeLists.txt +++ b/components/max1704x/example/CMakeLists.txt @@ -19,4 +19,4 @@ set( project(max1704x_example) -set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD 23) diff --git a/components/mcp23x17/example/CMakeLists.txt b/components/mcp23x17/example/CMakeLists.txt index 1ba2fccf3d..f762c3595e 100644 --- a/components/mcp23x17/example/CMakeLists.txt +++ b/components/mcp23x17/example/CMakeLists.txt @@ -19,4 +19,4 @@ set( project(mcp23x17_example) -set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD 23) diff --git a/components/mcp266/example/CMakeLists.txt b/components/mcp266/example/CMakeLists.txt index f8b767656c..1d26abfa49 100644 --- a/components/mcp266/example/CMakeLists.txt +++ b/components/mcp266/example/CMakeLists.txt @@ -19,4 +19,4 @@ set( project(mcp266_example) -set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD 23) diff --git a/components/mcp266/test/mcp266_host_test.cpp b/components/mcp266/test/mcp266_host_test.cpp index 8e6cf16899..14eca47796 100644 --- a/components/mcp266/test/mcp266_host_test.cpp +++ b/components/mcp266/test/mcp266_host_test.cpp @@ -1,5 +1,5 @@ // Host-buildable unit tests for the MCP266 CANopen mapping core. Build & run: -// c++ -std=c++20 -I../include -I../../motor_controller/include \ +// c++ -std=c++23 -I../include -I../../motor_controller/include \ // mcp266_host_test.cpp -o test && ./test // (the -I../../motor_controller/include is for the shared BasicmicroCommand table) // diff --git a/components/mcp266/test/mcp266_protocol_host_test.cpp b/components/mcp266/test/mcp266_protocol_host_test.cpp index 56c4532750..0431daa690 100644 --- a/components/mcp266/test/mcp266_protocol_host_test.cpp +++ b/components/mcp266/test/mcp266_protocol_host_test.cpp @@ -1,6 +1,6 @@ // Host-buildable unit tests for the MCP266 console wire protocol // (include/mcp266_protocol.hpp -- standard library only). Build & run: -// c++ -std=c++20 -Wall -Wextra -Werror -I components/mcp266/include \ +// c++ -std=c++23 -Wall -Wextra -Werror -I components/mcp266/include \ // components/mcp266/test/mcp266_protocol_host_test.cpp -o test && ./test #include diff --git a/components/mcp266/webapp_example/CMakeLists.txt b/components/mcp266/webapp_example/CMakeLists.txt index afeab7c642..303c22e66a 100644 --- a/components/mcp266/webapp_example/CMakeLists.txt +++ b/components/mcp266/webapp_example/CMakeLists.txt @@ -57,4 +57,4 @@ set( project(mcp266_webapp_example) -set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD 23) diff --git a/components/meshtastic/example/CMakeLists.txt b/components/meshtastic/example/CMakeLists.txt index e9c22973b9..04dc8cb5b7 100755 --- a/components/meshtastic/example/CMakeLists.txt +++ b/components/meshtastic/example/CMakeLists.txt @@ -22,4 +22,4 @@ set( project(meshtastic_example) -set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD 23) diff --git a/components/monitor/example/CMakeLists.txt b/components/monitor/example/CMakeLists.txt index 5ee22af045..7342d616e9 100644 --- a/components/monitor/example/CMakeLists.txt +++ b/components/monitor/example/CMakeLists.txt @@ -19,4 +19,4 @@ set( project(monitor_example) -set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD 23) diff --git a/components/monitor/test/monitor_host_test.cpp b/components/monitor/test/monitor_host_test.cpp index 84ff8893c7..3c8cf63f45 100644 --- a/components/monitor/test/monitor_host_test.cpp +++ b/components/monitor/test/monitor_host_test.cpp @@ -1,6 +1,6 @@ // Host-buildable unit tests for the MonitorService wire codec // (include/detail/monitor_protocol.hpp). Build & run with: -// c++ -std=c++20 -I../include -I../../stream_frame/include monitor_host_test.cpp -o test && +// c++ -std=c++23 -I../include -I../../stream_frame/include monitor_host_test.cpp -o test && // ./test // // The codec needs no ESP-IDF headers; these are golden encode/decode tests so diff --git a/components/motorgo-axis/example/CMakeLists.txt b/components/motorgo-axis/example/CMakeLists.txt index 50ea15ca31..4b92277d57 100755 --- a/components/motorgo-axis/example/CMakeLists.txt +++ b/components/motorgo-axis/example/CMakeLists.txt @@ -18,4 +18,4 @@ set( project(motorgo_axis_example) -set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD 23) diff --git a/components/motorgo-mini/example/CMakeLists.txt b/components/motorgo-mini/example/CMakeLists.txt index 008783b064..add7e00918 100644 --- a/components/motorgo-mini/example/CMakeLists.txt +++ b/components/motorgo-mini/example/CMakeLists.txt @@ -19,4 +19,4 @@ set( project(motorgo_mini_example) -set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD 23) diff --git a/components/motorgo-plink/example/CMakeLists.txt b/components/motorgo-plink/example/CMakeLists.txt index 65646b1b42..73fd2d0daa 100644 --- a/components/motorgo-plink/example/CMakeLists.txt +++ b/components/motorgo-plink/example/CMakeLists.txt @@ -18,4 +18,4 @@ set( project(motorgo_plink_example) -set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD 23) diff --git a/components/mt6701/example/CMakeLists.txt b/components/mt6701/example/CMakeLists.txt index f4bb4333f3..6466d8d026 100644 --- a/components/mt6701/example/CMakeLists.txt +++ b/components/mt6701/example/CMakeLists.txt @@ -19,4 +19,4 @@ set( project(mt6701_example) -set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD 23) diff --git a/components/neopixel/example/CMakeLists.txt b/components/neopixel/example/CMakeLists.txt index 1856199840..ca53675846 100644 --- a/components/neopixel/example/CMakeLists.txt +++ b/components/neopixel/example/CMakeLists.txt @@ -19,4 +19,4 @@ set( project(neopixel_example) -set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD 23) diff --git a/components/nvs/example/CMakeLists.txt b/components/nvs/example/CMakeLists.txt index 34b732ea40..e77cc609f2 100644 --- a/components/nvs/example/CMakeLists.txt +++ b/components/nvs/example/CMakeLists.txt @@ -21,4 +21,4 @@ set( project(nvs_example) -set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD 23) diff --git a/components/odrive_ascii/example/CMakeLists.txt b/components/odrive_ascii/example/CMakeLists.txt index c7f25d61a8..32cce6a9f6 100644 --- a/components/odrive_ascii/example/CMakeLists.txt +++ b/components/odrive_ascii/example/CMakeLists.txt @@ -16,4 +16,4 @@ set( project(odrive_ascii_example) -set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD 23) diff --git a/components/odrive_native/example/CMakeLists.txt b/components/odrive_native/example/CMakeLists.txt index fd21dd36ff..1e93836297 100644 --- a/components/odrive_native/example/CMakeLists.txt +++ b/components/odrive_native/example/CMakeLists.txt @@ -16,4 +16,4 @@ set( project(odrive_native_example) -set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD 23) diff --git a/components/odrive_native/interop/README.md b/components/odrive_native/interop/README.md index af12f9a96b..3fac6f7415 100644 --- a/components/odrive_native/interop/README.md +++ b/components/odrive_native/interop/README.md @@ -12,7 +12,7 @@ endpoint 0, enumerates the object tree, and reads/writes endpoints. - `odrive_native_interop_device.cpp` — host device shim. Opens a PTY (or a serial path arg), registers a small ODrive-like tree on an `OdriveNativeCore`, and runs the serve loop: stream bytes → `StreamDeframer` → `process_bytes` → `stream_frame` - → write. Uses only the host-buildable `detail/` headers (plain `c++ -std=c++20`, + → write. Uses only the host-buildable `detail/` headers (plain `c++ -std=c++23`, no espp lib). Prints `PTY_SLAVE ` on startup. - `odrive_fibre_client.py` — drives the real reference fibre library (`find_any("serial:")`): connect, enumerate the tree, read a value, diff --git a/components/odrive_native/interop/odrive_native_interop_device.cpp b/components/odrive_native/interop/odrive_native_interop_device.cpp index d90eb1bfcb..3562020337 100644 --- a/components/odrive_native/interop/odrive_native_interop_device.cpp +++ b/components/odrive_native/interop/odrive_native_interop_device.cpp @@ -7,7 +7,7 @@ // // It uses ONLY the host-buildable detail/ headers (OdriveNativeCore for the packet // codec + JSON descriptor, StreamDeframer/stream_frame for the UART framing) so it -// builds with a plain `c++ -std=c++20` -- no BaseComponent, no espp lib link. +// builds with a plain `c++ -std=c++23` -- no BaseComponent, no espp lib link. // // Transport: opens a pseudo-terminal (posix_openpt/grantpt/unlockpt/ptsname) and // prints the slave path, OR uses a serial device path given as argv[1]. The read @@ -16,7 +16,7 @@ // framed packet stays <= 127 bytes (the stream cap); the client's chunked read // loop advances by the bytes it actually receives, so truncation is safe. // -// Build: c++ -std=c++20 -I../include odrive_native_interop_device.cpp -o device +// Build: c++ -std=c++23 -I../include odrive_native_interop_device.cpp -o device // Run: ./device # opens a PTY, prints the slave path // ./device /dev/ttyS0 # uses an existing serial device diff --git a/components/odrive_native/interop/run.sh b/components/odrive_native/interop/run.sh index 8fc81dbc54..e42609bc0f 100755 --- a/components/odrive_native/interop/run.sh +++ b/components/odrive_native/interop/run.sh @@ -3,7 +3,7 @@ # Usage: ./run.sh (from components/odrive_native/interop) # # Unlike the rtps interop (which needs a ROS 2 / FastDDS container), this test -# needs only a C++20 compiler, python3, and network access to fetch the reference +# needs only a C++23 compiler, python3, and network access to fetch the reference # fibre client, so it runs directly on the host -- no Docker required. set -euo pipefail cd "$(dirname "$0")" diff --git a/components/odrive_native/interop/run_interop.sh b/components/odrive_native/interop/run_interop.sh index 7a13241f0f..0904e9bd82 100755 --- a/components/odrive_native/interop/run_interop.sh +++ b/components/odrive_native/interop/run_interop.sh @@ -36,15 +36,15 @@ result() { # name exit_code CXX="${CXX:-c++}" # --- 1. Build golden tests + device shim ------------------------------------ -note "Build golden host tests + device shim ($CXX -std=c++20)" +note "Build golden host tests + device shim ($CXX -std=c++23)" build_rc=0 -"$CXX" -std=c++20 -I"$INC" "$COMPONENT_DIR/test/odrive_native_host_test.cpp" \ +"$CXX" -std=c++23 -I"$INC" "$COMPONENT_DIR/test/odrive_native_host_test.cpp" \ -o "$WORK/host_test" || build_rc=1 -"$CXX" -std=c++20 -I"$INC" "$COMPONENT_DIR/test/odrive_native_stream_test.cpp" \ +"$CXX" -std=c++23 -I"$INC" "$COMPONENT_DIR/test/odrive_native_stream_test.cpp" \ -o "$WORK/stream_test" || build_rc=1 -"$CXX" -std=c++20 -I"$INC" "$INTEROP_DIR/../../../pc/tests/odrive_native_golden.cpp" \ +"$CXX" -std=c++23 -I"$INC" "$INTEROP_DIR/../../../pc/tests/odrive_native_golden.cpp" \ -o "$WORK/golden" || build_rc=1 -"$CXX" -std=c++20 -I"$INC" "$INTEROP_DIR/odrive_native_interop_device.cpp" \ +"$CXX" -std=c++23 -I"$INC" "$INTEROP_DIR/odrive_native_interop_device.cpp" \ -o "$WORK/device" || build_rc=1 result "build" $build_rc if [ $build_rc -ne 0 ]; then diff --git a/components/odrive_native/python/tests/test_odrive.py b/components/odrive_native/python/tests/test_odrive.py index 1c762beff6..67daacdbcd 100755 --- a/components/odrive_native/python/tests/test_odrive.py +++ b/components/odrive_native/python/tests/test_odrive.py @@ -66,7 +66,7 @@ def test_stream_roundtrip(): def _build_device(workdir): out = os.path.join(workdir, "odrive_native_device") cxx = os.environ.get("CXX", "c++") - cmd = [cxx, "-std=c++20", "-I", INCLUDE, DEVICE_SRC, "-o", out] + cmd = [cxx, "-std=c++23", "-I", INCLUDE, DEVICE_SRC, "-o", out] log("building device shim: " + " ".join(cmd)) subprocess.run(cmd, check=True) return out diff --git a/components/odrive_native/test/odrive_native_host_test.cpp b/components/odrive_native/test/odrive_native_host_test.cpp index a8b5649108..44d90a1282 100644 --- a/components/odrive_native/test/odrive_native_host_test.cpp +++ b/components/odrive_native/test/odrive_native_host_test.cpp @@ -1,6 +1,6 @@ // Host-buildable unit tests for the ODrive legacy native (Fibre endpoint) // protocol wire core. Build & run with: -// c++ -std=c++20 -I../include odrive_native_host_test.cpp -o test && ./test +// c++ -std=c++23 -I../include odrive_native_host_test.cpp -o test && ./test // // These tests exercise espp::detail::OdriveNativeCore directly so they need no // ESP-IDF headers. diff --git a/components/odrive_native/test/odrive_native_stream_test.cpp b/components/odrive_native/test/odrive_native_stream_test.cpp index b87aea5a33..e3233d83e9 100644 --- a/components/odrive_native/test/odrive_native_stream_test.cpp +++ b/components/odrive_native/test/odrive_native_stream_test.cpp @@ -1,6 +1,6 @@ // Host-buildable golden tests for the ODrive legacy native (Fibre) UART *stream* // framing. Build & run with: -// c++ -std=c++20 -I../include odrive_native_stream_test.cpp -o stream_test && ./stream_test +// c++ -std=c++23 -I../include odrive_native_stream_test.cpp -o stream_test && ./stream_test // // These tests exercise espp::detail (stream_frame / StreamDeframer / odrive_crc8) // directly, so they need no ESP-IDF headers. They freeze the wire framing that diff --git a/components/odrive_native/usb_example/CMakeLists.txt b/components/odrive_native/usb_example/CMakeLists.txt index 24272fa10d..4f3120ee11 100644 --- a/components/odrive_native/usb_example/CMakeLists.txt +++ b/components/odrive_native/usb_example/CMakeLists.txt @@ -32,4 +32,4 @@ set( project(odrive_usb_example) -set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD 23) diff --git a/components/ota/README.md b/components/ota/README.md index 5729e72cdb..65f78e125e 100644 --- a/components/ota/README.md +++ b/components/ota/README.md @@ -53,7 +53,7 @@ matching browser uploader is and incoming app descriptions, `session_active()`, `bytes_written()` - **No exceptions**: every failure is reported via `std::error_code` - **Host-buildable wire framing**: the USB/WebUSB stream protocol lives in - `detail/ota_stream_protocol.hpp` and builds with just a C++20 standard + `detail/ota_stream_protocol.hpp` and builds with just a C++23 standard library ## API @@ -220,7 +220,7 @@ HTTPS, or HTTP on localhost; a `file://` copy loses the grant on reload. The wire framing is host-tested (no ESP-IDF needed): ```bash -c++ -std=c++20 -Werror -I components/ota/include -I components/stream_frame/include \ +c++ -std=c++23 -Werror -I components/ota/include -I components/stream_frame/include \ components/ota/test/ota_protocol_host_test.cpp -o ota_test && ./ota_test ``` diff --git a/components/ota/example/CMakeLists.txt b/components/ota/example/CMakeLists.txt index 2d80936469..78a5292290 100644 --- a/components/ota/example/CMakeLists.txt +++ b/components/ota/example/CMakeLists.txt @@ -51,4 +51,4 @@ set( project(ota_example) -set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD 23) diff --git a/components/ota/test/ota_protocol_host_test.cpp b/components/ota/test/ota_protocol_host_test.cpp index db2e394739..977e9a394b 100644 --- a/components/ota/test/ota_protocol_host_test.cpp +++ b/components/ota/test/ota_protocol_host_test.cpp @@ -2,7 +2,7 @@ // frame codec (magic/flags/module/type/len/crc, StreamParser resync, ...) is // tested by components/stream_frame/test; this file exercises the OTA-specific // make_*/parse_* helpers layered on top. Build & run: -// c++ -std=c++20 -Werror -I components/ota/include -I components/stream_frame/include \ +// c++ -std=c++23 -Werror -I components/ota/include -I components/stream_frame/include \ // components/ota/test/ota_protocol_host_test.cpp -o test && ./test // // No ESP-IDF headers required. diff --git a/components/pca9535/example/CMakeLists.txt b/components/pca9535/example/CMakeLists.txt index 460a491324..ec531b2bd7 100644 --- a/components/pca9535/example/CMakeLists.txt +++ b/components/pca9535/example/CMakeLists.txt @@ -19,4 +19,4 @@ set( project(pca9535_example) -set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD 23) diff --git a/components/pcf85063/example/CMakeLists.txt b/components/pcf85063/example/CMakeLists.txt index 7d792c40f7..513cce07b4 100644 --- a/components/pcf85063/example/CMakeLists.txt +++ b/components/pcf85063/example/CMakeLists.txt @@ -19,4 +19,4 @@ set( project(pcf85063_example) -set(CMAKE_CXX_STANDARD 20) \ No newline at end of file +set(CMAKE_CXX_STANDARD 23) \ No newline at end of file diff --git a/components/pi4ioe5v/example/CMakeLists.txt b/components/pi4ioe5v/example/CMakeLists.txt index ab8b009ca8..d914ae0acb 100644 --- a/components/pi4ioe5v/example/CMakeLists.txt +++ b/components/pi4ioe5v/example/CMakeLists.txt @@ -19,6 +19,6 @@ set( project(pi4ioe5v_example) -set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD 23) diff --git a/components/pid/example/CMakeLists.txt b/components/pid/example/CMakeLists.txt index 221dce3c62..070a31b7a5 100644 --- a/components/pid/example/CMakeLists.txt +++ b/components/pid/example/CMakeLists.txt @@ -19,4 +19,4 @@ set( project(pid_example) -set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD 23) diff --git a/components/ping/example/CMakeLists.txt b/components/ping/example/CMakeLists.txt index 0a859e7d04..9579a4d261 100644 --- a/components/ping/example/CMakeLists.txt +++ b/components/ping/example/CMakeLists.txt @@ -16,4 +16,4 @@ set( project(ping_example) -set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD 23) diff --git a/components/provisioning/example/CMakeLists.txt b/components/provisioning/example/CMakeLists.txt index bd2f996c29..26b8abafa3 100644 --- a/components/provisioning/example/CMakeLists.txt +++ b/components/provisioning/example/CMakeLists.txt @@ -19,4 +19,4 @@ set( project(provisioning_example) -set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD 23) diff --git a/components/qmi8658/example/CMakeLists.txt b/components/qmi8658/example/CMakeLists.txt index f0aee6e380..3daf9f2ad6 100644 --- a/components/qmi8658/example/CMakeLists.txt +++ b/components/qmi8658/example/CMakeLists.txt @@ -19,4 +19,4 @@ set( project(qmi8658_example) -set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD 23) diff --git a/components/qtpy/example/CMakeLists.txt b/components/qtpy/example/CMakeLists.txt index 2f1356be4e..5be691d984 100644 --- a/components/qtpy/example/CMakeLists.txt +++ b/components/qtpy/example/CMakeLists.txt @@ -19,4 +19,4 @@ set( project(qtpy_example) -set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD 23) diff --git a/components/qwiicnes/example/CMakeLists.txt b/components/qwiicnes/example/CMakeLists.txt index 566c2c0dde..995ac375ec 100644 --- a/components/qwiicnes/example/CMakeLists.txt +++ b/components/qwiicnes/example/CMakeLists.txt @@ -19,4 +19,4 @@ set( project(qwiicnes_example) -set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD 23) diff --git a/components/reflect_cpp/README.md b/components/reflect_cpp/README.md index 51aba84107..ecc953eabf 100644 --- a/components/reflect_cpp/README.md +++ b/components/reflect_cpp/README.md @@ -22,7 +22,7 @@ Only the header-only reflection core is exposed (`rfl/to_view.hpp`, yyjson, etc.) are not built and their headers should not be included on ESP-IDF targets. -Requires C++20 or newer (ESP-IDF 5.2+ toolchains). The reflection-driven +Requires C++23 or newer (ESP-IDF 5.2+ toolchains). The reflection-driven `cdr` component (stacked follow-up PR) uses this component as its backend. When updating the submodule pin, keep it on the same reflect-cpp tag that diff --git a/components/remote_debug/example/CMakeLists.txt b/components/remote_debug/example/CMakeLists.txt index 068170289e..b7475e4ebd 100644 --- a/components/remote_debug/example/CMakeLists.txt +++ b/components/remote_debug/example/CMakeLists.txt @@ -19,4 +19,4 @@ set( project(remote_debug_example) -set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD 23) diff --git a/components/rmt/example/CMakeLists.txt b/components/rmt/example/CMakeLists.txt index 66cac64ff1..33ab826242 100644 --- a/components/rmt/example/CMakeLists.txt +++ b/components/rmt/example/CMakeLists.txt @@ -19,4 +19,4 @@ set( project(rmt_example) -set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD 23) diff --git a/components/rtps/example/CMakeLists.txt b/components/rtps/example/CMakeLists.txt index 81e617e013..48d4c32373 100644 --- a/components/rtps/example/CMakeLists.txt +++ b/components/rtps/example/CMakeLists.txt @@ -18,4 +18,4 @@ set( project(rtps_example) -set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD 23) diff --git a/components/rtps/example/pc/CMakeLists.txt b/components/rtps/example/pc/CMakeLists.txt index e15ebb46f2..c4f818f17b 100644 --- a/components/rtps/example/pc/CMakeLists.txt +++ b/components/rtps/example/pc/CMakeLists.txt @@ -5,5 +5,5 @@ find_package(fastdds REQUIRED COMPONENTS shared) find_package(OpenSSL REQUIRED) add_executable(host_pubsub host_pubsub.cpp) -target_compile_features(host_pubsub PRIVATE cxx_std_17) +target_compile_features(host_pubsub PRIVATE cxx_std_23) target_link_libraries(host_pubsub PRIVATE fastdds fastcdr OpenSSL::SSL OpenSSL::Crypto) diff --git a/components/rtsp/example/CMakeLists.txt b/components/rtsp/example/CMakeLists.txt index ffaff68d36..ba7ad6e848 100644 --- a/components/rtsp/example/CMakeLists.txt +++ b/components/rtsp/example/CMakeLists.txt @@ -19,4 +19,4 @@ set( project(rtsp_example) -set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD 23) diff --git a/components/runqueue/example/CMakeLists.txt b/components/runqueue/example/CMakeLists.txt index 5a2ddbf871..c9e284fa27 100644 --- a/components/runqueue/example/CMakeLists.txt +++ b/components/runqueue/example/CMakeLists.txt @@ -19,4 +19,4 @@ set( project(runqueue_example) -set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD 23) diff --git a/components/rx8130ce/example/CMakeLists.txt b/components/rx8130ce/example/CMakeLists.txt index 2b12f557be..a400e25daa 100644 --- a/components/rx8130ce/example/CMakeLists.txt +++ b/components/rx8130ce/example/CMakeLists.txt @@ -26,4 +26,4 @@ set( project(rx8130ce_example) -set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD 23) diff --git a/components/sdcard/example/CMakeLists.txt b/components/sdcard/example/CMakeLists.txt index 22c8aa831e..f8ac5c20cc 100644 --- a/components/sdcard/example/CMakeLists.txt +++ b/components/sdcard/example/CMakeLists.txt @@ -19,4 +19,4 @@ set( project(sdcard_example) -set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD 23) diff --git a/components/seeed-studio-round-display/example/CMakeLists.txt b/components/seeed-studio-round-display/example/CMakeLists.txt index 32b6051b6d..0561afebf3 100644 --- a/components/seeed-studio-round-display/example/CMakeLists.txt +++ b/components/seeed-studio-round-display/example/CMakeLists.txt @@ -19,4 +19,4 @@ set( project(seeed_studio_roudn_display_example) -set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD 23) diff --git a/components/serialization/example/CMakeLists.txt b/components/serialization/example/CMakeLists.txt index c0f919cdce..8e9fd05436 100644 --- a/components/serialization/example/CMakeLists.txt +++ b/components/serialization/example/CMakeLists.txt @@ -19,4 +19,4 @@ set( project(serialization_example) -set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD 23) diff --git a/components/smartpanlee-sc01-plus/example/CMakeLists.txt b/components/smartpanlee-sc01-plus/example/CMakeLists.txt index 2f705b136a..bee9dd59e9 100755 --- a/components/smartpanlee-sc01-plus/example/CMakeLists.txt +++ b/components/smartpanlee-sc01-plus/example/CMakeLists.txt @@ -18,4 +18,4 @@ set( project(smartpanlee_sc01_plus_example) -set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD 23) diff --git a/components/socket/example/CMakeLists.txt b/components/socket/example/CMakeLists.txt index 51bfeb2dd1..781ea460bd 100644 --- a/components/socket/example/CMakeLists.txt +++ b/components/socket/example/CMakeLists.txt @@ -19,4 +19,4 @@ set( project(socket_example) -set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD 23) diff --git a/components/spi/example/CMakeLists.txt b/components/spi/example/CMakeLists.txt index cf50ea5845..a78c3b5ec0 100644 --- a/components/spi/example/CMakeLists.txt +++ b/components/spi/example/CMakeLists.txt @@ -18,4 +18,4 @@ set( project(spi_example) -set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD 23) diff --git a/components/st25dv/example/CMakeLists.txt b/components/st25dv/example/CMakeLists.txt index f3e681e1ae..d4c7b00860 100644 --- a/components/st25dv/example/CMakeLists.txt +++ b/components/st25dv/example/CMakeLists.txt @@ -19,4 +19,4 @@ set( project(st25dv_example) -set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD 23) diff --git a/components/state_machine/example/CMakeLists.txt b/components/state_machine/example/CMakeLists.txt index e8b16d1177..42d45ebafb 100644 --- a/components/state_machine/example/CMakeLists.txt +++ b/components/state_machine/example/CMakeLists.txt @@ -20,4 +20,4 @@ set( project(hfsm_example) -set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD 23) diff --git a/components/stream_frame/README.md b/components/stream_frame/README.md index 06c6954937..5b06c3ed78 100644 --- a/components/stream_frame/README.md +++ b/components/stream_frame/README.md @@ -7,7 +7,7 @@ incremental, resynchronizing `StreamParser` — for carrying messages over any raw byte stream (USB vendor / CDC, TCP/UDP sockets, UART, ...). It has **no** ESP-IDF / FreeRTOS dependency, so the framing builds and -unit-tests on a host with nothing more than a C++20 standard library. It is the +unit-tests on a host with nothing more than a C++23 standard library. It is the shared substrate under the OTA stream protocol (`espp::detail::ota_stream`), the crash-dump service, the CAN bridge, and — via `espp::Dispatcher` — any number of independent protocols multiplexed over one stream. @@ -67,6 +67,6 @@ ignoring unknown modules) is the job of `espp::Dispatcher` (or the caller). ## Host tests ``` -c++ -std=c++20 -Werror -I components/stream_frame/include \ +c++ -std=c++23 -Werror -I components/stream_frame/include \ components/stream_frame/test/stream_frame_host_test.cpp -o test && ./test ``` diff --git a/components/stream_frame/example/CMakeLists.txt b/components/stream_frame/example/CMakeLists.txt index 9be39ec4c6..d0cfd919b8 100644 --- a/components/stream_frame/example/CMakeLists.txt +++ b/components/stream_frame/example/CMakeLists.txt @@ -18,4 +18,4 @@ set( project(stream_frame_example) -set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD 23) diff --git a/components/stream_frame/include/stream_frame.hpp b/components/stream_frame/include/stream_frame.hpp index 951d04de93..f20f95be6c 100644 --- a/components/stream_frame/include/stream_frame.hpp +++ b/components/stream_frame/include/stream_frame.hpp @@ -6,7 +6,7 @@ // // This header deliberately has NO ESP-IDF / FreeRTOS dependency so the framing // (CRC-32, frame building, incremental parsing with resynchronization) builds -// and unit-tests on a host with nothing more than a C++20 standard library. +// and unit-tests on a host with nothing more than a C++23 standard library. // // It is the shared substrate under several espp protocols (OTA, crash dump, a // CAN bridge, ...) and — via espp::Dispatcher — any number of independent diff --git a/components/stream_frame/test/stream_frame_host_test.cpp b/components/stream_frame/test/stream_frame_host_test.cpp index a58e69d8ed..ec6ceebc5b 100644 --- a/components/stream_frame/test/stream_frame_host_test.cpp +++ b/components/stream_frame/test/stream_frame_host_test.cpp @@ -1,5 +1,5 @@ // Host-buildable unit tests for the espp stream_frame codec (v2). Build & run: -// c++ -std=c++20 -Werror -I components/stream_frame/include \ +// c++ -std=c++23 -Werror -I components/stream_frame/include \ // components/stream_frame/test/stream_frame_host_test.cpp -o test && ./test // // No ESP-IDF headers required. diff --git a/components/switch_pro/example/CMakeLists.txt b/components/switch_pro/example/CMakeLists.txt index 9bd67202ed..64d4746820 100644 --- a/components/switch_pro/example/CMakeLists.txt +++ b/components/switch_pro/example/CMakeLists.txt @@ -38,4 +38,4 @@ set( project(switch_pro_example) -set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD 23) diff --git a/components/sx126x/example/CMakeLists.txt b/components/sx126x/example/CMakeLists.txt index 42d49dcf9a..d1f233c48b 100755 --- a/components/sx126x/example/CMakeLists.txt +++ b/components/sx126x/example/CMakeLists.txt @@ -22,4 +22,4 @@ set( project(sx126x_example) -set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD 23) diff --git a/components/system/example/CMakeLists.txt b/components/system/example/CMakeLists.txt index 4222df5d67..cf68d79a79 100644 --- a/components/system/example/CMakeLists.txt +++ b/components/system/example/CMakeLists.txt @@ -2,7 +2,7 @@ # in this exact order for cmake to work correctly cmake_minimum_required(VERSION 3.20) -set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD 23) # This example needs the managed `espressif/esp_tinyusb` component (required by # usb_device). It supports two build modes: diff --git a/components/system/test/system_host_test.cpp b/components/system/test/system_host_test.cpp index ec273db4f4..3acb966995 100644 --- a/components/system/test/system_host_test.cpp +++ b/components/system/test/system_host_test.cpp @@ -1,6 +1,6 @@ // Host-buildable unit tests for the SystemService wire codec // (include/detail/system_protocol.hpp). Build & run with: -// c++ -std=c++20 -I../include -I../../stream_frame/include system_host_test.cpp -o test && ./test +// c++ -std=c++23 -I../include -I../../stream_frame/include system_host_test.cpp -o test && ./test // // The codec needs no ESP-IDF headers; these are golden encode/decode tests so // the browser console and any host tool can rely on the byte layout. diff --git a/components/t-deck/example/CMakeLists.txt b/components/t-deck/example/CMakeLists.txt index c583a003f0..bf2f5eb11f 100644 --- a/components/t-deck/example/CMakeLists.txt +++ b/components/t-deck/example/CMakeLists.txt @@ -19,4 +19,4 @@ set( project(t_deck_example) -set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD 23) diff --git a/components/t-dongle-s3/example/CMakeLists.txt b/components/t-dongle-s3/example/CMakeLists.txt index 64ab16c345..56ca123039 100644 --- a/components/t-dongle-s3/example/CMakeLists.txt +++ b/components/t-dongle-s3/example/CMakeLists.txt @@ -20,4 +20,4 @@ set( project(t_dongle_s3_example) -set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD 23) diff --git a/components/t_keyboard/example/CMakeLists.txt b/components/t_keyboard/example/CMakeLists.txt index 62e2ec1813..328f53608d 100644 --- a/components/t_keyboard/example/CMakeLists.txt +++ b/components/t_keyboard/example/CMakeLists.txt @@ -19,4 +19,4 @@ set( project(t_keyboard_example) -set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD 23) diff --git a/components/tabulate/example/CMakeLists.txt b/components/tabulate/example/CMakeLists.txt index 625c65775b..8a898eedf9 100644 --- a/components/tabulate/example/CMakeLists.txt +++ b/components/tabulate/example/CMakeLists.txt @@ -19,4 +19,4 @@ set( project(tabulate_example) -set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD 23) diff --git a/components/task/example/CMakeLists.txt b/components/task/example/CMakeLists.txt index f44d1a7240..9206f94572 100644 --- a/components/task/example/CMakeLists.txt +++ b/components/task/example/CMakeLists.txt @@ -19,4 +19,4 @@ set( project(task_example) -set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD 23) diff --git a/components/telemetry/example/CMakeLists.txt b/components/telemetry/example/CMakeLists.txt index 0150e35da7..5b8a9c952f 100644 --- a/components/telemetry/example/CMakeLists.txt +++ b/components/telemetry/example/CMakeLists.txt @@ -2,10 +2,10 @@ # in this exact order for cmake to work correctly cmake_minimum_required(VERSION 3.20) -# Build the example (and the espp components it pulls in) as C++20 (the repo -# standard; the telemetry service needs no C++23 feature). Must be set before -# the project.cmake include / project() call so IDF picks it up. -set(CMAKE_CXX_STANDARD 20) +# Build the example (and the espp components it pulls in) as C++23 (the repo +# standard). Must be set before the project.cmake include / project() call so +# IDF picks it up. +set(CMAKE_CXX_STANDARD 23) # NOTE: the IDF component manager is intentionally left ENABLED here (unlike most # espp examples) so that it can fetch the managed `espressif/esp_tinyusb` diff --git a/components/thermistor/example/CMakeLists.txt b/components/thermistor/example/CMakeLists.txt index 8106e639d1..6df3af5c48 100644 --- a/components/thermistor/example/CMakeLists.txt +++ b/components/thermistor/example/CMakeLists.txt @@ -19,4 +19,4 @@ set( project(thermistor_example) -set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD 23) diff --git a/components/thread_pool/example/CMakeLists.txt b/components/thread_pool/example/CMakeLists.txt index 6019f3f825..4fe35891ce 100644 --- a/components/thread_pool/example/CMakeLists.txt +++ b/components/thread_pool/example/CMakeLists.txt @@ -2,7 +2,7 @@ # in this exact order for cmake to work correctly cmake_minimum_required(VERSION 3.20) -set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD 23) set(ENV{IDF_COMPONENT_MANAGER} "0") include($ENV{IDF_PATH}/tools/cmake/project.cmake) diff --git a/components/timer/example/CMakeLists.txt b/components/timer/example/CMakeLists.txt index 9a47bf0e35..c50137c13a 100644 --- a/components/timer/example/CMakeLists.txt +++ b/components/timer/example/CMakeLists.txt @@ -19,4 +19,4 @@ set( project(timer_example) -set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD 23) diff --git a/components/tla2528/example/CMakeLists.txt b/components/tla2528/example/CMakeLists.txt index 8c1a8a3447..4db9735349 100644 --- a/components/tla2528/example/CMakeLists.txt +++ b/components/tla2528/example/CMakeLists.txt @@ -19,4 +19,4 @@ set( project(tla2528_example) -set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD 23) diff --git a/components/touch/example/CMakeLists.txt b/components/touch/example/CMakeLists.txt index 09d27623d0..f7d396a130 100644 --- a/components/touch/example/CMakeLists.txt +++ b/components/touch/example/CMakeLists.txt @@ -19,4 +19,4 @@ set( project(touch_example) -set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD 23) diff --git a/components/trajectory_planner/example/CMakeLists.txt b/components/trajectory_planner/example/CMakeLists.txt index 5473ed024b..6e78dc96e5 100644 --- a/components/trajectory_planner/example/CMakeLists.txt +++ b/components/trajectory_planner/example/CMakeLists.txt @@ -19,4 +19,4 @@ set( project(trajectory_planner_example) -set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD 23) diff --git a/components/tt21100/example/CMakeLists.txt b/components/tt21100/example/CMakeLists.txt index bba71a053e..4ca7118b46 100644 --- a/components/tt21100/example/CMakeLists.txt +++ b/components/tt21100/example/CMakeLists.txt @@ -19,4 +19,4 @@ set( project(tt21100_example) -set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD 23) diff --git a/components/twai/example/CMakeLists.txt b/components/twai/example/CMakeLists.txt index 2788faddc7..a304f028ab 100644 --- a/components/twai/example/CMakeLists.txt +++ b/components/twai/example/CMakeLists.txt @@ -19,4 +19,4 @@ set( project(twai_example) -set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD 23) diff --git a/components/usb_device/example/CMakeLists.txt b/components/usb_device/example/CMakeLists.txt index c6f1a3bded..f42d9b329b 100644 --- a/components/usb_device/example/CMakeLists.txt +++ b/components/usb_device/example/CMakeLists.txt @@ -48,4 +48,4 @@ set( project(usb_device_example) -set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD 23) diff --git a/components/usb_device/msc_example/CMakeLists.txt b/components/usb_device/msc_example/CMakeLists.txt index f5a381e57f..840da2a120 100644 --- a/components/usb_device/msc_example/CMakeLists.txt +++ b/components/usb_device/msc_example/CMakeLists.txt @@ -50,4 +50,4 @@ set( project(msc_example) -set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD 23) diff --git a/components/usb_device/test/xinput_host_test.cpp b/components/usb_device/test/xinput_host_test.cpp index f2716c9bbd..7a4b409bba 100644 --- a/components/usb_device/test/xinput_host_test.cpp +++ b/components/usb_device/test/xinput_host_test.cpp @@ -3,7 +3,7 @@ // endpoint descriptor builder. No ESP-IDF / TinyUSB headers required. // /* Build & run (a block comment so the line-continuation doesn't trip -Wcomment): - c++ -std=c++20 -Wall -Wextra -Werror -I components/usb_device/include \ + c++ -std=c++23 -Wall -Wextra -Werror -I components/usb_device/include \ components/usb_device/test/xinput_host_test.cpp -o test && ./test */ #include diff --git a/components/usb_device/xinput_example/CMakeLists.txt b/components/usb_device/xinput_example/CMakeLists.txt index ed57bbda1f..45e67da1b5 100644 --- a/components/usb_device/xinput_example/CMakeLists.txt +++ b/components/usb_device/xinput_example/CMakeLists.txt @@ -34,4 +34,4 @@ set( project(xinput_example) -set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD 23) diff --git a/components/usb_host/example/CMakeLists.txt b/components/usb_host/example/CMakeLists.txt index 717f1dbf7d..acb1098303 100644 --- a/components/usb_host/example/CMakeLists.txt +++ b/components/usb_host/example/CMakeLists.txt @@ -30,4 +30,4 @@ set( project(usb_host_example) -set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD 23) diff --git a/components/usb_host/tab5_example/CMakeLists.txt b/components/usb_host/tab5_example/CMakeLists.txt index 719a46e2c1..eb8fa37945 100644 --- a/components/usb_host/tab5_example/CMakeLists.txt +++ b/components/usb_host/tab5_example/CMakeLists.txt @@ -52,4 +52,4 @@ set( project(usb_host_tab5_example) -set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD 23) diff --git a/components/vl53l/example/CMakeLists.txt b/components/vl53l/example/CMakeLists.txt index d0fc54d289..7230bc2abe 100644 --- a/components/vl53l/example/CMakeLists.txt +++ b/components/vl53l/example/CMakeLists.txt @@ -19,4 +19,4 @@ set( project(vl53l_example) -set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD 23) diff --git a/components/wdi/README.md b/components/wdi/README.md index 42f3efe683..5f1b9e7507 100644 --- a/components/wdi/README.md +++ b/components/wdi/README.md @@ -234,15 +234,15 @@ host.scan_and_connect(5000, ec); ## Testing -The protocol core and device role build and run on a host with just a C++20 +The protocol core and device role build and run on a host with just a C++23 standard library: ```bash -c++ -std=c++20 -Wall -Wextra -Werror -I components/wdi/include \ +c++ -std=c++23 -Wall -Wextra -Werror -I components/wdi/include \ components/wdi/test/wdi_protocol_host_test.cpp -o wdi_test && ./wdi_test -c++ -std=c++20 -Wall -Wextra -Werror -I components/wdi/include \ +c++ -std=c++23 -Wall -Wextra -Werror -I components/wdi/include \ components/wdi/test/wdi_device_host_test.cpp -o wdi_dev_test && ./wdi_dev_test -c++ -std=c++20 -Wall -Wextra -Werror -I components/wdi/include \ +c++ -std=c++23 -Wall -Wextra -Werror -I components/wdi/include \ components/wdi/test/wdi_host_host_test.cpp -o wdi_host_test && ./wdi_host_test ``` @@ -250,7 +250,7 @@ The hid-rp report descriptor also builds on a host (hid-rp is header-only; add i as `-isystem` so its third-party headers don't trip `-Werror`): ```bash -c++ -std=c++20 -Wall -Wextra -Werror -I components/wdi/include \ +c++ -std=c++23 -Wall -Wextra -Werror -I components/wdi/include \ -isystem components/hid-rp/include -isystem components/hid-rp/detail/hid-rp/hid-rp \ components/wdi/test/wdi_hid_host_test.cpp -o wdi_hid_test && ./wdi_hid_test ``` diff --git a/components/wdi/ble_central_example/CMakeLists.txt b/components/wdi/ble_central_example/CMakeLists.txt index 8685eb8ea0..2af7c43804 100644 --- a/components/wdi/ble_central_example/CMakeLists.txt +++ b/components/wdi/ble_central_example/CMakeLists.txt @@ -19,4 +19,4 @@ set( project(wdi_ble_central_example) -set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD 23) diff --git a/components/wdi/ble_example/CMakeLists.txt b/components/wdi/ble_example/CMakeLists.txt index ce449717ad..f4aa26b01b 100644 --- a/components/wdi/ble_example/CMakeLists.txt +++ b/components/wdi/ble_example/CMakeLists.txt @@ -19,4 +19,4 @@ set( project(wdi_ble_example) -set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD 23) diff --git a/components/wdi/include/wdi.hpp b/components/wdi/include/wdi.hpp index 4c77110967..60a8eb9a7e 100644 --- a/components/wdi/include/wdi.hpp +++ b/components/wdi/include/wdi.hpp @@ -9,7 +9,7 @@ // host sends back via handle_output(). It owns the keepalive state machine from // the spec. // -// The class depends only on the C++20 standard library and the WDI protocol core +// The class depends only on the C++23 standard library and the WDI protocol core // (detail/wdi_protocol.hpp), so it is unit-testable on a host. It does NOT own a // timer: call poll() periodically (from an espp::Timer / Task on device, or a // test loop) and it emits a keepalive when one is due. Time is read through a diff --git a/components/wdi/include/wdi_host.hpp b/components/wdi/include/wdi_host.hpp index 450ab2dcd4..498f8a8331 100644 --- a/components/wdi/include/wdi_host.hpp +++ b/components/wdi/include/wdi_host.hpp @@ -7,7 +7,7 @@ // keepalive **watchdog** from the spec (if the app stops sending, the host // disconnects and drive-disables). It is the mirror image of WdiDevice. // -// Like WdiDevice it is transport-agnostic and depends only on the C++20 standard +// Like WdiDevice it is transport-agnostic and depends only on the C++23 standard // library and the WDI protocol core (detail/wdi_protocol.hpp): you give it a // `send` callback that puts an OUTPUT report on the wire (USB HID SET_REPORT or a // BLE write) and feed it the app's INPUT reports via handle_input(). It does NOT diff --git a/components/wdi/test/wdi_device_host_test.cpp b/components/wdi/test/wdi_device_host_test.cpp index 9a7c839929..45c1bb630d 100644 --- a/components/wdi/test/wdi_device_host_test.cpp +++ b/components/wdi/test/wdi_device_host_test.cpp @@ -1,7 +1,7 @@ // Host-side unit test for the WDI device role (WdiDevice). Deterministic: uses a // fake clock and a mock send callback (no ESP-IDF, no real time). // -// c++ -std=c++20 -Wall -Wextra -Werror -I components/wdi/include \ +// c++ -std=c++23 -Wall -Wextra -Werror -I components/wdi/include \ // components/wdi/test/wdi_device_host_test.cpp -o wdi_dev_test && ./wdi_dev_test #include diff --git a/components/wdi/test/wdi_hid_host_test.cpp b/components/wdi/test/wdi_hid_host_test.cpp index 715dcce523..daf2974026 100644 --- a/components/wdi/test/wdi_hid_host_test.cpp +++ b/components/wdi/test/wdi_hid_host_test.cpp @@ -1,7 +1,7 @@ // Host-side unit test for the hid-rp-built WDI HID report descriptor. hid-rp is // header-only and stdlib-only, so this builds on a host: // -// c++ -std=c++20 -Wall -Wextra -Werror \ +// c++ -std=c++23 -Wall -Wextra -Werror \ // -I components/wdi/include -isystem components/hid-rp/include \ // -isystem components/hid-rp/detail/hid-rp/hid-rp \ // components/wdi/test/wdi_hid_host_test.cpp -o wdi_hid_test && ./wdi_hid_test diff --git a/components/wdi/test/wdi_host_host_test.cpp b/components/wdi/test/wdi_host_host_test.cpp index 5ca0827633..170929d6b5 100644 --- a/components/wdi/test/wdi_host_host_test.cpp +++ b/components/wdi/test/wdi_host_host_test.cpp @@ -1,7 +1,7 @@ // Host-side unit test for the WDI **host** role (WdiHost). Deterministic: uses a // fake clock and a mock send callback (no ESP-IDF, no real time). // -// c++ -std=c++20 -Wall -Wextra -Werror -I components/wdi/include \ +// c++ -std=c++23 -Wall -Wextra -Werror -I components/wdi/include \ // components/wdi/test/wdi_host_host_test.cpp -o wdi_host_test && ./wdi_host_test #include diff --git a/components/wdi/test/wdi_protocol_host_test.cpp b/components/wdi/test/wdi_protocol_host_test.cpp index 6b860e6dd9..91860cf400 100644 --- a/components/wdi/test/wdi_protocol_host_test.cpp +++ b/components/wdi/test/wdi_protocol_host_test.cpp @@ -1,7 +1,7 @@ // Host-side unit test for the WDI (Wheelchair Digital Interface) protocol core. -// Builds with just a C++20 standard library (no ESP-IDF): +// Builds with just a C++23 standard library (no ESP-IDF): // -// c++ -std=c++20 -Wall -Wextra -Werror -I components/wdi/include \ +// c++ -std=c++23 -Wall -Wextra -Werror -I components/wdi/include \ // components/wdi/test/wdi_protocol_host_test.cpp -o wdi_test && ./wdi_test #include diff --git a/components/wdi/usb_example/CMakeLists.txt b/components/wdi/usb_example/CMakeLists.txt index 080c083614..9ecc340eb0 100644 --- a/components/wdi/usb_example/CMakeLists.txt +++ b/components/wdi/usb_example/CMakeLists.txt @@ -38,4 +38,4 @@ set( project(wdi_usb_example) -set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD 23) diff --git a/components/wdi/usb_host_example/CMakeLists.txt b/components/wdi/usb_host_example/CMakeLists.txt index c209b844fe..25d7005acc 100644 --- a/components/wdi/usb_host_example/CMakeLists.txt +++ b/components/wdi/usb_host_example/CMakeLists.txt @@ -32,4 +32,4 @@ set( project(wdi_usb_host_example) -set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD 23) diff --git a/components/wifi/example/CMakeLists.txt b/components/wifi/example/CMakeLists.txt index 4f844e6c4a..356dbab6a8 100644 --- a/components/wifi/example/CMakeLists.txt +++ b/components/wifi/example/CMakeLists.txt @@ -19,4 +19,4 @@ set( project(wifi_example) -set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD 23) diff --git a/components/wrover-kit/example/CMakeLists.txt b/components/wrover-kit/example/CMakeLists.txt index c654710e58..1b72adbb0a 100644 --- a/components/wrover-kit/example/CMakeLists.txt +++ b/components/wrover-kit/example/CMakeLists.txt @@ -19,4 +19,4 @@ set( project(wrover_kit_example) -set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD 23) diff --git a/components/ws-s3-geek/example/CMakeLists.txt b/components/ws-s3-geek/example/CMakeLists.txt index 3d688caf18..db38e454a1 100644 --- a/components/ws-s3-geek/example/CMakeLists.txt +++ b/components/ws-s3-geek/example/CMakeLists.txt @@ -19,4 +19,4 @@ set( project(ws_s3_geek_example) -set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD 23) diff --git a/components/ws-s3-lcd-1-47/example/CMakeLists.txt b/components/ws-s3-lcd-1-47/example/CMakeLists.txt index 7889224911..40fa741f5d 100644 --- a/components/ws-s3-lcd-1-47/example/CMakeLists.txt +++ b/components/ws-s3-lcd-1-47/example/CMakeLists.txt @@ -19,4 +19,4 @@ set( project(ws_s3_lcd_1_47_example) -set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD 23) diff --git a/components/ws-s3-touch/example/CMakeLists.txt b/components/ws-s3-touch/example/CMakeLists.txt index 649087e038..11aa6d1aaf 100644 --- a/components/ws-s3-touch/example/CMakeLists.txt +++ b/components/ws-s3-touch/example/CMakeLists.txt @@ -19,4 +19,4 @@ set( project(ws_s3_touch_example) -set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD 23) diff --git a/components/xiao-esp32s3-sense/example/CMakeLists.txt b/components/xiao-esp32s3-sense/example/CMakeLists.txt index e2df283228..12bf2ad34f 100644 --- a/components/xiao-esp32s3-sense/example/CMakeLists.txt +++ b/components/xiao-esp32s3-sense/example/CMakeLists.txt @@ -29,7 +29,7 @@ set( project(xiao_esp32s3_sense_example) -set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD 23) # The mDNS component (espressif/mdns from the registry, or the vendored copy) # trips -Werror=stringop-truncation under the ESP-IDF v6 toolchain (GCC 15). It diff --git a/doc/en/data/reflect_cpp.rst b/doc/en/data/reflect_cpp.rst index 3171683981..ae50d6821b 100644 --- a/doc/en/data/reflect_cpp.rst +++ b/doc/en/data/reflect_cpp.rst @@ -31,4 +31,4 @@ This component is the reflection backend for the reflection-driven ``cdr`` component (introduced in a follow-up PR), which uses it to have the compiler generate CDR serialization code directly from struct definitions. -Requires C++20 or newer (the default on ESP-IDF 5.2+ toolchains). +Requires C++23 or newer (the default on ESP-IDF 5.2+ toolchains). diff --git a/doc/en/dispatcher/custom_modules.rst b/doc/en/dispatcher/custom_modules.rst index 777f2da04f..e4d1278d03 100644 --- a/doc/en/dispatcher/custom_modules.rst +++ b/doc/en/dispatcher/custom_modules.rst @@ -888,7 +888,7 @@ Checklist: shipping a new module + webapp them can be exercised in a plain host-side C++ test — see ``components/dispatcher/test/dispatcher_host_test.cpp`` and ``components/stream_frame/test/stream_frame_host_test.cpp`` for the - pattern (build and run with a plain ``c++ -std=c++20``, no ESP-IDF + pattern (build and run with a plain ``c++ -std=c++23``, no ESP-IDF toolchain needed). .. seealso:: diff --git a/doc/en/motor_control/basicmicro.rst b/doc/en/motor_control/basicmicro.rst index 8afb7a5563..488552cffd 100644 --- a/doc/en/motor_control/basicmicro.rst +++ b/doc/en/motor_control/basicmicro.rst @@ -13,7 +13,7 @@ calls user-provided ``write`` / ``read`` functions for each transaction, so it works over a UART driver, USB CDC, an RS-232 adapter, etc. All wire-format logic (CRC16, packet building, reply validation, big-endian codecs) lives in ``espp::detail`` inside ``include/detail/basicmicro_core.hpp``, a -host-buildable core that depends only on the C++20 standard library and is +host-buildable core that depends only on the C++23 standard library and is unit-tested off-target. Features diff --git a/doc/en/motor_control/mcp266.rst b/doc/en/motor_control/mcp266.rst index 171d95957e..a8225d4ba3 100644 --- a/doc/en/motor_control/mcp266.rst +++ b/doc/en/motor_control/mcp266.rst @@ -14,7 +14,7 @@ Both motor channels (``M1``, ``M2``) are driven symmetrically. M2's CiA 402 objects mirror M1's at ``+0x800``, handled through ``Ds402Drive``'s object offset. The reverse-engineered object mapping lives in ``espp::detail`` inside ``include/detail/mcp266_core.hpp``, a host-buildable core that depends only on -the C++20 standard library and is unit-tested off-target. +the C++23 standard library and is unit-tested off-target. What works, and what does not ----------------------------- diff --git a/doc/en/stream_frame/stream_frame.rst b/doc/en/stream_frame/stream_frame.rst index abe2b1e2da..3372ba5c08 100644 --- a/doc/en/stream_frame/stream_frame.rst +++ b/doc/en/stream_frame/stream_frame.rst @@ -5,7 +5,7 @@ The `stream_frame` component provides a minimal wire framing (v2) for carrying typed, length-delimited, CRC-verified messages over any raw byte stream. It is intentionally free of any ESP-IDF / FreeRTOS dependency, so the framing (CRC-32, frame building, incremental parsing with resynchronization) builds and -unit-tests on a host with nothing more than a C++20 standard library. +unit-tests on a host with nothing more than a C++23 standard library. Wire format (all multi-byte fields little-endian):: diff --git a/lib/README_PYPI.md b/lib/README_PYPI.md index d4b7df812e..dc01266736 100644 --- a/lib/README_PYPI.md +++ b/lib/README_PYPI.md @@ -21,7 +21,7 @@ Or straight from the repository: pip install git+https://github.com/esp-cpp/espp.git ``` -Building from source requires CMake (>= 3.20) and a C++20 compiler. +Building from source requires CMake (>= 3.20) and a C++23 compiler. ## What's included diff --git a/pc/tests/odrive_native_golden.cpp b/pc/tests/odrive_native_golden.cpp index 89cfbb1d8f..9418f5f836 100644 --- a/pc/tests/odrive_native_golden.cpp +++ b/pc/tests/odrive_native_golden.cpp @@ -8,7 +8,7 @@ // - by the pc harness against the installed espp package (full espp::espp // target, so the espp::OdriveNative wrapper section below also runs); // - by the interop harness (components/odrive_native/interop/run_interop.sh) -// with ONLY `c++ -std=c++20 -I components/odrive_native/include` — no espp +// with ONLY `c++ -std=c++23 -I components/odrive_native/include` — no espp // lib, so the wrapper section (which needs base_component/logger/fmt and // the compiled Logger) is compiled out via the __has_include guard. // Exits 0 when every golden matches.