Подтвердить что ты не робот

Гарантировано ли bool 1 байт?

Документация по ржавчине расплывчата в размере bool.
Гарантируется ли он 1 байт, или он не указан как С++?

fn main() {
    use std::mem;
    println!("{}",mem::size_of::<bool>()); //always 1?
}
4b9b3361

Ответ 1

Rust испускает i1 в LLVM для bool и полагается на все, что он производит. LLVM использует i8 (один байт) для представления i1 в памяти для всех платформ, поддерживаемых Rust на данный момент. С другой стороны, нет уверенности в будущем, так как разработчики Rust отказываются передавать конкретное представление bool.

Таким образом, он гарантируется текущей реализацией, но не гарантируется никакими спецификациями.

Вы можете найти более подробную информацию в этом обсуждении в формате RFC и связанном PR и проблеме.