小编Fab*_*ian的帖子

CMake:将框架复制到App Bundle中

在我的项目目录中,我有一些第三方框架,即SFML,我需要在构建应用程序时将其复制到应用程序包中.任何干净的方法(可能像Xcode中的复制文件构建阶段)?

谢谢

macos frameworks cmake

11
推荐指数
1
解决办法
5092
查看次数

signalfd 的替代方案

是否有替代方案signalfd(在 Mac OS X 上不可用)?我正在使用复用 I/O select,并希望以某种同步方式接收信号。

macos signals

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

`if`条件仍在借用

我刚刚遇到Rust的一些行为(1.12)我无法解释.我有一个结构,实现延迟加载与a RefCell<Option<i32>>和一个访问数据的函数:

struct Foo {
    data: RefCell<Option<i32>>
}

impl Foo {
    fn get_data(&self) -> i32 {
        if self.data.borrow().is_none() { // <--- (a)
            let d = 1337;
            self.data.borrow_mut() = Some(d); // <--- (b)
            d
        } else {
            self.data.borrow().unwrap()
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

这会编译但会产生运行时错误:RefCell抱怨在尝试borrow_mut上线(b)时借用已经处于活动状态.但是,如果我将if语句更改为以下内容,则不会发生此问题:

let is_none = self.data.borrow().is_none();
if is_none {
Run Code Online (Sandbox Code Playgroud)

问题:为什么第(a)行的if条件中的借位在if语句的主体内仍然有效?不应该打电话is_none()导致借款结束,因为我只是坚持一个bool事后,而不是借来的价值?

rust

5
推荐指数
1
解决办法
160
查看次数

标签 统计

macos ×2

cmake ×1

frameworks ×1

rust ×1

signals ×1