当前位置: 首页 > 知识库问答 >
问题:

带有大小超性状的性状仍然有错误“std::标记::大小不满意”[重复]

齐建白
2023-03-14

我有以下代码:

use std::collections::HashMap;

trait T: Sized {}

struct A;

impl T for A {}

fn main() {
    let h: HashMap<String, T>;
}

但是编译器抱怨道:

error[E0277]: the trait bound `T: std::marker::Sized` is not satisfied
  --> src\main.rs:10:12
   |
10 |     let h: HashMap<String, T>;
   |            ^^^^^^^^^^^^^^^^^^ `T` does not have a constant size known at compile-time
   |
   = help: the trait `std::marker::Sized` is not implemented for `T`
   = note: required by `std::collections::HashMap`

error[E0038]: the trait `T` cannot be made into an object
  --> src\main.rs:10:12
   |
10 |     let h: HashMap<String, T>;
   |            ^^^^^^^^^^^^^^^^^^ the trait `T` cannot be made into an object
   |
   = note: the trait cannot require that `Self : Sized`

我不理解错误信息,因为我已经将我的特征< code>T标记为< code > size 。我错过了什么吗?

共有1个答案

晁文斌
2023-03-14

因为我已经将我的特征< code>T标记为< code > size

不,你没有。你说过任何实现T的类型都必须是Sated。trait本身仍然没有大小。您要么需要一个trait对象(例如Box

 类似资料:
  • 我已经尝试了至少2天,现在控制一个pdf文件的有效性图标的大小,当签署。 null 任何建议都将受到高度赞赏。

  • 问题内容: 我不明白为什么我缩小屏幕时字体没有减小。 我将所有CSS都设置为百分比,以便所有内容都能响应。 相反,当我缩小屏幕时,字体不会改变大小,从而弄乱了设计。 我正在24英寸显示器上构建我的投资组合站点,然后在13英寸屏幕上对其进行检查以确保它可以缩放。 问题答案: 我认为您要寻找的是 视口百分比单位 。 尝试这个: 通过此调整,当您调整浏览器窗口的大小时,字体将按比例缩放。 从规格: 5.

  • 问题内容: 我正在使用Direct Web Remoting(DWR)JavaScript库文件,并且仅在Safari(台式机和iPad)中出现错误 它说 超出最大呼叫堆栈大小。 该错误的确切含义是什么,它会完全停止处理吗? 也适用于浏览器的所有修复程序(实际上在上, JS:执行超出超时 我假设是相同的调用堆栈问题) 问题答案: 这意味着在代码的某处,你正在调用一个函数,该函数又调用另一个函数,依

  • 问题内容: 我注意到秋千上的容器之间有奇怪的行为。 为了举例说明该测试,我创建了一个JFrame和一个JPanel,并将面板设置为 contentPane。我将首选和最大的JPanel大小定义为400,300。所有 这些都可以在下面的示例中看到: The result is: 令我惊讶的是,终端的输出为: 面板尺寸:[400,300] 框架尺寸:[416,338] 我不明白为什么框架会增加这个额外

  • 在散点图的pyplot文档中: 标记大小 是哪种单位?这是什么意思?是否意味着? 基本上,我试图用不同的标记大小绘制散点图,我想弄清楚数字的含义。