小编Nic*_*hop的帖子

如何lint C++代码来查找所有未使用的返回值?

我想静态检查所有对未使用返回值的非void函数的调用.

实际上,这就像应用于__attribute__ ((warn_unused_result))所有非空函数一样,但当然对于一个不切实际的大型项目.

有没有可以提供此信息的静态分析工具?

c++ static-analysis

9
推荐指数
1
解决办法
333
查看次数

我应该使用什么目标三元组来为 AWS Graviton2 实例构建 Rust 项目?

我想在 amd64 主机系统上交叉编译 Rust 代码,以便在AWS Graviton2实例上运行。

基于Graviton 上的 C/C++ 入门指南,我似乎想要类似的东西armv8Rust 支持的目标三元组列表中唯一这样的三元组以 开头thumbv8m。我对 ARM 一无所知,所以不确定这些是否是我想要的,如果是,是哪一个。

arm cross-compiling amazon-ec2 rust

8
推荐指数
1
解决办法
1584
查看次数

当include_bytes宏中包含的文件更改时,如何告诉Cargo重建?

我正在使用include_bytes!宏将GLSL着色器编译为rust程序。但是,Cargo似乎没有意识到这一点:当我只修改着色器文件并用cargo run未编译的更新文件对其进行测试时,手动.rs操作包含着色器的文件即可。

我是否需要添加一些内容以明确Cargo.toml说明这种依赖性?

版本信息:

$ rustc --version && cargo --version
rustc 1.0.0-nightly (ecf8c64e1 2015-03-21) (built 2015-03-22)
cargo 0.0.1-pre-nightly (e689383 2015-03-16) (built 2015-03-16)
Run Code Online (Sandbox Code Playgroud)

embedded-resource rust rust-cargo

6
推荐指数
1
解决办法
802
查看次数

如何在Rust中为具体的错误类型和Box <Error>实施From?

这是我的测试代码:

use std::error::Error;
use std::fmt;

struct Handler {
    error: String
}

#[derive(Debug)]
struct SpecificError;

impl fmt::Display for SpecificError {
    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
        write!(f, "SpecificError")
    }
}

impl Error for SpecificError {}

impl<E: Error> From<E> for Handler {
    fn from(e: E) -> Self {
        Handler { error: format!("{}", e) }
    }
}

fn fail1() -> Result<(), SpecificError> {
    Err(SpecificError)
}

fn fail2() -> Result<(), Box<Error>> {
    Err(Box::new(SpecificError))
}

fn handler() -> Result<(), Handler> {
    fail1()?;
    fail2()?; …
Run Code Online (Sandbox Code Playgroud)

rust

3
推荐指数
1
解决办法
194
查看次数

切片迭代器可以在恒定时间内推进多个元素吗?

一些示例代码:(游戏围栏)

let data = [0, 1, 2, 3, 4];
let mut iter = data.iter();
println!("{}", iter.next().unwrap());
println!("{}", iter.skip(3).next().unwrap());
Run Code Online (Sandbox Code Playgroud)

按预期打印0和4.

我很好奇切skip片迭代器的操作是否是恒定时间?在源代码中我只找到了这个实现skip,这导致了Skip struct的Iterator实现.

这似乎是一个通用的O(n)跳过,我看不到任何可以做指针算术的基于指针的迭代器的专门化.

我错过了一些关于实施的内容skip吗?或者还有其他方法可以做到这一点吗?

iterator rust

2
推荐指数
1
解决办法
317
查看次数