gpt4 book ai didi

generics - 如何静态地强制泛型类型具有特定的表示形式?

转载 作者:行者123 更新时间:2023-11-29 08:18:26 24 4
gpt4 key购买 nike

我有一个通用的 struct Foo<T>我想用于 FFI。例如,以下内容可用于内存映射实现。

use std::marker::PhantomData;
use memmap::MmapMut;

#[repr(C)]
struct Shared<T> {
foo: MmapMut,
_marker: PhantomData<T>,
}

我希望这是 FFI 安全的,所以我想强制执行 T 必须是repr(C) .问题是表示不是 Rust 中的特征,因此我没有看到静态强制执行此操作的直接方法,例如 struct Foo<T: ReprC>。会很好,但据我所知不存在。可以使用宏吗?

最佳答案

也许您可以制作一个特征 ReprC,并将其用作您的方法的特征绑定(bind)。这不是真正重要的强制执行,但它可能比文档更好。

关于generics - 如何静态地强制泛型类型具有特定的表示形式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50732290/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com