TrinityCore
Loading...
Searching...
No Matches
ListUtils.h
Go to the documentation of this file.
1
/*
2
* This file is part of the TrinityCore Project. See AUTHORS file for Copyright information
3
*
4
* This program is free software; you can redistribute it and/or modify it
5
* under the terms of the GNU General Public License as published by the
6
* Free Software Foundation; either version 2 of the License, or (at your
7
* option) any later version.
8
*
9
* This program is distributed in the hope that it will be useful, but WITHOUT
10
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
12
* more details.
13
*
14
* You should have received a copy of the GNU General Public License along
15
* with this program. If not, see <http://www.gnu.org/licenses/>.
16
*/
17
18
#ifndef TRINITYCORE_LIST_UTILS_H
19
#define TRINITYCORE_LIST_UTILS_H
20
21
#include <forward_list>
22
#include <list>
23
24
namespace
Trinity::Containers::Lists
25
{
26
template
<
typename
T,
typename
Alloc = std::allocator<T>>
27
inline
typename
std::list<T, Alloc>::iterator
RemoveUnique
(std::list<T, Alloc>& list, std::type_identity_t<T>
const
& value)
28
{
29
auto
itr = std::find(list.begin(), list.end(), value);
30
if
(itr != list.end())
31
return
list.erase(itr);
32
33
return
list.end();
34
}
35
36
template
<
typename
T,
typename
Alloc = std::allocator<T>>
37
inline
typename
std::forward_list<T, Alloc>::iterator
RemoveUnique
(std::forward_list<T, Alloc>& list, std::type_identity_t<T>
const
& value)
38
{
39
auto
itr = list.before_begin();
40
auto
toErase = std::next(itr);
41
while
(toErase != list.end())
42
{
43
if
(*toErase == value)
44
return
list.erase_after(itr);
45
46
itr = toErase++;
47
}
48
49
return
list.end();
50
}
51
}
52
53
#endif
// TRINITYCORE_LIST_UTILS_H
Trinity::Containers::Lists
Definition
ListUtils.h:25
Trinity::Containers::Lists::RemoveUnique
std::list< T, Alloc >::iterator RemoveUnique(std::list< T, Alloc > &list, std::type_identity_t< T > const &value)
Definition
ListUtils.h:27
common
Containers
Utilities
ListUtils.h
Generated on Sun May 10 2026 02:08:51 for TrinityCore by
1.9.8