在C++中,模板不能生成动态库,只能通过头文件使用它们.
在C#中,泛型函数和类型可以通过中间语言在中进行解释.网
Rust没有虚拟机,泛型可以存储在rlib
个文件中.它是如何做到这一点的?rlib文件的格式是什么?
在C++中,模板不能生成动态库,只能通过头文件使用它们.
在C#中,泛型函数和类型可以通过中间语言在中进行解释.网
Rust没有虚拟机,泛型可以存储在rlib
个文件中.它是如何做到这一点的?rlib文件的格式是什么?
rlib
是一个包含额外元数据的常规静态库(以ar
格式构建).除其他外,该元数据还包含用于所有标记为#[inline]
的泛型和函数的完整序列化抽象语法树(AST).
这有点像是有一个C++编译器,把一个库的头文件推到编译的二进制文件中,然后在链接到那个库时再读出它们.