매크로를 사용하는 매크로 사용자가 직접 extern crate
을 종속 항목에 추가 할 필요가 없도록 #[macro_use] extern crate
을 pub use
과 비슷한 방법으로 다시 내보낼 수 있습니까?녹스름한 상태에서 '외부 상자'를 요구하지 않고 macro_rules에 다른 매크로 사용
나머지 질문은 예시입니다. src/lib.rs
에서
는 id
매크로가 lazy_static
매크로를 사용하고 있습니다 : 우리가 직접 매크로 id
를 사용하더라도
#[macro_export]
macro_rules! id {
() => {
lazy_static! {
static ref NUMBER : std::sync::atomic::AtomicUsize =
std::sync::atomic::AtomicUsize::new(0);
}
return NUMBER.fetch_add(1, std::sync::atomic::Ordering::SeqCst);
}
}
이 examples/example.rs
, 우리는 각 매크로에 대한 extern crate
라인이 필요합니다
id_macro
의 사용자가 약 01 모르고
id!
를 사용할 수있는 경우의 예에서
#[macro_use]
extern crate id_macro;
#[macro_use]
extern crate lazy_static;
fn new_id() -> usize {
id!();
}
fn main() {
println!("id {}", new_id()); // prints "id 0"
println!("id {}", new_id()); // prints "id 1"
}
, 그것은 좋은 것입니다. 다음 줄을 예제에서 벗어나게하려면 pub use
과 비슷한 extern crate
과 비슷한 "다시 내보내기"방법이 있습니까?
#[macro_use]
extern crate lazy_static;
감사합니다. @Kornel. 사람이 lazy_static''의 경우,이 건너 오면, 내가 특별히 필요한 것은이었다! '''# [기능 (macro_reexport)] # [macro_reexport (lazy_static, __lazy_static_internal, __lazy_static_create)] 통근 상자의 lazy_static;''' 꽤 입소문! 물론 지금은 야간에만 컴파일됩니다. –