#C++
#Rust
#类型推断
C++后来引入了auto关键字用于类型推断,但是这个类型系统在Rust面前就是个弟弟,因为经常会给推出来可能编译报警的类型。
例如代码:
这在某些编译器上会报警:comparison of integer expressions of different signedness
这是因为这里的auto i进行类型推断时使用了int,而vector的size类型是size_t,一个是有符号整型,一个是无符号整型,在数据溢出的时候这个对比会判断出错,所以才有的这个告警。
我的问题是:既然如此,这里的auto i就应该推断成size_t才对。不然要你这个类型推断有何用啊?
#Rust
#类型推断
C++后来引入了auto关键字用于类型推断,但是这个类型系统在Rust面前就是个弟弟,因为经常会给推出来可能编译报警的类型。
例如代码:
for (auto i = 0; i < expected_actions.size(); ++i)
这在某些编译器上会报警:comparison of integer expressions of different signedness
这是因为这里的auto i进行类型推断时使用了int,而vector的size类型是size_t,一个是有符号整型,一个是无符号整型,在数据溢出的时候这个对比会判断出错,所以才有的这个告警。
我的问题是:既然如此,这里的auto i就应该推断成size_t才对。不然要你这个类型推断有何用啊?
❤1