【发布时间】:2014-06-19 00:50:16
【问题描述】:
我一直在使用 0.10,最近设置了一个 nightly 版本来试验 Box 和朋友。
现在我有使用 ~str 的 0.10 代码和使用 String 的 pre0.11 代码,因为 to_owned 已过时。我想我可以这样做:
#[cfg(rust_version = "0.10")]
fn my_old_func() -> Option<~str> {
}
#[cfg(not(rust_version = "0.10")]
fn my_old_func() -> Option<String> {
}
并在编译期间传递--cfg rust_version:0.11。但是编译器仍然对现在删除的~ 运算符感到窒息。有没有办法使用条件编译或其他机制让代码在 0.10 和尚未发布的 0.11 下都可以工作?
我想我可以回退到使用 cpp 和 #ifdef 但这似乎是在跳出 Rust 思维方式。
【问题讨论】:
-
顺便说一句,我认为您必须通过
--cfg 'rust_version="0.11"'才能使cfg工作。
标签: rust rust-obsolete