templates - 如何在 Rust 中使用数值作为泛型参数?

标签 templates generics rust

我正在作为初学者学习 Rust。 我很好奇我们如何使用数值作为泛型参数,这些参数将在编译时编译,类似于 C++ 中的模板

这是等效的 C++ 代码。

template<class T, int dim>
struct vec {
    std::array<T, dim> data;
    vec(): data() {}
    vec(const vec<T, dim>& obj): data(obj.data) {}
    ~vec() {}
};
int main() {
    vec<float, 3> v3;
}

上面的代码将被编译为

struct vec {
    std::array<float, 3> data;
    vec(): data() {}
    vec(const vec<float, 3>& obj): data(obj.data) {}
    ~vec() {}
};
int main() {
    vec v3;
}

最佳答案

我相信您正在寻找const generics ,尚未登陆稳定的 Rust。你可能会找到一个例子 here使用不稳定的 Rust。

关于templates - 如何在 Rust 中使用数值作为泛型参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56814880/

相关文章:

visual-studio - C# 如何使用 IEnumerator 创建通用列表集合

swift - 如何将通用序列参数约束为 Swift 3 中的元组?

generics - Rust 中 trait 的冲突实现

c++ - 模板模板参数 : no matching call found

c++ - 返回类型取决于模板参数

java - 在方法参数中强制执行泛型类型相等性约束

module - Rust 无法将 Singleton 从全局空间导入另一个文件中的另一个模块

multithreading - 如何从函数返回 JoinHandle?

c++ - 使用 C++ 模板实现访问者模式

c++ - 如何将两个类之间的严重依赖性表达为子类化的一种契约?