rust是否具有在编译期进行类型萃取,或者查询某类型是否满足某些约束(比如是否实现某trait,是否具有某方法)。 并根据查询结果指导代码生成和选择的能力。
可以类比为需要c++的模板特化、偏特化以及concept这样的功能。
因为接触rust的时间不长,平时写c++习惯了,个人感觉单纯基于trait的抽象能力还是有限,宏系统一方面对IDE实在不友好,另一方面貌似和类型系统离得比较远。
这不是输出暴论,只是阐述我目前的认知,欢迎大家修正,想知道面对这样的需求的最佳实践是什么样的。
1
共 3 条评论, 1 页
评论区
写评论属性宏,编译时直接改语法树.怎么折腾都行
与 C++ 模版特化类似的特性正在被实验:https://github.com/rust-lang/rust/issues/31844,我之前谷歌rust check if impl trait 的时候了解到的,至于 concept,粗看有点像 trait,我帮你谷歌了一下“C++ concept rust trait”,找到了几个回答和这篇文章。
rust 目前可以用宏处理