小编Ern*_*dar的帖子

为什么C和C ++允许表达式(int)+ 4 * 5?

(int) + 4*5;
Run Code Online (Sandbox Code Playgroud)

为什么这样做(添加带有值的类型)是可能的?(尝试使用g ++和gcc。)

我知道这没有任何意义(也没有影响),但是我想知道为什么这是可能的。

c c++ casting language-lawyer

83
推荐指数
2
解决办法
8196
查看次数

为什么 rustc 说推断的类型不匹配?

如果我尝试创建一个函数指针向量,编译器总是会抱怨错误的类型(尽管我没有明确声明任何类型):

fn abc() {}

fn def() {}

fn main()
{
    let a = vec![abc, def];
}
Run Code Online (Sandbox Code Playgroud)

https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=ef52fe778db1112433d20dd02b3d0b54

error[E0308]: mismatched types
 --> src/main.rs:5:13
  |
5 |     let a = vec![abc, def];
  |             ^^^^^^^^^^^^^^ expected slice, found array of 2 elements
  |
  = note: expected struct `Box<[fn() {abc}], _>`
             found struct `Box<[fn(); 2], std::alloc::Global>`
  = note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)

error: aborting due to previous error

For more information about …
Run Code Online (Sandbox Code Playgroud)

types type-inference typeerror rust

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

标签 统计

c ×1

c++ ×1

casting ×1

language-lawyer ×1

rust ×1

type-inference ×1

typeerror ×1

types ×1