mirror-llvm-project/libcxx/docs
Hristo Hristov 11b58f0e4c
[libc++][ranges] P3059R2: Making user-defined constructors of view iterators/sentinels private (#193891)
Implements https://wg21.link/P3059R2 (DR)

Closes #189599

1. Made constructors of iterator and sentinel types of the following
views private:
  - `iota_view`
  - `basic_istream_view`
  - `filter_view`
  - `transform_view`
  - `take_view`
  - `take_while_view`
  - `join_view`
  - `lazy_split_view`
  - `split_view`
  - `elements_view`
2. Updated all relevant tests to fix the usages of the now private
constructor, including:
   1. Removed now obsolete tests (files and cases).
2. Updated all relevant tests to get the iterators and the sentinels via
`begin()` and `end()`, wherever applicable .
   3. Added test cases to confirm that P3059R2 was implemented properly.
   4. Minor other (necessary) tweaks.

---------

Co-authored-by: Hristo Hristov <zingam@outlook.com>
Co-authored-by: A. Jiang <de34@live.cn>
2026-07-30 17:57:11 +03:00
..
DesignDocs [NFC] Fix "is is" typos (#206288) 2026-07-06 18:07:45 +00:00
Helpers
ReleaseNotes [libc++][ranges] P3059R2: Making user-defined constructors of view iterators/sentinels private (#193891) 2026-07-30 17:57:11 +03:00
Status [libc++][ranges] P3059R2: Making user-defined constructors of view iterators/sentinels private (#193891) 2026-07-30 17:57:11 +03:00
ABIGuarantees.rst [libc++] Add a size-based representation for vector in the unstable ABI (#155330) 2026-07-01 15:12:36 -04:00
AddingNewCIJobs.rst [libc++] Make CC and CXX environment variables mandatory in run-buildbot (#166875) 2025-12-02 08:58:00 -05:00
CMakeLists.txt
CodingGuidelines.rst [libc++] Rename container benchmarks for consistency and precision (#181178) 2026-03-11 13:49:09 -04:00
conf.py [runtimes] LLVM 24 version bumps (#211262) 2026-07-22 12:38:40 -04:00
Contributing.rst [libc++] Rename pre-commit CI workflows (#211844) 2026-07-24 14:56:19 -04:00
FeatureTestMacroTable.rst [libc++] Implement P1901R2: owner_hash and owner_equal for shared_ptr/weak_ptr (#210551) 2026-07-27 18:00:45 +08:00
Hardening.rst [libc++][hardening] Allow setting the assertion semantic via CMake. (#167636) 2025-11-14 10:39:06 -08:00
ImplementationDefinedBehavior.rst [libc++] Fix filebuf resetting its underlying buffer upon close() (#168947) 2026-01-12 13:02:11 -05:00
index.rst [libc++] Rename pre-commit CI workflows (#211844) 2026-07-24 14:56:19 -04:00
Modules.rst [libc++][NFC] Use llvm.org/PR to link to bug reports (#156288) 2025-09-04 09:20:02 +02:00
PostMeetingProcedure.rst [libc++] Create issues in batch in libcxx/utils/conformance (#204428) 2026-06-17 15:55:49 -04:00
README.txt
ReleaseNotes.rst [libc++] Create libc++ 24 release notes (#208814) 2026-07-15 07:55:45 -04:00
ReleaseProcedure.rst [libc++] Update release procedure for libc++ & friends (#210383) 2026-07-23 08:13:39 -04:00
TestingLibcxx.rst [libc++] Optionally support filecheck and split-file (#165769) 2026-04-08 21:04:22 -04:00
UserDocumentation.rst [libc++][hardening] Introduce assertion semantics. (#149459) 2025-07-29 00:19:15 -07:00
VendorDocumentation.rst [libc++] Introduce the notion of a minimum header version (#166074) 2026-01-09 11:58:29 +01:00

libc++ Documentation
====================

The libc++ documentation is written using the Sphinx documentation generator. It is
currently tested with Sphinx 1.1.3.

To build the documents into html configure libc++ with the following cmake options:

  * -DLLVM_ENABLE_SPHINX=ON
  * -DLIBCXX_INCLUDE_DOCS=ON

After configuring libc++ with these options the make rule `docs-libcxx-html`
should be available.

The documentation in this directory is published at https://libcxx.llvm.org. It is kept up-to-date
by a build bot: https://lab.llvm.org/buildbot/#/builders/publish-sphinx-docs. If you notice that the
documentation is not updating anymore, please contact one of the maintainers.