まとめ直した Rust では”型安全”かつユーザフレンドリな文字列フォーマットを実現するため、マクロを用いたフォーマット文字列の検証とコード生成を伴うコンパイル時チェックを行うAPIを提供している。このAPIを用いることで、ユーザは型安全なフォーマット出力を行うコードを直感的に記述することが出来るようになっている(そして初心者をしばしば混乱させる)。 様々なユースケースに対応するために、標準ライブラリにはフォーマット出力用にいくつかのマクロが用意されている。これらは format_args!() という(コンパイラ組み込みの)procedural macro により依存し、他のマクロの挙動は(出力先などの差異を除けば)これに支配される。本記事の目的は、これらの構成要素の実装を把握しその挙動を理解することである。マクロにより隠蔽された内部動作をある程度理解しておくことで、各マクロの正しい使い
本記事は Rust Internal Advent Calendar 2017 第10日目の記事です. 本記事では,Rust の主要な機能の一つである「マクロ」および「構文拡張」についての現状認識と,将来的な導入のために検討が進んでいる Macros 2.0 についての概略をまとめる. 記事執筆時における情報をもとに記述しているため,将来的にその仕様が(大幅に)変更される可能性があることに注意されたい. はじめにRust のマクロ・構文拡張Rust は,構文解析後に抽象構文木 (AST) を書き換える操作を注入するために マクロ (macro) および 構文拡張 (syntax extension) という仕組みを提供している. Rust のマクロは,それが構文解析後に行われるという点で C や C++ におけるプリプロセッサとは対照的なものである.マクロの仕様に関する詳細は Rust 公
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く