From: Jakub Kuderski Date: Thu, 30 Sep 2021 14:28:10 +0000 (-0400) Subject: [NFC] Improve file-level documentation for Sequence.h X-Git-Tag: upstream/15.0.7~30041 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=7bb47a046fe023c09cca2500e39eba5f440fbb99;p=platform%2Fupstream%2Fllvm.git [NFC] Improve file-level documentation for Sequence.h Add usage samples. This was extracted from a bigger patch: https://reviews.llvm.org/D107378. Reviewed By: aaron.ballman, gchatelet Differential Revision: https://reviews.llvm.org/D110760 --- diff --git a/llvm/include/llvm/ADT/Sequence.h b/llvm/include/llvm/ADT/Sequence.h index 3e4bf09..9fcb303 100644 --- a/llvm/include/llvm/ADT/Sequence.h +++ b/llvm/include/llvm/ADT/Sequence.h @@ -6,9 +6,30 @@ // //===----------------------------------------------------------------------===// /// \file -/// This routine provides some synthesis utilities to produce sequences of -/// values. The names are intentionally kept very short as they tend to occur -/// in common and widely used contexts. +/// Provides some synthesis utilities to produce sequences of values. The names +/// are intentionally kept very short as they tend to occur in common and +/// widely used contexts. +/// +/// The `seq(A, B)` function produces a sequence of values from `A` to up to +/// (but not including) `B`, i.e., [`A`, `B`), that can be safely iterated over. +/// `seq` supports both integral (e.g., `int`, `char`, `uint32_t`) and enum +/// types. `seq_inclusive(A, B)` produces a sequence of values from `A` to `B`, +/// including `B`. +/// +/// Examples with integral types: +/// ``` +/// for (int x : seq(0, 3)) +/// outs() << x << " "; +/// ``` +/// +/// Prints: `0 1 2 `. +/// +/// ``` +/// for (int x : seq_inclusive(0, 3)) +/// outs() << x << " "; +/// ``` +/// +/// Prints: `0 1 2 3 `. /// //===----------------------------------------------------------------------===//