Skip to content

Commit b1ac983

Browse files
committed
Add emplace_back for deque
1 parent 989e489 commit b1ac983

3 files changed

Lines changed: 28 additions & 0 deletions

File tree

‎rules/deque/src.cpp‎

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44
#include <deque>
55
#include <vector>
66

7+
template <typename T, typename A> using Init = A;
8+
79
template <typename T1> using t1 = std::deque<T1>;
810

911
template <typename T1> T1 &f1(std::deque<T1> &o) { return o.back(); }
@@ -40,3 +42,14 @@ template <typename T1>
4042
std::deque<T1> &f11(std::deque<T1> &dst, std::deque<T1> &&src) {
4143
return dst.operator=(std::move(src));
4244
}
45+
46+
template <typename T1, typename... Args>
47+
T1 &f12(std::deque<T1> &o, Init<T1, Args> &&...args) {
48+
return o.emplace_back(std::forward<Args>(args)...);
49+
}
50+
51+
template <typename T1, typename... Args>
52+
std::vector<T1> &f13(std::deque<std::vector<T1>> &o,
53+
Init<std::vector<T1>, Args> &&...args) {
54+
return o.emplace_back(std::forward<Args>(args)...);
55+
}

‎rules/deque/tgt_refcount.rs‎

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,3 +24,8 @@ fn f10<T1: Clone + ByteRepr>(a0: Ptr<Vec<T1>>, a1: Vec<T1>) {
2424
fn f11<T1: ByteRepr + Clone>(a0: Ptr<Vec<T1>>, a1: &mut Vec<T1>) {
2525
a0.write(std::mem::take(&mut *a1))
2626
}
27+
28+
fn f13<T1: ByteRepr>(a0: Ptr<Vec<Value<Vec<T1>>>>, init: Vec<T1>) {
29+
let __init = init;
30+
a0.with_mut(|__v: &mut Vec<Value<Vec<T1>>>| __v.push(Rc::new(RefCell::new(__init))))
31+
}

‎rules/deque/tgt_unsafe.rs‎

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,3 +48,13 @@ unsafe fn f10<T1: Clone>(a0: &mut Vec<T1>, a1: Vec<T1>) {
4848
unsafe fn f11<T1>(a0: &mut Vec<T1>, a1: &mut Vec<T1>) {
4949
*a0 = std::mem::take(&mut *a1)
5050
}
51+
52+
unsafe fn f12<T1>(a0: &mut Vec<T1>, init: T1) {
53+
let __init = init;
54+
a0.push(__init)
55+
}
56+
57+
unsafe fn f13<T1>(a0: &mut Vec<Vec<T1>>, init: Vec<T1>) {
58+
let __init = init;
59+
a0.push(__init)
60+
}

0 commit comments

Comments
 (0)