以下 Rust 中的 C++ 程序的等价物是什么?
#include <iostream>
#include <vector>
template <typename T>
T stuff() {
return T();
}
int main() {
std::vector<int> vec = stuff<std::vector<int>>();
vec.push_back(1);
for (auto &&i : vec) {
std::cout << i << std::endl;
}
}
Run Code Online (Sandbox Code Playgroud)
我尝试了以下方法:
trait Newable{
fn new() -> Self;
}
fn stuff<T: Newable>() -> T {
T::new()
}
Run Code Online (Sandbox Code Playgroud)
我尝试为此使用新类型 -
struct NwVec<T>{
vec: Vec<T>
}
impl<T> Newable<T> for NwVec<T>{
fn new() -> Self {
NwVec { vec: Vec::new() }
}
}
Run Code Online (Sandbox Code Playgroud)
并像这样使用它:
fn …Run Code Online (Sandbox Code Playgroud)