diff --git a/include/etl/intrusive_forward_list.h b/include/etl/intrusive_forward_list.h index 45bdd7bf..307f110b 100644 --- a/include/etl/intrusive_forward_list.h +++ b/include/etl/intrusive_forward_list.h @@ -632,6 +632,8 @@ namespace etl template intrusive_forward_list(link_type& first, TLinks&... links) { + ETL_STATIC_ASSERT((etl::is_base_of_all::value), "Mixed link types"); + this->current_size = 0; this->start.etl_next = &first; link_type* last = make_linked_list(this->current_size, first, static_cast(links)...); diff --git a/include/etl/intrusive_list.h b/include/etl/intrusive_list.h index 30cf7d50..49bfea05 100644 --- a/include/etl/intrusive_list.h +++ b/include/etl/intrusive_list.h @@ -692,9 +692,11 @@ namespace etl template intrusive_list(link_type& first, TLinks&... links) { - current_size = 0; + ETL_STATIC_ASSERT((etl::is_base_of_all::value), "Mixed link types"); + + this->current_size = 0; this->terminal_link.etl_next = &first; - link_type* last = make_linked_list(current_size, first, static_cast(links)...); + link_type* last = make_linked_list(this->current_size, first, static_cast(links)...); first.etl_previous = &this->terminal_link; last->etl_next = &this->terminal_link; this->terminal_link.etl_previous = last;