aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/CodeGen/StackProtector.cpp
diff options
context:
space:
mode:
authorXiaoyang Liu <siujoeng.lau@gmail.com>2024-04-23 10:58:14 -0400
committerGitHub <noreply@github.com>2024-04-23 10:58:14 -0400
commitc1086532d4d5c0a261457dfb00e79fcb764e3d78 (patch)
tree793aaedb7ccaa8c35ae720161a5cb0030a7d9c44 /llvm/lib/CodeGen/StackProtector.cpp
parentadb0126ef11b0083d5a78be1534ccefa53def1cf (diff)
downloadllvm-c1086532d4d5c0a261457dfb00e79fcb764e3d78.zip
llvm-c1086532d4d5c0a261457dfb00e79fcb764e3d78.tar.gz
llvm-c1086532d4d5c0a261457dfb00e79fcb764e3d78.tar.bz2
[libc++][ranges] P2387R3: Pipe support for user-defined range adaptors (#89148)
This patch finalizes the std::ranges::range_adaptor_closure class template from https://wg21.link/P2387R3. // [range.adaptor.object], range adaptor objects template<class D> requires is_class_v<D> && same_as<D, remove_cv_t<D>> class range_adaptor_closure { }; The current implementation of __range_adaptor_closure was introduced in ee44dd8062a26541808fc0d3fd5c6703e19f6016 and has served as the foundation for the range adaptors in libc++ for a while. This patch keeps its implementation, with the exception of the following changes: - __range_adaptor_closure now includes the missing constraints `is_class_v<D> && same_as<D, remove_cv_t<D>>` to restrict the type of class that can inherit from it. (https://eel.is/c++draft/ranges.syn) - The operator| of __range_adaptor_closure no longer requires its first argument to model viewable_range. (https://eel.is/c++draft/range.adaptor.object#1) - The _RangeAdaptorClosure concept is refined to exclude cases where T models range or where T has base classes of type range_adaptor_closure<U> for another type U. (https://eel.is/c++draft/range.adaptor.object#2)
Diffstat (limited to 'llvm/lib/CodeGen/StackProtector.cpp')
0 files changed, 0 insertions, 0 deletions