Skip to content

Commit bd558ca

Browse files
committed
prefix move/forward to fix ADL conflicts
1 parent 8a53eeb commit bd558ca

37 files changed

+156
-156
lines changed

README.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -271,7 +271,6 @@ For faster parallel builds, you can instead generate [ninja](https://ninja-build
271271

272272
## To-Dos
273273

274-
- Fix ADL conflict with std::
275274
- Modules
276275
- Async
277276
- [ ] scheduler priorities

rpp/alloc0.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ struct Scalar_Adaptor {
3535
requires Allocator<A> && Constructable<T, Args...>
3636
[[nodiscard]] static T* make(Args&&... args) noexcept {
3737
T* mem = reinterpret_cast<T*>(A::alloc(sizeof(T)));
38-
new(mem) T{forward<Args>(args)...};
38+
new(mem) T{rpp::forward<Args>(args)...};
3939
return mem;
4040
}
4141

@@ -139,7 +139,7 @@ struct Free_List {
139139
template<typename... Args>
140140
requires Constructable<T, Args...>
141141
[[nodiscard]] T* make(Args&&... args) noexcept {
142-
return new(alloc()) T{forward<Args>(args)...};
142+
return new(alloc()) T{rpp::forward<Args>(args)...};
143143
}
144144

145145
void destroy(T* value) noexcept {

rpp/alloc1.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ struct Pool {
3636
Thread::Lock lock(mutex);
3737
block = list.make();
3838
}
39-
new(block->data) T{forward<Args>(args)...};
39+
new(block->data) T{rpp::forward<Args>(args)...};
4040
return reinterpret_cast<T*>(block);
4141
}
4242

@@ -79,7 +79,7 @@ struct Mpool {
7979
template<typename T, typename... Args>
8080
requires Constructable<T, Args...>
8181
[[nodiscard]] constexpr static T* make(Args&&... args) noexcept {
82-
return detail::Pool<sizeof(T)>::template make<T, Args...>(forward<Args>(args)...);
82+
return detail::Pool<sizeof(T)>::template make<T, Args...>(rpp::forward<Args>(args)...);
8383
}
8484

8585
template<typename T>

rpp/array.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ struct Array {
1818

1919
template<typename... S>
2020
requires Length<N, S...> && All_Are<T, S...>
21-
constexpr explicit Array(S&&... init) noexcept : data_{forward<S>(init)...} {
21+
constexpr explicit Array(S&&... init) noexcept : data_{rpp::forward<S>(init)...} {
2222
}
2323

2424
template<typename... S>

rpp/box.h

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,13 +14,13 @@ struct Box {
1414
explicit Box(T&& value) noexcept
1515
requires Move_Constructable<T>
1616
{
17-
data_ = A::template make<T>(move(value));
17+
data_ = A::template make<T>(rpp::move(value));
1818
}
1919

2020
template<typename... Args>
2121
requires Constructable<T, Args...>
2222
explicit Box(Args&&... args) noexcept {
23-
data_ = A::template make<T>(forward<Args>(args)...);
23+
data_ = A::template make<T>(rpp::forward<Args>(args)...);
2424
}
2525

2626
template<Base_Of<T> D>
@@ -57,7 +57,7 @@ struct Box {
5757
[[nodiscard]] static Box make(Args&&... args) noexcept {
5858
Box ret;
5959
auto data = A::template make<Storage<T>>();
60-
new(data->data()) T{forward<Args>(args)...};
60+
new(data->data()) T{rpp::forward<Args>(args)...};
6161
ret.data_ = reinterpret_cast<T*>(data);
6262
return ret;
6363
}
@@ -78,7 +78,7 @@ struct Box {
7878
template<typename... Args>
7979
void emplace(Args&&... args) noexcept {
8080
this->~Box();
81-
data_ = A::template make<T>(forward<Args>(args)...);
81+
data_ = A::template make<T>(rpp::forward<Args>(args)...);
8282
}
8383

8484
[[nodiscard]] T* operator->() noexcept {

rpp/files.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ using File_Time = u64;
1818

1919
struct Write_Watcher {
2020

21-
explicit Write_Watcher(String_View path) noexcept : path_(move(path)) {
21+
explicit Write_Watcher(String_View path) noexcept : path_(rpp::move(path)) {
2222
Opt<File_Time> time = last_write_time(path_);
2323
if(time.ok()) last_write_time_ = *time;
2424
}

rpp/format1.h

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ template<Enum E>
2828
return {};
2929
}
3030
String_View rest = input.sub(end - start, input.length());
31-
return Opt<Pair<i64, String_View>>{Pair{ret, move(rest)}};
31+
return Opt<Pair<i64, String_View>>{Pair{ret, rpp::move(rest)}};
3232
}
3333
}
3434

@@ -42,7 +42,7 @@ template<Enum E>
4242
return {};
4343
}
4444
String_View rest = input.sub(end - start, input.length());
45-
return Opt<Pair<f32, String_View>>{Pair{ret, move(rest)}};
45+
return Opt<Pair<f32, String_View>>{Pair{ret, rpp::move(rest)}};
4646
}
4747
}
4848

@@ -67,10 +67,10 @@ template<Enum E>
6767
[[nodiscard]] inline Opt<Pair<E, String_View>> parse_enum(String_View s) noexcept {
6868
Opt<Pair<E, String_View>> ret = {};
6969
if(auto n = parse_string(s); n.ok()) {
70-
auto [name, rest] = move(*n);
70+
auto [name, rest] = rpp::move(*n);
7171
iterate_enum<E>([&](const Literal& check, const E& check_value) {
7272
if(name == String_View{check}) {
73-
ret = Opt<Pair<E, String_View>>{Pair<E, String_View>{check_value, move(rest)}};
73+
ret = Opt<Pair<E, String_View>>{Pair<E, String_View>{check_value, rpp::move(rest)}};
7474
}
7575
});
7676
}

rpp/function.h

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ struct Function<Words, R(Args...)> {
2222
template<typename F>
2323
requires Same<Invoke_Result<F, Args...>, R>
2424
Function(F&& f) noexcept {
25-
construct(forward<F>(f));
25+
construct(rpp::forward<F>(f));
2626
}
2727
~Function() noexcept {
2828
destruct();
@@ -46,7 +46,7 @@ struct Function<Words, R(Args...)> {
4646

4747
[[nodiscard]] R operator()(Args... args) noexcept {
4848
assert(vtable);
49-
return invoke(forward<Args>(args)...);
49+
return invoke(rpp::forward<Args>(args)...);
5050
}
5151

5252
private:
@@ -61,23 +61,23 @@ struct Function<Words, R(Args...)> {
6161
static VoidFn f_vtable[] = {reinterpret_cast<VoidFn>(&f_destruct<F>),
6262
reinterpret_cast<VoidFn>(&f_move<F>),
6363
reinterpret_cast<VoidFn>(&f_invoke<F>)};
64-
new(storage) F{forward<F>(f)};
64+
new(storage) F{rpp::forward<F>(f)};
6565
vtable = static_cast<VoidFn*>(f_vtable);
6666
}
6767
void destruct() noexcept {
6868
if(vtable) {
69-
void (*destruct)(void*) = reinterpret_cast<void (*)(void*)>(vtable[0]);
70-
destruct(storage);
69+
void (*do_destruct)(void*) = reinterpret_cast<void (*)(void*)>(vtable[0]);
70+
do_destruct(storage);
7171
}
7272
vtable = null;
7373
}
7474
void move(void* dst) noexcept {
75-
void (*move)(void*, void*) = reinterpret_cast<void (*)(void*, void*)>(vtable[1]);
76-
move(dst, storage);
75+
void (*do_move)(void*, void*) = reinterpret_cast<void (*)(void*, void*)>(vtable[1]);
76+
do_move(dst, storage);
7777
}
7878
[[nodiscard]] R invoke(Args... args) noexcept {
79-
R (*invoke)(void*, Args...) = reinterpret_cast<R (*)(void*, Args...)>(vtable[2]);
80-
return invoke(storage, forward<Args>(args)...);
79+
R (*do_invoke)(void*, Args...) = reinterpret_cast<R (*)(void*, Args...)>(vtable[2]);
80+
return do_invoke(storage, rpp::forward<Args>(args)...);
8181
}
8282

8383
template<typename F>
@@ -96,7 +96,7 @@ struct Function<Words, R(Args...)> {
9696
}
9797
template<typename F>
9898
[[nodiscard]] static R f_invoke(F* src, Args... args) noexcept {
99-
return src->operator()(forward<Args>(args)...);
99+
return src->operator()(rpp::forward<Args>(args)...);
100100
}
101101

102102
alignas(MAX_ALIGN) u8 storage[Words * 8] = {};

rpp/hash.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -81,17 +81,17 @@ concept Hashable = requires(K k) {
8181

8282
template<Hashable T>
8383
[[nodiscard]] constexpr u64 hash(T&& value) noexcept {
84-
return Hash::Hash<Decay<T>>::hash(forward<T>(value));
84+
return Hash::Hash<Decay<T>>::hash(rpp::forward<T>(value));
8585
}
8686

8787
template<Hashable T>
8888
[[nodiscard]] constexpr u64 hash_nonzero(T&& value) noexcept {
89-
return Hash::Hash<Decay<T>>::hash(forward<T>(value)) | 1;
89+
return Hash::Hash<Decay<T>>::hash(rpp::forward<T>(value)) | 1;
9090
}
9191

9292
template<Hashable... Ts>
9393
[[nodiscard]] constexpr u64 hash(Ts&&... values) noexcept {
94-
return Hash::squirrel5((hash(forward<Ts>(values)) + ...));
94+
return Hash::squirrel5((hash(rpp::forward<Ts>(values)) + ...));
9595
}
9696

9797
template<size_t N>

rpp/heap.h

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ struct Heap {
2020
requires All_Are<T, S...> && Move_Constructable<T>
2121
explicit Heap(S&&... init) noexcept {
2222
reserve(sizeof...(S));
23-
(push(forward<S>(init)), ...);
23+
(push(rpp::forward<S>(init)), ...);
2424
}
2525

2626
explicit Heap(const Heap& src) noexcept = delete;
@@ -91,7 +91,7 @@ struct Heap {
9191
} else {
9292
static_assert(Move_Constructable<T>);
9393
for(u64 i = 0; i < length_; i++) {
94-
new(&new_data[i]) T{move(data_[i])};
94+
new(&new_data[i]) T{rpp::move(data_[i])};
9595
}
9696
}
9797
A::free(data_);
@@ -130,7 +130,7 @@ struct Heap {
130130
requires Move_Constructable<T>
131131
{
132132
if(full()) grow();
133-
new(&data_[length_++]) T{move(value)};
133+
new(&data_[length_++]) T{rpp::move(value)};
134134
reheap_up(length_ - 1);
135135
}
136136

@@ -139,7 +139,7 @@ struct Heap {
139139
requires Constructable<T, Args...>
140140
{
141141
if(full()) grow();
142-
new(&data_[length_++]) T{forward<Args>(args)...};
142+
new(&data_[length_++]) T{rpp::forward<Args>(args)...};
143143
reheap_up(length_ - 1);
144144
}
145145

@@ -158,7 +158,7 @@ struct Heap {
158158
Libc::memcpy(data_, data_ + length_, sizeof(T));
159159
} else {
160160
static_assert(Move_Constructable<T>);
161-
new(data_) T{move(data_[length_])};
161+
new(data_) T{rpp::move(data_[length_])};
162162
}
163163
reheap_down(0);
164164
}
@@ -188,9 +188,9 @@ struct Heap {
188188
void swap(u64 a, u64 b) noexcept
189189
requires Move_Constructable<T>
190190
{
191-
T temp{move(data_[a])};
192-
new(&data_[a]) T{move(data_[b])};
193-
new(&data_[b]) T{move(temp)};
191+
T temp{rpp::move(data_[a])};
192+
new(&data_[a]) T{rpp::move(data_[b])};
193+
new(&data_[b]) T{rpp::move(temp)};
194194
}
195195

196196
void reheap_up(u64 idx) noexcept

0 commit comments

Comments
 (0)