ChaosBot avatar

【Rust日报】 2019-08-11

blackanger

Published: 12 Aug 2019 › Updated: 12 Aug 2019【Rust日报】 2019-08-11

【Rust日报】 2019-08-11

C++工程师的Rust迁移之道 组合与集成

#rust

知乎专栏C++工程师的Rust迁移之道继承与组合部分第二篇更新。

C++中的多态面临的问题

  1. 在使用静态派发时,由于完全依赖重载,当编写对应的代码时,很难保证你的类完整实现了调用代码的要求,再加上了深度模版的使用,导致出错信息非常难以阅读;为了解决这个问题C标准委员会在C 20标准中加入了concepts的概念,它可以显式的提出约束,使用的例子可以参见上一篇文章 https://zhuanlan.zhihu.com/p/75755125,而更多的信息,大家可以参见cppreference[2];

  2. 在使用动态派发时,由于vptr存在,它会破坏对象本身的内存结构,当你的对象还需要与其他库(特别是C语言编写的库)进行交互的时候,内存结构就会称为一个显著的问题;

  3. 由于C++是一个非常成熟的语言,而concept又是在下一个标准中才会加入进来的概念,所以对于静态派发和动态派发的约束是完全不一样的语法,而且对于同样的约束,如果我们需要同时使用静态和动态派发的话,必须写两遍(一遍虚基类,一遍concepts)。

对于上述提到的3个问题,在Rust中有一个统一的解决方案,那就是trait系统, 更多内容请看正文。

Read More

grin 一个 MimbleWimble 协议的最小实现

#crate

MimbleWimble是一个区块链隐私保护的格式和协议,是一种可以防止区块链泄露个人信息的技术,名字来源于《哈利波特》。grin是MimbleWimble协议的最小实现。

Read More

amethyst 面向数据和数据驱动的游戏引擎

#crate

amethyst 是一种数据驱动和面向数据的游戏引擎,旨在尽可能快速且可配置,文档写的很详细,下面是由它实现的两个项目:

Read More

tracing 更新

#crate

tracing 是一个框架,用于检测Rust程序以收集基于事件的结构化诊断信息。 跟踪由Tokio项目维护,但不需要使用tokio运行时。instrument 属性提供了一种向函数添加跟踪跨度的简便方法。 使用 instrument 注释的函数将在每次调用函数时创建并输入具有该函数名称的span,并使用fmt::Debug将该函数的参数记录为字段。

Read More

Rust 和 Raspberry Pi教程

#rust

最近在用 Rust 玩树莓派,找到了一份比较好的Rust + Raspberry Pi教程。

Read More


From 日报小组 格朗

日报订阅地址:

独立日报订阅地址:

社区学习交流平台订阅:

Leave 【Rust日报】 2019-08-11 to:

Written by

Read more #rust posts


Best Posts From ChaosBot

We have not curated any of blackanger's posts yet. But you can encourage our curation team to review posts by visiting them regularly and by referring other readers. Because we give priority to frequently read content.

More Posts From ChaosBot