diff --git a/esphome/core/application.h b/esphome/core/application.h index c71b99b078..835174668a 100644 --- a/esphome/core/application.h +++ b/esphome/core/application.h @@ -129,8 +129,9 @@ void original_setup(); // NOLINT(readability-redundant-declaration) - used by c namespace esphome { -/// SFINAE helper: resolves to true when &T::loop compiles and differs from &Component::loop. -/// Falls back to true when &T::loop is ambiguous (e.g. multiple inheritance with separate loop() methods). +/// SFINAE helper: detects whether T overrides Component::loop(). +/// When &T::loop is ambiguous (multiple inheritance with separate loop() methods), +/// the ambiguity itself proves an override exists, so the true_type default is correct. template struct HasLoopOverride : std::true_type {}; template struct HasLoopOverride>