diff --git a/include/ircd/iov.h b/include/ircd/iov.h index 492013cd6..102460a41 100644 --- a/include/ircd/iov.h +++ b/include/ircd/iov.h @@ -57,11 +57,12 @@ template struct ircd::iov::node :iov::list_node { - iov &i; + iov *const i {nullptr}; operator const T &() const; operator T &(); + node() = default; template node(iov &, args&&...); node(node &&) = delete; node(const node &) = delete; @@ -74,7 +75,7 @@ template template ircd::iov::node::node(iov &iov, args&&... a) -:i{iov} +:i{&iov} { auto &list { @@ -99,7 +100,7 @@ template ircd::iov::node::~node() noexcept { - i.remove_if([this](const T &x) + i->remove_if([this](const T &x) { return &x == &static_cast(*this); });