1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-27 19:47:34 +00:00

AK+Everywhere: Reduce the number of template parameters of IntrusiveList

This makes the user-facing type only take the node member pointer, and
lets the compiler figure out the other needed types from that.
This commit is contained in:
Ali Mohammad Pur 2021-09-09 16:30:59 +04:30 committed by Idan Horowitz
parent 93cf01ad7d
commit 5a0cdb15b0
41 changed files with 111 additions and 92 deletions

View file

@ -9,6 +9,7 @@
#include <AK/IntrusiveList.h>
namespace AK {
namespace Detail {
template<class T, typename Container, IntrusiveListNode<T, Container> T::*member>
class IntrusiveListRelaxedConst : public IntrusiveList<T, Container, member> {
@ -26,4 +27,12 @@ public:
}
template<auto member>
using IntrusiveListRelaxedConst = Detail::IntrusiveListRelaxedConst<
decltype(Detail::ExtractIntrusiveListTypes::value(member)),
decltype(Detail::ExtractIntrusiveListTypes::container(member)),
member>;
}
using AK::IntrusiveListRelaxedConst;