J. Nick Koston 9621c5a3d3 [core] Compile-time detection of loop() overrides
Replace the runtime GCC-specific pointer-to-member-function comparison
in has_overridden_loop() with a compile-time std::is_same_v check in a
templated register_component_().

The template resolves &T::loop vs &Component::loop at compile time and
passes the result to register_component_impl_(), which stores it as
bit 5 in the existing component_state_ byte (zero additional RAM).

This eliminates:
- The non-standard -Wpmf-conversions GCC extension
- The USE_HOST/CLANG_TIDY special case that incorrectly returned true
  for all components (putting every component in the loop list)
- Runtime vtable probing during calculate_looping_components_()
2026-03-01 11:08:23 -10:00
2023-06-12 17:00:34 +12:00
2022-09-06 15:48:01 +12:00
2025-12-21 09:26:03 -05:00
2024-03-28 10:20:51 +13:00
2025-07-17 22:40:28 +12:00
2025-12-08 14:37:45 -05:00
2026-02-12 23:04:19 +13:00
2025-07-17 22:40:28 +12:00
2026-02-11 22:11:48 -05:00
2025-12-05 08:48:04 -05:00
S
Description
ESPHome is a system to control your ESP8266/ESP32 by simple yet powerful configuration files and control them remotely through Home Automation systems.
Readme Multiple Licenses 545 MiB
Languages
C++ 60.1%
Python 39.3%
C 0.3%
JavaScript 0.2%