Rust documentation является неопределенным по размеру bool
.
Гарантировано, что это 1 байт, или это неуказано, как в C++?Является ли bool гарантией 1 байт?
fn main() {
use std::mem;
println!("{}",mem::size_of::<bool>()); //always 1?
}
Rust documentation является неопределенным по размеру bool
.
Гарантировано, что это 1 байт, или это неуказано, как в C++?Является ли bool гарантией 1 байт?
fn main() {
use std::mem;
println!("{}",mem::size_of::<bool>()); //always 1?
}
Rust излучает i1
в LLVM для bool
и полагается на то, что она производит. LLVM использует i8
(один байт) для представления i1
в памяти для всех платформ, поддерживаемых Rust на данный момент. С другой стороны, нет никакой уверенности в будущем, так как разработчики Rust отказываются передавать конкретное представление bool
.
Таким образом, это гарантируется текущей реализацией, но не гарантируется никакими спецификациями.
Подробнее см. В this RFC discussion и связанных с ним вопросах и проблемах.
В частности [этот комментарий] (https://github.com/rust-lang/rfcs/pull/954#issuecomment-83811006) в котором явно указано, что они не хотят связывать представление. –
Это связано с http://stackoverflow.com/q/36924530/5189607 – malbarbo