diff --git a/esphome/components/template/number/template_number.cpp b/esphome/components/template/number/template_number.cpp index 64c2deb281a..5912239af0a 100644 --- a/esphome/components/template/number/template_number.cpp +++ b/esphome/components/template/number/template_number.cpp @@ -3,6 +3,8 @@ namespace esphome::template_ { +TemplateNumber::TemplateNumber() {} + static const char *const TAG = "template.number"; void TemplateNumber::setup() { diff --git a/esphome/components/template/number/template_number.h b/esphome/components/template/number/template_number.h index fb3299daac6..60576a4c3c7 100644 --- a/esphome/components/template/number/template_number.h +++ b/esphome/components/template/number/template_number.h @@ -11,7 +11,8 @@ namespace esphome::template_ { class TemplateNumber final : public number::Number, public PollingComponent { public: // User provided, not "= default": `new(p) TemplateNumber()` would zero-fill .bss that is already zero. - TemplateNumber() {} + // Defined out of line so the member constructors are not inlined into every construction site. + TemplateNumber(); template void set_template(F &&f) { this->f_.set(std::forward(f)); } void setup() override;