Условная компиляция в Rust 0.10?
Я использую 0.10 и недавно настроил сборку по ночам, чтобы поэкспериментировать с Box и друзьями.
Теперь у меня есть код для 0.10, используя ~str
и код для pre0.11, используя String
потому что 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 мышления.
1 ответ
Решение
Нет, с этим ничего не поделаешь.
Наша типичная рекомендация - не использовать 0,10, а придерживаться ночных.