Skip to content

Commit d1012a2

Browse files
committed
Move alloc_of in traits
1 parent e473880 commit d1012a2

5 files changed

Lines changed: 21 additions & 26 deletions

File tree

‎rules/algorithm/src.cpp‎

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99
#include <type_traits>
1010
#include <vector>
1111

12-
#include "../common/alloc_of.h"
1312
#include "../common/traits.h"
1413

1514
template <typename T1> void f1(T1 first, T1 last) {

‎rules/common/alloc_of.h‎

Lines changed: 0 additions & 23 deletions
This file was deleted.

‎rules/common/traits.h‎

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,27 @@ template <typename T> struct RemoveConst<const T> {
2323
using type = T;
2424
};
2525

26+
template <typename T, typename D, typename... Args> struct FindAlloc {
27+
using type = D;
28+
};
29+
30+
template <typename T, typename D, template <typename, typename> class C,
31+
typename A, typename... Args>
32+
struct FindAlloc<T, D, C<T, A>, Args...> {
33+
using type = A;
34+
};
35+
36+
template <typename T, typename D, typename Arg, typename... Args>
37+
struct FindAlloc<T, D, Arg, Args...> : FindAlloc<T, D, Args...> {};
38+
39+
template <typename It, typename T, typename D> struct AllocOf {
40+
using type = D;
41+
};
42+
43+
template <template <typename...> class I, typename... Args, typename T,
44+
typename D>
45+
struct AllocOf<I<Args...>, T, D> : FindAlloc<T, D, Args...> {};
46+
2647
template <typename It, typename T>
2748
using SameAs = typename EnableIf<IsSame<It, T>::value>::type;
2849

‎rules/map/src.cpp‎

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66
#include <type_traits>
77
#include <utility>
88

9-
#include "../common/alloc_of.h"
109
#include "../common/traits.h"
1110

1211
template <typename T1, typename T2> using t1 = std::map<T1, T2>;

‎rules/vector/src.cpp‎

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88
#include <type_traits>
99
#include <vector>
1010

11-
#include "../common/alloc_of.h"
1211
#include "../common/init.h"
1312
#include "../common/traits.h"
1413

0 commit comments

Comments
 (0)