Xem mã này:Tương đương với constexpr từ C++?
fn main() {
let something_const = 42;
fn multiply(nbr: i32) -> i32 {
nbr * something_const
}
println!("{}", multiply(1));
}
rustc
đầu ra mà
error[E0434]: can't capture dynamic environment in a fn item; use the || { ... } closure form instead
--> main.rs:19:15
|
19 | nbr * something_const
| ^^^^^^^^^^^^^^^
Nhưng something_const
là không năng động, bởi vì nó được biết đến tại thời gian biên dịch.
Có tương đương với Rust của cơ chế C++ constexpr
không?
Quá xấu đến mức hàm const rất hạn chế ngay cả vào ban đêm. Về cơ bản chỉ có đệ quy đuôi. –
@AleksanderFular: Có công việc liên tục trên một bộ đánh giá liên tục rất có khả năng được gọi là [miri] (https://github.com/solson/miri) (aka, MIR interpreter). Bây giờ, cộng đồng Rust chủ yếu là nội dung để "chờ đợi" và xem solson và thử nghiệm oli-obk và xem những gì có thể, những gì không, những gì quá tốn kém, những cạm bẫy, vv ... lưu ý rằng MIRI là đáng kể hơn tiên tiến hơn so với C++ 's constexpr: nó xử lý phân bổ bộ nhớ! –
@AleksanderFular: Kể từ khi tôi đi qua ... dự án [MIRI] (https://github.com/solson/miri), một thông dịch viên cho MIR Đại diện trung gian cấp trung được sử dụng bởi rustc, đã hạ cánh trong rustc, và đã 1,24 đã ổn định một số chức năng như 'const' như' mem :: size_of'. –