c++的rust安全规则举例分析

这篇文章主要介绍“c++的rust安全规则举例分析”,在日常操作中,相信很多人在c++的rust安全规则举例分析问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”c++的rust安全规则举例分析”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

专注于为中小企业提供网站制作、网站设计服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业和林格尔免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了上千家企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。

微软在c++静态分析工具实现了一些rust的安全规则

Rust和c++是两种流行的系统编程语言。多年来,c++的焦点一直放在性能上。我们越来越多地听到来自客户和安全研究人员的呼吁,认为c++语言应该有更强的安全保证。Visual Studio 2019 version 16.7 在c++的核心检查中包含了四个新规则,以将Rust的一些安全特性合并到c++中。

在Nightly Rust的路径修整

这个  Rust PR  (我正在做的)每晚都被合并到Rust中,这对编译器错误有着广泛的影响。
在错误中完整路径的问题:如下所示的简单程序将导致类型错误。

   
   
  
fn main() {
   let a = vec![vec![String::from("a")]];
   let b = vec![String::from("b")];
   a == b;
}
     
类型错误可以描述为:  cannot compare between values of the types Vec> and Vec  。在PR改变之前,这几乎是错误信息的第一行,其余的错误信息提供了更多关于特征的细节:

   
   
  
error[E0277]: can't compare `std::vec::Vec` with `std::string::String`
--> example.rs:5:7
 |
5 |     a == b;
 |       ^^ no implementation for `std::vec::Vec == std::string::String`
 |
 = help: the trait `std::cmp::PartialEq` is not implemented for `std::vec::Vec`
 = note: required because of the requirements on the impl of `std::cmp::PartialEq>` for `std::vec::Vec>`
     
值得注意的是,在上述错误中,造成认知负担的最大因素是类型和特征的完整合格路径(例如std::vec:: vec)。对很多人来说,它的可读性有很大的不同。

到此,关于“c++的rust安全规则举例分析”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注创新互联网站,小编会继续努力为大家带来更多实用的文章!


网站栏目:c++的rust安全规则举例分析
网站URL:http://hbruida.cn/article/jdpejs.html