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:
parent
93cf01ad7d
commit
5a0cdb15b0
41 changed files with 111 additions and 92 deletions
|
@ -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;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue