[clang] [Clang][C++26] Implement P3865R1 - CTAD for type template template parameters (PR #191409)

via cfe-commits cfe-commits at lists.llvm.org
Wed Apr 22 02:32:35 PDT 2026


github-actions[bot] wrote:

<!--PREMERGE ADVISOR COMMENT: Linux-->
# :penguin: Linux x64 Test Results

* 105121 tests passed
* 3675 tests skipped
* 2 tests failed

## Failed Tests
(click on a test name to see its output)

### llvm-libc++-shared-cfg-in
<details>
<summary>llvm-libc++-shared-cfg-in.libcxx/ranges/range_utility/range_utility_conv/nodiscard.verify.cpp</summary>

```
Exit Code: 1

Command Output (stdout):
--
# COMPILED WITH
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/./bin/clang++ /home/gha/actions-runner/_work/llvm-project/llvm-project/libcxx/test/libcxx/ranges/range.utility/range.utility.conv/nodiscard.verify.cpp -pthread --target=x86_64-unknown-linux-gnu -nostdinc++ -I /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libcxx/test-suite-install/include/x86_64-unknown-linux-gnu/c++/v1 -I /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libcxx/test-suite-install/include/c++/v1 -I /home/gha/actions-runner/_work/llvm-project/llvm-project/libcxx/test/support -std=c++26 -Werror -Wall -Wctad-maybe-unsupported -Wextra -Wshadow -Wundef -Wunused-template -Wno-unused-command-line-argument -Wno-attributes -Wno-pessimizing-move -Wno-noexcept-type -Wno-atomic-alignment -Wno-reserved-module-identifier -Wdeprecated-copy -Wdeprecated-copy-dtor -Wshift-negative-value -Wno-user-defined-literals -Wno-tautological-compare -Wsign-compare -Wunused-variable -Wunused-parameter -Wunreachable-code -Wno-unused-local-typedef -Wno-local-type-template-args -Wno-c++11-extensions -Wno-unknown-pragmas -Wno-pass-failed -Wno-mismatched-new-delete -Wno-redundant-move -Wno-self-move -Wno-nullability-completeness -flax-vector-conversions=none -D_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER -D_LIBCPP_ENABLE_EXPERIMENTAL -Wuser-defined-warnings  -U_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER -fsyntax-only -Wno-error -Xclang -verify -Xclang -verify-ignore-unexpected=note -ferror-limit=0
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/./bin/clang++ /home/gha/actions-runner/_work/llvm-project/llvm-project/libcxx/test/libcxx/ranges/range.utility/range.utility.conv/nodiscard.verify.cpp -pthread --target=x86_64-unknown-linux-gnu -nostdinc++ -I /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libcxx/test-suite-install/include/x86_64-unknown-linux-gnu/c++/v1 -I /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libcxx/test-suite-install/include/c++/v1 -I /home/gha/actions-runner/_work/llvm-project/llvm-project/libcxx/test/support -std=c++26 -Werror -Wall -Wctad-maybe-unsupported -Wextra -Wshadow -Wundef -Wunused-template -Wno-unused-command-line-argument -Wno-attributes -Wno-pessimizing-move -Wno-noexcept-type -Wno-atomic-alignment -Wno-reserved-module-identifier -Wdeprecated-copy -Wdeprecated-copy-dtor -Wshift-negative-value -Wno-user-defined-literals -Wno-tautological-compare -Wsign-compare -Wunused-variable -Wunused-parameter -Wunreachable-code -Wno-unused-local-typedef -Wno-local-type-template-args -Wno-c++11-extensions -Wno-unknown-pragmas -Wno-pass-failed -Wno-mismatched-new-delete -Wno-redundant-move -Wno-self-move -Wno-nullability-completeness -flax-vector-conversions=none -D_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER -D_LIBCPP_ENABLE_EXPERIMENTAL -Wuser-defined-warnings -U_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER -fsyntax-only -Wno-error -Xclang -verify -Xclang -verify-ignore-unexpected=note -ferror-limit=0
# .---command stderr------------
# | error: 'expected-error' diagnostics seen but not expected: 
# |   File /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libcxx/test-suite-install/include/c++/v1/__ranges/to.h Line 188: static assertion failed: ranges::to: unable to deduce the container type from the template template argument.
# |   File /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libcxx/test-suite-install/include/c++/v1/__ranges/to.h Line 193: type 'decltype(__deduce_func())' (aka 'void') cannot be used prior to '::' because it has no members
# |   File /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libcxx/test-suite-install/include/c++/v1/__ranges/to.h Line 86: static assertion failed due to requirement 'is_class_v<int> || is_union_v<int>': The target must be a class type or union type
# |   File /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libcxx/test-suite-install/include/c++/v1/__ranges/to.h Line 130: static assertion failed: ranges::to: unable to convert to the given container type.
# |   File /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libcxx/test-suite-install/include/c++/v1/__ranges/to.h Line 188: static assertion failed: ranges::to: unable to deduce the container type from the template template argument.
# |   File /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libcxx/test-suite-install/include/c++/v1/__ranges/to.h Line 193: type 'decltype(__deduce_func())' (aka 'void') cannot be used prior to '::' because it has no members
# |   File /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libcxx/test-suite-install/include/c++/v1/__ranges/to.h Line 86: static assertion failed due to requirement 'is_class_v<int> || is_union_v<int>': The target must be a class type or union type
# |   File /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libcxx/test-suite-install/include/c++/v1/__ranges/to.h Line 130: static assertion failed: ranges::to: unable to convert to the given container type.
# | 8 errors generated.
# `-----------------------------
# error: command failed with exit status: 1

--

```
</details>
<details>
<summary>llvm-libc++-shared-cfg-in.std/ranges/range_utility/range_utility_conv/to_deduction.pass.cpp</summary>

```
Exit Code: 1

Command Output (stdout):
--
# COMPILED WITH
/home/gha/actions-runner/_work/llvm-project/llvm-project/build/./bin/clang++ /home/gha/actions-runner/_work/llvm-project/llvm-project/libcxx/test/std/ranges/range.utility/range.utility.conv/to_deduction.pass.cpp -pthread --target=x86_64-unknown-linux-gnu -nostdinc++ -I /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libcxx/test-suite-install/include/x86_64-unknown-linux-gnu/c++/v1 -I /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libcxx/test-suite-install/include/c++/v1 -I /home/gha/actions-runner/_work/llvm-project/llvm-project/libcxx/test/support -std=c++26 -Werror -Wall -Wctad-maybe-unsupported -Wextra -Wshadow -Wundef -Wunused-template -Wno-unused-command-line-argument -Wno-attributes -Wno-pessimizing-move -Wno-noexcept-type -Wno-atomic-alignment -Wno-reserved-module-identifier -Wdeprecated-copy -Wdeprecated-copy-dtor -Wshift-negative-value -Wno-user-defined-literals -Wno-tautological-compare -Wsign-compare -Wunused-variable -Wunused-parameter -Wunreachable-code -Wno-unused-local-typedef -Wno-local-type-template-args -Wno-c++11-extensions -Wno-unknown-pragmas -Wno-pass-failed -Wno-mismatched-new-delete -Wno-redundant-move -Wno-self-move -Wno-nullability-completeness -flax-vector-conversions=none -D_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER -D_LIBCPP_ENABLE_EXPERIMENTAL -Wuser-defined-warnings  -lc++experimental -nostdlib++ -L /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libcxx/test-suite-install/lib/x86_64-unknown-linux-gnu -Wl,-rpath,/home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libcxx/test-suite-install/lib/x86_64-unknown-linux-gnu -lc++ -latomic -o /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libcxx/test/std/ranges/range.utility/range.utility.conv/Output/to_deduction.pass.cpp.dir/t.tmp.exe
# executed command: /home/gha/actions-runner/_work/llvm-project/llvm-project/build/./bin/clang++ /home/gha/actions-runner/_work/llvm-project/llvm-project/libcxx/test/std/ranges/range.utility/range.utility.conv/to_deduction.pass.cpp -pthread --target=x86_64-unknown-linux-gnu -nostdinc++ -I /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libcxx/test-suite-install/include/x86_64-unknown-linux-gnu/c++/v1 -I /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libcxx/test-suite-install/include/c++/v1 -I /home/gha/actions-runner/_work/llvm-project/llvm-project/libcxx/test/support -std=c++26 -Werror -Wall -Wctad-maybe-unsupported -Wextra -Wshadow -Wundef -Wunused-template -Wno-unused-command-line-argument -Wno-attributes -Wno-pessimizing-move -Wno-noexcept-type -Wno-atomic-alignment -Wno-reserved-module-identifier -Wdeprecated-copy -Wdeprecated-copy-dtor -Wshift-negative-value -Wno-user-defined-literals -Wno-tautological-compare -Wsign-compare -Wunused-variable -Wunused-parameter -Wunreachable-code -Wno-unused-local-typedef -Wno-local-type-template-args -Wno-c++11-extensions -Wno-unknown-pragmas -Wno-pass-failed -Wno-mismatched-new-delete -Wno-redundant-move -Wno-self-move -Wno-nullability-completeness -flax-vector-conversions=none -D_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER -D_LIBCPP_ENABLE_EXPERIMENTAL -Wuser-defined-warnings -lc++experimental -nostdlib++ -L /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libcxx/test-suite-install/lib/x86_64-unknown-linux-gnu -Wl,-rpath,/home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libcxx/test-suite-install/lib/x86_64-unknown-linux-gnu -lc++ -latomic -o /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libcxx/test/std/ranges/range.utility/range.utility.conv/Output/to_deduction.pass.cpp.dir/t.tmp.exe
# .---command stderr------------
# | In file included from /home/gha/actions-runner/_work/llvm-project/llvm-project/libcxx/test/std/ranges/range.utility/range.utility.conv/to_deduction.pass.cpp:14:
# | In file included from /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libcxx/test-suite-install/include/c++/v1/ranges:488:
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libcxx/test-suite-install/include/c++/v1/__ranges/to.h:188:21: error: static assertion failed: ranges::to: unable to deduce the container type from the template template argument.
# |   188 |       static_assert(__always_false<_Range>,
# |       |                     ^~~~~~~~~~~~~~~~~~~~~~
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libcxx/test-suite-install/include/c++/v1/__ranges/to.h:193:34: note: in instantiation of member function 'std::ranges::_Deducer<ContainerWithDirectCtr, std::array<int, 5> &>::__deduce_func' requested here
# |   193 |   using type = typename decltype(__deduce_func())::type;
# |       |                                  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libcxx/test-suite-install/include/c++/v1/__ranges/to.h:200:32: note: in instantiation of template class 'std::ranges::_Deducer<ContainerWithDirectCtr, std::array<int, 5> &>' requested here
# |   200 |   using _DeduceExpr = typename _Deducer<_Container, _Range, _Args...>::type;
# |       |                                ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/libcxx/test/std/ranges/range.utility/range.utility.conv/to_deduction.pass.cpp:62:86: note: in instantiation of function template specialization 'std::ranges::to<ContainerWithDirectCtr, std::array<int, 5> &>' requested here
# |    62 |       std::same_as<ContainerWithDirectCtr<int>> decltype(auto) result = std::ranges::to<ContainerWithDirectCtr>(in);
# |       |                                                                                      ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libcxx/test-suite-install/include/c++/v1/__ranges/to.h:188:21: note: because 'std::array<int, 5> &' does not satisfy '__always_false'
# |   188 |       static_assert(__always_false<_Range>,
# |       |                     ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libcxx/test-suite-install/include/c++/v1/__ranges/to.h:76:26: note: because 'false' evaluated to false
# |    76 | concept __always_false = false;
# |       |                          ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libcxx/test-suite-install/include/c++/v1/__ranges/to.h:193:25: error: type 'decltype(__deduce_func())' (aka 'void') cannot be used prior to '::' because it has no members
# |   193 |   using type = typename decltype(__deduce_func())::type;
# |       |                         ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libcxx/test-suite-install/include/c++/v1/__ranges/to.h:200:32: note: in instantiation of template class 'std::ranges::_Deducer<ContainerWithDirectCtr, std::array<int, 5> &>' requested here
# |   200 |   using _DeduceExpr = typename _Deducer<_Container, _Range, _Args...>::type;
# |       |                                ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/libcxx/test/std/ranges/range.utility/range.utility.conv/to_deduction.pass.cpp:62:86: note: in instantiation of function template specialization 'std::ranges::to<ContainerWithDirectCtr, std::array<int, 5> &>' requested here
# |    62 |       std::same_as<ContainerWithDirectCtr<int>> decltype(auto) result = std::ranges::to<ContainerWithDirectCtr>(in);
# |       |                                                                                      ^
# | In file included from /home/gha/actions-runner/_work/llvm-project/llvm-project/libcxx/test/std/ranges/range.utility/range.utility.conv/to_deduction.pass.cpp:14:
# | In file included from /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libcxx/test-suite-install/include/c++/v1/ranges:488:
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libcxx/test-suite-install/include/c++/v1/__ranges/to.h:86:17: error: static assertion failed due to requirement 'is_class_v<int> || is_union_v<int>': The target must be a class type or union type
# |    86 |   static_assert(is_class_v<_Container> || is_union_v<_Container>, "The target must be a class type or union type");
# |       |                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libcxx/test-suite-install/include/c++/v1/__ranges/to.h:201:18: note: in instantiation of function template specialization 'std::ranges::to<int, std::array<int, 5> &>' requested here
# |   201 |   return ranges::to<_DeduceExpr>(std::forward<_Range>(__range), std::forward<_Args>(__args)...);
# |       |                  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/libcxx/test/std/ranges/range.utility/range.utility.conv/to_deduction.pass.cpp:62:86: note: in instantiation of function template specialization 'std::ranges::to<ContainerWithDirectCtr, std::array<int, 5> &>' requested here
# |    62 |       std::same_as<ContainerWithDirectCtr<int>> decltype(auto) result = std::ranges::to<ContainerWithDirectCtr>(in);
# |       |                                                                                      ^
# | In file included from /home/gha/actions-runner/_work/llvm-project/llvm-project/libcxx/test/std/ranges/range.utility/range.utility.conv/to_deduction.pass.cpp:14:
# | In file included from /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libcxx/test-suite-install/include/c++/v1/ranges:488:
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libcxx/test-suite-install/include/c++/v1/__ranges/to.h:130:21: error: static assertion failed: ranges::to: unable to convert to the given container type.
# |   130 |       static_assert(__always_false<_Container>, "ranges::to: unable to convert to the given container type.");
# |       |                     ^~~~~~~~~~~~~~~~~~~~~~~~~~
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libcxx/test-suite-install/include/c++/v1/__ranges/to.h:130:21: note: because 'int' does not satisfy '__always_false'
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libcxx/test-suite-install/include/c++/v1/__ranges/to.h:76:26: note: because 'false' evaluated to false
# |    76 | concept __always_false = false;
# |       |                          ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/libcxx/test/std/ranges/range.utility/range.utility.conv/to_deduction.pass.cpp:62:12: error: deduced type 'int' does not satisfy 'same_as<ContainerWithDirectCtr<int>>'
# |    62 |       std::same_as<ContainerWithDirectCtr<int>> decltype(auto) result = std::ranges::to<ContainerWithDirectCtr>(in);
# |       |       ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libcxx/test-suite-install/include/c++/v1/__concepts/same_as.h:29:19: note: because '__same_as_impl<int, ContainerWithDirectCtr<int>>' evaluated to false
# |    29 | concept same_as = __same_as_impl<_Tp, _Up> && __same_as_impl<_Up, _Tp>;
# |       |                   ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libcxx/test-suite-install/include/c++/v1/__concepts/same_as.h:26:26: note: because '_IsSame<int, ContainerWithDirectCtr<int>>::value' evaluated to false
# |    26 | concept __same_as_impl = _IsSame<_Tp, _Up>::value;
# |       |                          ^
# | In file included from /home/gha/actions-runner/_work/llvm-project/llvm-project/libcxx/test/std/ranges/range.utility/range.utility.conv/to_deduction.pass.cpp:14:
# | In file included from /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libcxx/test-suite-install/include/c++/v1/ranges:488:
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libcxx/test-suite-install/include/c++/v1/__ranges/to.h:188:21: error: static assertion failed: ranges::to: unable to deduce the container type from the template template argument.
# |   188 |       static_assert(__always_false<_Range>,
# |       |                     ^~~~~~~~~~~~~~~~~~~~~~
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libcxx/test-suite-install/include/c++/v1/__ranges/to.h:193:34: note: in instantiation of member function 'std::ranges::_Deducer<ContainerWithDirectCtr, std::array<int, 5> &, int &, char &>::__deduce_func' requested here
# |   193 |   using type = typename decltype(__deduce_func())::type;
# |       |                                  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libcxx/test-suite-install/include/c++/v1/__ranges/to.h:200:32: note: in instantiation of template class 'std::ranges::_Deducer<ContainerWithDirectCtr, std::array<int, 5> &, int &, char &>' requested here
# |   200 |   using _DeduceExpr = typename _Deducer<_Container, _Range, _Args...>::type;
# |       |                                ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/libcxx/test/std/ranges/range.utility/range.utility.conv/to_deduction.pass.cpp:71:24: note: in instantiation of function template specialization 'std::ranges::to<ContainerWithDirectCtr, std::array<int, 5> &, int &, char &>' requested here
# |    71 |           std::ranges::to<ContainerWithDirectCtr>(in, arg1, arg2);
# |       |                        ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libcxx/test-suite-install/include/c++/v1/__ranges/to.h:188:21: note: because 'std::array<int, 5> &' does not satisfy '__always_false'
# |   188 |       static_assert(__always_false<_Range>,
# |       |                     ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libcxx/test-suite-install/include/c++/v1/__ranges/to.h:76:26: note: because 'false' evaluated to false
# |    76 | concept __always_false = false;
# |       |                          ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libcxx/test-suite-install/include/c++/v1/__ranges/to.h:193:25: error: type 'decltype(__deduce_func())' (aka 'void') cannot be used prior to '::' because it has no members
# |   193 |   using type = typename decltype(__deduce_func())::type;
# |       |                         ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libcxx/test-suite-install/include/c++/v1/__ranges/to.h:200:32: note: in instantiation of template class 'std::ranges::_Deducer<ContainerWithDirectCtr, std::array<int, 5> &, int &, char &>' requested here
# |   200 |   using _DeduceExpr = typename _Deducer<_Container, _Range, _Args...>::type;
# |       |                                ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/libcxx/test/std/ranges/range.utility/range.utility.conv/to_deduction.pass.cpp:71:24: note: in instantiation of function template specialization 'std::ranges::to<ContainerWithDirectCtr, std::array<int, 5> &, int &, char &>' requested here
# |    71 |           std::ranges::to<ContainerWithDirectCtr>(in, arg1, arg2);
# |       |                        ^
# | In file included from /home/gha/actions-runner/_work/llvm-project/llvm-project/libcxx/test/std/ranges/range.utility/range.utility.conv/to_deduction.pass.cpp:14:
# | In file included from /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libcxx/test-suite-install/include/c++/v1/ranges:488:
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libcxx/test-suite-install/include/c++/v1/__ranges/to.h:86:17: error: static assertion failed due to requirement 'is_class_v<int> || is_union_v<int>': The target must be a class type or union type
# |    86 |   static_assert(is_class_v<_Container> || is_union_v<_Container>, "The target must be a class type or union type");
# |       |                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libcxx/test-suite-install/include/c++/v1/__ranges/to.h:201:18: note: in instantiation of function template specialization 'std::ranges::to<int, std::array<int, 5> &, int &, char &>' requested here
# |   201 |   return ranges::to<_DeduceExpr>(std::forward<_Range>(__range), std::forward<_Args>(__args)...);
# |       |                  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/libcxx/test/std/ranges/range.utility/range.utility.conv/to_deduction.pass.cpp:71:24: note: in instantiation of function template specialization 'std::ranges::to<ContainerWithDirectCtr, std::array<int, 5> &, int &, char &>' requested here
# |    71 |           std::ranges::to<ContainerWithDirectCtr>(in, arg1, arg2);
# |       |                        ^
# | In file included from /home/gha/actions-runner/_work/llvm-project/llvm-project/libcxx/test/std/ranges/range.utility/range.utility.conv/to_deduction.pass.cpp:14:
# | In file included from /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libcxx/test-suite-install/include/c++/v1/ranges:488:
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libcxx/test-suite-install/include/c++/v1/__ranges/to.h:130:21: error: static assertion failed: ranges::to: unable to convert to the given container type.
# |   130 |       static_assert(__always_false<_Container>, "ranges::to: unable to convert to the given container type.");
# |       |                     ^~~~~~~~~~~~~~~~~~~~~~~~~~
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libcxx/test-suite-install/include/c++/v1/__ranges/to.h:130:21: note: because 'int' does not satisfy '__always_false'
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libcxx/test-suite-install/include/c++/v1/__ranges/to.h:76:26: note: because 'false' evaluated to false
# |    76 | concept __always_false = false;
# |       |                          ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/libcxx/test/std/ranges/range.utility/range.utility.conv/to_deduction.pass.cpp:70:12: error: deduced type 'int' does not satisfy 'same_as<ContainerWithDirectCtr<int>>'
# |    70 |       std::same_as<ContainerWithDirectCtr<int>> decltype(auto) result =
# |       |       ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libcxx/test-suite-install/include/c++/v1/__concepts/same_as.h:29:19: note: because '__same_as_impl<int, ContainerWithDirectCtr<int>>' evaluated to false
# |    29 | concept same_as = __same_as_impl<_Tp, _Up> && __same_as_impl<_Up, _Tp>;
# |       |                   ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libcxx/test-suite-install/include/c++/v1/__concepts/same_as.h:26:26: note: because '_IsSame<int, ContainerWithDirectCtr<int>>::value' evaluated to false
# |    26 | concept __same_as_impl = _IsSame<_Tp, _Up>::value;
# |       |                          ^
# | In file included from /home/gha/actions-runner/_work/llvm-project/llvm-project/libcxx/test/std/ranges/range.utility/range.utility.conv/to_deduction.pass.cpp:14:
# | In file included from /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libcxx/test-suite-install/include/c++/v1/ranges:488:
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libcxx/test-suite-install/include/c++/v1/__ranges/to.h:188:21: error: static assertion failed: ranges::to: unable to deduce the container type from the template template argument.
# |   188 |       static_assert(__always_false<_Range>,
# |       |                     ^~~~~~~~~~~~~~~~~~~~~~
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libcxx/test-suite-install/include/c++/v1/__ranges/to.h:193:34: note: in instantiation of member function 'std::ranges::_Deducer<ContainerWithDirectCtr, std::array<int, 5> &, const int &, const char &>::__deduce_func' requested here
# |   193 |   using type = typename decltype(__deduce_func())::type;
# |       |                                  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libcxx/test-suite-install/include/c++/v1/__ranges/to.h:229:53: note: in instantiation of template class 'std::ranges::_Deducer<ContainerWithDirectCtr, std::array<int, 5> &, const int &, const char &>' requested here
# |   229 |                       class _DeducedExpr = typename _Deducer<_Container, _Range, _Tail...>::type>
# |       |                                                     ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libcxx/test-suite-install/include/c++/v1/__ranges/to.h:228:20: note: in instantiation of default argument for 'operator()<std::array<int, 5> &, const int &, const char &>' required here
# |   228 |   auto __to_func = []<input_range _Range, class... _Tail,
# |       |                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |   229 |                       class _DeducedExpr = typename _Deducer<_Container, _Range, _Tail...>::type>
# |       |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |   230 |     (_Range&& __range, _Tail&& ... __tail) static
# |       |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |   231 |       requires requires { //
# |       |       ~~~~~~~~~~~~~~~~~~~~~~
# |   232 |       /**/ ranges::to<_DeducedExpr>(std::forward<_Range>(__range), std::forward<_Tail>(__tail)...);
# |       |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |   233 |     }
# |       |     ~
# |   234 |   {
# |       |   ~
# |   235 |     return ranges::to<_DeducedExpr>(std::forward<_Range>(__range), std::forward<_Tail>(__tail)...);
# |       |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |   236 |   };
# |       |   ~
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libcxx/test-suite-install/include/c++/v1/__type_traits/invoke.h:77:47: note: while substituting deduced template arguments into function template 'operator()' [with _Range = std::array<int, 5> &, _Tail = <const int &, const char &>, _DeducedExpr = (no value)]
# |    77 | struct __invoke_result_impl<__void_t<decltype(__builtin_invoke(std::declval<_Args>()...))>, _Args...> {
# |       |                                               ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libcxx/test-suite-install/include/c++/v1/__type_traits/invoke.h:85:1: note: during template argument deduction for class template partial specialization '__invoke_result_impl<__void_t<decltype(__builtin_invoke(std::declval<_Args>()...))>, _Args...>' [with _Args = <const (lambda at /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libcxx/test-suite-install/include/c++/v1/__ranges/to.h:228:20) &, std::array<int, 5> &, const int &, const char &>]
# |    85 | using __invoke_result_t _LIBCPP_NODEBUG = typename __invoke_result<_Args...>::type;
# |       | ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libcxx/test-suite-install/include/c++/v1/__type_traits/invoke.h:85:1: note: (skipping 18 contexts in backtrace; use -ftemplate-backtrace-limit=0 to see all)
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libcxx/test-suite-install/include/c++/v1/__concepts/invocable.h:28:3: note: in instantiation of requirement here
# |    28 |   std::invoke(std::forward<_Fn>(__fn), std::forward<_Args>(__args)...); // not required to be equality preserving
# |       |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libcxx/test-suite-install/include/c++/v1/__concepts/invocable.h:27:21: note: while substituting template arguments into constraint expression here
# |    27 | concept invocable = requires(_Fn&& __fn, _Args&&... __args) {
# |       |                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |    28 |   std::invoke(std::forward<_Fn>(__fn), std::forward<_Args>(__args)...); // not required to be equality preserving
# |       |   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |    29 | };
# |       | ~
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libcxx/test-suite-install/include/c++/v1/__ranges/range_adaptor.h:71:12: note: while checking the satisfaction of concept 'invocable<std::array<int, 5> &, std::ranges::__pipeable<std::__bind_back_t<(lambda at /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libcxx/test-suite-install/include/c++/v1/__ranges/to.h:228:20), std::tuple<int, char>>>>' requested here
# |    71 |   requires invocable<_Closure, _Range>
# |       |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/libcxx/test/std/ranges/range.utility/range.utility.conv/to_deduction.pass.cpp:77:18: note: while checking constraint satisfaction for template 'operator|<std::array<int, 5> &, std::ranges::__pipeable<std::__bind_back_t<(lambda at /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libcxx/test-suite-install/include/c++/v1/__ranges/to.h:228:20), std::tuple<int, char>>>>' required here
# |    77 |       assert((in | std::ranges::to<ContainerWithDirectCtr>(arg1, arg2)) == result);
# |       |                  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/libcxx/test/std/ranges/range.utility/range.utility.conv/to_deduction.pass.cpp:77:18: note: while substituting deduced template arguments into function template 'operator|' [with _Range = std::array<int, 1 + sizeof...(_Args)> &, _Closure = __pipeable<std::__bind_back_t<(lambda at /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libcxx/test-suite-install/include/c++/v1/__ranges/to.h:228:20), std::tuple<int, char>>>]
# | /usr/include/assert.h:103:27: note: expanded from macro 'assert'
# |   103 |      (static_cast <bool> (expr)                                         \
# |       |                           ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libcxx/test-suite-install/include/c++/v1/__ranges/to.h:188:21: note: because 'std::array<int, 5> &' does not satisfy '__always_false'
# |   188 |       static_assert(__always_false<_Range>,
# |       |                     ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libcxx/test-suite-install/include/c++/v1/__ranges/to.h:76:26: note: because 'false' evaluated to false
# |    76 | concept __always_false = false;
# |       |                          ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libcxx/test-suite-install/include/c++/v1/__ranges/to.h:193:25: error: type 'decltype(__deduce_func())' (aka 'void') cannot be used prior to '::' because it has no members
# |   193 |   using type = typename decltype(__deduce_func())::type;
# |       |                         ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libcxx/test-suite-install/include/c++/v1/__ranges/to.h:229:53: note: in instantiation of template class 'std::ranges::_Deducer<ContainerWithDirectCtr, std::array<int, 5> &, const int &, const char &>' requested here
# |   229 |                       class _DeducedExpr = typename _Deducer<_Container, _Range, _Tail...>::type>
# |       |                                                     ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libcxx/test-suite-install/include/c++/v1/__ranges/to.h:228:20: note: in instantiation of default argument for 'operator()<std::array<int, 5> &, const int &, const char &>' required here
# |   228 |   auto __to_func = []<input_range _Range, class... _Tail,
# |       |                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |   229 |                       class _DeducedExpr = typename _Deducer<_Container, _Range, _Tail...>::type>
# |       |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |   230 |     (_Range&& __range, _Tail&& ... __tail) static
# |       |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |   231 |       requires requires { //
# |       |       ~~~~~~~~~~~~~~~~~~~~~~
# |   232 |       /**/ ranges::to<_DeducedExpr>(std::forward<_Range>(__range), std::forward<_Tail>(__tail)...);
# |       |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |   233 |     }
# |       |     ~
# |   234 |   {
# |       |   ~
# |   235 |     return ranges::to<_DeducedExpr>(std::forward<_Range>(__range), std::forward<_Tail>(__tail)...);
# |       |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |   236 |   };
# |       |   ~
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libcxx/test-suite-install/include/c++/v1/__type_traits/invoke.h:77:47: note: while substituting deduced template arguments into function template 'operator()' [with _Range = std::array<int, 5> &, _Tail = <const int &, const char &>, _DeducedExpr = (no value)]
# |    77 | struct __invoke_result_impl<__void_t<decltype(__builtin_invoke(std::declval<_Args>()...))>, _Args...> {
# |       |                                               ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libcxx/test-suite-install/include/c++/v1/__type_traits/invoke.h:85:1: note: during template argument deduction for class template partial specialization '__invoke_result_impl<__void_t<decltype(__builtin_invoke(std::declval<_Args>()...))>, _Args...>' [with _Args = <const (lambda at /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libcxx/test-suite-install/include/c++/v1/__ranges/to.h:228:20) &, std::array<int, 5> &, const int &, const char &>]
# |    85 | using __invoke_result_t _LIBCPP_NODEBUG = typename __invoke_result<_Args...>::type;
# |       | ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libcxx/test-suite-install/include/c++/v1/__type_traits/invoke.h:85:1: note: in instantiation of template class 'std::__invoke_result_impl<void, const (lambda at /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libcxx/test-suite-install/include/c++/v1/__ranges/to.h:228:20) &, std::array<int, 5> &, const int &, const char &>' requested here
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libcxx/test-suite-install/include/c++/v1/__type_traits/invoke.h:395:1: note: (skipping 17 contexts in backtrace; use -ftemplate-backtrace-limit=0 to see all)
# |   395 | using invoke_result_t = __invoke_result_t<_Fn, _Args...>;
# |       | ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libcxx/test-suite-install/include/c++/v1/__concepts/invocable.h:28:3: note: in instantiation of requirement here
# |    28 |   std::invoke(std::forward<_Fn>(__fn), std::forward<_Args>(__args)...); // not required to be equality preserving
# |       |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libcxx/test-suite-install/include/c++/v1/__concepts/invocable.h:27:21: note: while substituting template arguments into constraint expression here
# |    27 | concept invocable = requires(_Fn&& __fn, _Args&&... __args) {
# |       |                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |    28 |   std::invoke(std::forward<_Fn>(__fn), std::forward<_Args>(__args)...); // not required to be equality preserving
# |       |   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |    29 | };
# |       | ~
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libcxx/test-suite-install/include/c++/v1/__ranges/range_adaptor.h:71:12: note: while checking the satisfaction of concept 'invocable<std::array<int, 5> &, std::ranges::__pipeable<std::__bind_back_t<(lambda at /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libcxx/test-suite-install/include/c++/v1/__ranges/to.h:228:20), std::tuple<int, char>>>>' requested here
# |    71 |   requires invocable<_Closure, _Range>
# |       |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/libcxx/test/std/ranges/range.utility/range.utility.conv/to_deduction.pass.cpp:77:18: note: while checking constraint satisfaction for template 'operator|<std::array<int, 5> &, std::ranges::__pipeable<std::__bind_back_t<(lambda at /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libcxx/test-suite-install/include/c++/v1/__ranges/to.h:228:20), std::tuple<int, char>>>>' required here
# |    77 |       assert((in | std::ranges::to<ContainerWithDirectCtr>(arg1, arg2)) == result);
# |       |                  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/libcxx/test/std/ranges/range.utility/range.utility.conv/to_deduction.pass.cpp:77:18: note: while substituting deduced template arguments into function template 'operator|' [with _Range = std::array<int, 1 + sizeof...(_Args)> &, _Closure = __pipeable<std::__bind_back_t<(lambda at /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libcxx/test-suite-install/include/c++/v1/__ranges/to.h:228:20), std::tuple<int, char>>>]
# | /usr/include/assert.h:103:27: note: expanded from macro 'assert'
# |   103 |      (static_cast <bool> (expr)                                         \
# |       |                           ^
# | In file included from /home/gha/actions-runner/_work/llvm-project/llvm-project/libcxx/test/std/ranges/range.utility/range.utility.conv/to_deduction.pass.cpp:14:
# | In file included from /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libcxx/test-suite-install/include/c++/v1/ranges:488:
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libcxx/test-suite-install/include/c++/v1/__ranges/to.h:188:21: error: static assertion failed: ranges::to: unable to deduce the container type from the template template argument.
# |   188 |       static_assert(__always_false<_Range>,
# |       |                     ^~~~~~~~~~~~~~~~~~~~~~
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libcxx/test-suite-install/include/c++/v1/__ranges/to.h:193:34: note: in instantiation of member function 'std::ranges::_Deducer<ContainerWithDirectCtr, std::array<int, 5> &, int, char>::__deduce_func' requested here
# |   193 |   using type = typename decltype(__deduce_func())::type;
# |       |                                  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libcxx/test-suite-install/include/c++/v1/__ranges/to.h:229:53: note: in instantiation of template class 'std::ranges::_Deducer<ContainerWithDirectCtr, std::array<int, 5> &, int, char>' requested here
# |   229 |                       class _DeducedExpr = typename _Deducer<_Container, _Range, _Tail...>::type>
# |       |                                                     ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libcxx/test-suite-install/include/c++/v1/__ranges/to.h:228:20: note: in instantiation of default argument for 'operator()<std::array<int, 5> &, int, char>' required here
# |   228 |   auto __to_func = []<input_range _Range, class... _Tail,
# |       |                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |   229 |                       class _DeducedExpr = typename _Deducer<_Container, _Range, _Tail...>::type>
# |       |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |   230 |     (_Range&& __range, _Tail&& ... __tail) static
# |       |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |   231 |       requires requires { //
# |       |       ~~~~~~~~~~~~~~~~~~~~~~
# |   232 |       /**/ ranges::to<_DeducedExpr>(std::forward<_Range>(__range), std::forward<_Tail>(__tail)...);
# |       |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |   233 |     }
# |       |     ~
# |   234 |   {
# |       |   ~
# |   235 |     return ranges::to<_DeducedExpr>(std::forward<_Range>(__range), std::forward<_Tail>(__tail)...);
# |       |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |   236 |   };
# |       |   ~
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libcxx/test-suite-install/include/c++/v1/__type_traits/invoke.h:77:47: note: while substituting deduced template arguments into function template 'operator()' [with _Range = std::array<int, 5> &, _Tail = <int, char>, _DeducedExpr = (no value)]
# |    77 | struct __invoke_result_impl<__void_t<decltype(__builtin_invoke(std::declval<_Args>()...))>, _Args...> {
# |       |                                               ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libcxx/test-suite-install/include/c++/v1/__type_traits/invoke.h:85:1: note: during template argument deduction for class template partial specialization '__invoke_result_impl<__void_t<decltype(__builtin_invoke(std::declval<_Args>()...))>, _Args...>' [with _Args = <(lambda at /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libcxx/test-suite-install/include/c++/v1/__ranges/to.h:228:20), std::array<int, 5> &, int, char>]
# |    85 | using __invoke_result_t _LIBCPP_NODEBUG = typename __invoke_result<_Args...>::type;
# |       | ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libcxx/test-suite-install/include/c++/v1/__type_traits/invoke.h:85:1: note: (skipping 18 contexts in backtrace; use -ftemplate-backtrace-limit=0 to see all)
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libcxx/test-suite-install/include/c++/v1/__concepts/invocable.h:28:3: note: in instantiation of requirement here
# |    28 |   std::invoke(std::forward<_Fn>(__fn), std::forward<_Args>(__args)...); // not required to be equality preserving
# |       |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libcxx/test-suite-install/include/c++/v1/__concepts/invocable.h:27:21: note: while substituting template arguments into constraint expression here
# |    27 | concept invocable = requires(_Fn&& __fn, _Args&&... __args) {
# |       |                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |    28 |   std::invoke(std::forward<_Fn>(__fn), std::forward<_Args>(__args)...); // not required to be equality preserving
# |       |   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |    29 | };
# |       | ~
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libcxx/test-suite-install/include/c++/v1/__ranges/range_adaptor.h:71:12: note: while checking the satisfaction of concept 'invocable<std::array<int, 5> &, std::ranges::__pipeable<std::__bind_back_t<(lambda at /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libcxx/test-suite-install/include/c++/v1/__ranges/to.h:228:20), std::tuple<int, char>>>>' requested here
# |    71 |   requires invocable<_Closure, _Range>
# |       |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/libcxx/test/std/ranges/range.utility/range.utility.conv/to_deduction.pass.cpp:77:18: note: while checking constraint satisfaction for template 'operator|<std::array<int, 5> &, std::ranges::__pipeable<std::__bind_back_t<(lambda at /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libcxx/test-suite-install/include/c++/v1/__ranges/to.h:228:20), std::tuple<int, char>>>>' required here
# |    77 |       assert((in | std::ranges::to<ContainerWithDirectCtr>(arg1, arg2)) == result);
# |       |                  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/libcxx/test/std/ranges/range.utility/range.utility.conv/to_deduction.pass.cpp:77:18: note: while substituting deduced template arguments into function template 'operator|' [with _Range = std::array<int, 1 + sizeof...(_Args)> &, _Closure = __pipeable<std::__bind_back_t<(lambda at /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libcxx/test-suite-install/include/c++/v1/__ranges/to.h:228:20), std::tuple<int, char>>>]
# | /usr/include/assert.h:103:27: note: expanded from macro 'assert'
# |   103 |      (static_cast <bool> (expr)                                         \
# |       |                           ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libcxx/test-suite-install/include/c++/v1/__ranges/to.h:188:21: note: because 'std::array<int, 5> &' does not satisfy '__always_false'
# |   188 |       static_assert(__always_false<_Range>,
# |       |                     ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libcxx/test-suite-install/include/c++/v1/__ranges/to.h:76:26: note: because 'false' evaluated to false
# |    76 | concept __always_false = false;
# |       |                          ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libcxx/test-suite-install/include/c++/v1/__ranges/to.h:193:25: error: type 'decltype(__deduce_func())' (aka 'void') cannot be used prior to '::' because it has no members
# |   193 |   using type = typename decltype(__deduce_func())::type;
# |       |                         ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libcxx/test-suite-install/include/c++/v1/__ranges/to.h:229:53: note: in instantiation of template class 'std::ranges::_Deducer<ContainerWithDirectCtr, std::array<int, 5> &, int, char>' requested here
# |   229 |                       class _DeducedExpr = typename _Deducer<_Container, _Range, _Tail...>::type>
# |       |                                                     ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libcxx/test-suite-install/include/c++/v1/__ranges/to.h:228:20: note: in instantiation of default argument for 'operator()<std::array<int, 5> &, int, char>' required here
# |   228 |   auto __to_func = []<input_range _Range, class... _Tail,
# |       |                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |   229 |                       class _DeducedExpr = typename _Deducer<_Container, _Range, _Tail...>::type>
# |       |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |   230 |     (_Range&& __range, _Tail&& ... __tail) static
# |       |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |   231 |       requires requires { //
# |       |       ~~~~~~~~~~~~~~~~~~~~~~
# |   232 |       /**/ ranges::to<_DeducedExpr>(std::forward<_Range>(__range), std::forward<_Tail>(__tail)...);
# |       |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |   233 |     }
# |       |     ~
# |   234 |   {
# |       |   ~
# |   235 |     return ranges::to<_DeducedExpr>(std::forward<_Range>(__range), std::forward<_Tail>(__tail)...);
# |       |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |   236 |   };
# |       |   ~
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libcxx/test-suite-install/include/c++/v1/__type_traits/invoke.h:77:47: note: while substituting deduced template arguments into function template 'operator()' [with _Range = std::array<int, 5> &, _Tail = <int, char>, _DeducedExpr = (no value)]
# |    77 | struct __invoke_result_impl<__void_t<decltype(__builtin_invoke(std::declval<_Args>()...))>, _Args...> {
# |       |                                               ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libcxx/test-suite-install/include/c++/v1/__type_traits/invoke.h:85:1: note: during template argument deduction for class template partial specialization '__invoke_result_impl<__void_t<decltype(__builtin_invoke(std::declval<_Args>()...))>, _Args...>' [with _Args = <(lambda at /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libcxx/test-suite-install/include/c++/v1/__ranges/to.h:228:20), std::array<int, 5> &, int, char>]
# |    85 | using __invoke_result_t _LIBCPP_NODEBUG = typename __invoke_result<_Args...>::type;
# |       | ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libcxx/test-suite-install/include/c++/v1/__type_traits/invoke.h:85:1: note: in instantiation of template class 'std::__invoke_result_impl<void, (lambda at /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libcxx/test-suite-install/include/c++/v1/__ranges/to.h:228:20), std::array<int, 5> &, int, char>' requested here
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libcxx/test-suite-install/include/c++/v1/__type_traits/invoke.h:395:1: note: (skipping 17 contexts in backtrace; use -ftemplate-backtrace-limit=0 to see all)
# |   395 | using invoke_result_t = __invoke_result_t<_Fn, _Args...>;
# |       | ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libcxx/test-suite-install/include/c++/v1/__concepts/invocable.h:28:3: note: in instantiation of requirement here
# |    28 |   std::invoke(std::forward<_Fn>(__fn), std::forward<_Args>(__args)...); // not required to be equality preserving
# |       |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libcxx/test-suite-install/include/c++/v1/__concepts/invocable.h:27:21: note: while substituting template arguments into constraint expression here
# |    27 | concept invocable = requires(_Fn&& __fn, _Args&&... __args) {
# |       |                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |    28 |   std::invoke(std::forward<_Fn>(__fn), std::forward<_Args>(__args)...); // not required to be equality preserving
# |       |   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |    29 | };
# |       | ~
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libcxx/test-suite-install/include/c++/v1/__ranges/range_adaptor.h:71:12: note: while checking the satisfaction of concept 'invocable<std::array<int, 5> &, std::ranges::__pipeable<std::__bind_back_t<(lambda at /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libcxx/test-suite-install/include/c++/v1/__ranges/to.h:228:20), std::tuple<int, char>>>>' requested here
# |    71 |   requires invocable<_Closure, _Range>
# |       |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/libcxx/test/std/ranges/range.utility/range.utility.conv/to_deduction.pass.cpp:77:18: note: while checking constraint satisfaction for template 'operator|<std::array<int, 5> &, std::ranges::__pipeable<std::__bind_back_t<(lambda at /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libcxx/test-suite-install/include/c++/v1/__ranges/to.h:228:20), std::tuple<int, char>>>>' required here
# |    77 |       assert((in | std::ranges::to<ContainerWithDirectCtr>(arg1, arg2)) == result);
# |       |                  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/libcxx/test/std/ranges/range.utility/range.utility.conv/to_deduction.pass.cpp:77:18: note: while substituting deduced template arguments into function template 'operator|' [with _Range = std::array<int, 1 + sizeof...(_Args)> &, _Closure = __pipeable<std::__bind_back_t<(lambda at /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libcxx/test-suite-install/include/c++/v1/__ranges/to.h:228:20), std::tuple<int, char>>>]
# | /usr/include/assert.h:103:27: note: expanded from macro 'assert'
# |   103 |      (static_cast <bool> (expr)                                         \
# |       |                           ^
# | In file included from /home/gha/actions-runner/_work/llvm-project/llvm-project/libcxx/test/std/ranges/range.utility/range.utility.conv/to_deduction.pass.cpp:14:
# | In file included from /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libcxx/test-suite-install/include/c++/v1/ranges:488:
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libcxx/test-suite-install/include/c++/v1/__ranges/to.h:188:21: error: static assertion failed: ranges::to: unable to deduce the container type from the template template argument.
# |   188 |       static_assert(__always_false<_Range>,
# |       |                     ^~~~~~~~~~~~~~~~~~~~~~
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libcxx/test-suite-install/include/c++/v1/__ranges/to.h:193:34: note: in instantiation of member function 'std::ranges::_Deducer<ContainerWithDirectCtr, std::array<int, 5> &, const int, const char>::__deduce_func' requested here
# |   193 |   using type = typename decltype(__deduce_func())::type;
# |       |                                  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libcxx/test-suite-install/include/c++/v1/__ranges/to.h:229:53: note: in instantiation of template class 'std::ranges::_Deducer<ContainerWithDirectCtr, std::array<int, 5> &, const int, const char>' requested here
# |   229 |                       class _DeducedExpr = typename _Deducer<_Container, _Range, _Tail...>::type>
# |       |                                                     ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libcxx/test-suite-install/include/c++/v1/__ranges/to.h:228:20: note: in instantiation of default argument for 'operator()<std::array<int, 5> &, const int, const char>' required here
# |   228 |   auto __to_func = []<input_range _Range, class... _Tail,
# |       |                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |   229 |                       class _DeducedExpr = typename _Deducer<_Container, _Range, _Tail...>::type>
# |       |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |   230 |     (_Range&& __range, _Tail&& ... __tail) static
# |       |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |   231 |       requires requires { //
# |       |       ~~~~~~~~~~~~~~~~~~~~~~
# |   232 |       /**/ ranges::to<_DeducedExpr>(std::forward<_Range>(__range), std::forward<_Tail>(__tail)...);
# |       |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |   233 |     }
# |       |     ~
# |   234 |   {
# |       |   ~
# |   235 |     return ranges::to<_DeducedExpr>(std::forward<_Range>(__range), std::forward<_Tail>(__tail)...);
# |       |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |   236 |   };
# |       |   ~
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libcxx/test-suite-install/include/c++/v1/__type_traits/invoke.h:77:47: note: while substituting deduced template arguments into function template 'operator()' [with _Range = std::array<int, 5> &, _Tail = <const int, const char>, _DeducedExpr = (no value)]
# |    77 | struct __invoke_result_impl<__void_t<decltype(__builtin_invoke(std::declval<_Args>()...))>, _Args...> {
# |       |                                               ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libcxx/test-suite-install/include/c++/v1/__type_traits/invoke.h:85:1: note: during template argument deduction for class template partial specialization '__invoke_result_impl<__void_t<decltype(__builtin_invoke(std::declval<_Args>()...))>, _Args...>' [with _Args = <const (lambda at /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libcxx/test-suite-install/include/c++/v1/__ranges/to.h:228:20), std::array<int, 5> &, const int, const char>]
# |    85 | using __invoke_result_t _LIBCPP_NODEBUG = typename __invoke_result<_Args...>::type;
# |       | ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libcxx/test-suite-install/include/c++/v1/__type_traits/invoke.h:85:1: note: (skipping 18 contexts in backtrace; use -ftemplate-backtrace-limit=0 to see all)
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libcxx/test-suite-install/include/c++/v1/__concepts/invocable.h:28:3: note: in instantiation of requirement here
# |    28 |   std::invoke(std::forward<_Fn>(__fn), std::forward<_Args>(__args)...); // not required to be equality preserving
# |       |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libcxx/test-suite-install/include/c++/v1/__concepts/invocable.h:27:21: note: while substituting template arguments into constraint expression here
# |    27 | concept invocable = requires(_Fn&& __fn, _Args&&... __args) {
# |       |                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |    28 |   std::invoke(std::forward<_Fn>(__fn), std::forward<_Args>(__args)...); // not required to be equality preserving
# |       |   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |    29 | };
# |       | ~
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libcxx/test-suite-install/include/c++/v1/__ranges/range_adaptor.h:71:12: note: while checking the satisfaction of concept 'invocable<std::array<int, 5> &, std::ranges::__pipeable<std::__bind_back_t<(lambda at /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libcxx/test-suite-install/include/c++/v1/__ranges/to.h:228:20), std::tuple<int, char>>>>' requested here
# |    71 |   requires invocable<_Closure, _Range>
# |       |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/libcxx/test/std/ranges/range.utility/range.utility.conv/to_deduction.pass.cpp:77:18: note: while checking constraint satisfaction for template 'operator|<std::array<int, 5> &, std::ranges::__pipeable<std::__bind_back_t<(lambda at /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libcxx/test-suite-install/include/c++/v1/__ranges/to.h:228:20), std::tuple<int, char>>>>' required here
# |    77 |       assert((in | std::ranges::to<ContainerWithDirectCtr>(arg1, arg2)) == result);
# |       |                  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/libcxx/test/std/ranges/range.utility/range.utility.conv/to_deduction.pass.cpp:77:18: note: while substituting deduced template arguments into function template 'operator|' [with _Range = std::array<int, 1 + sizeof...(_Args)> &, _Closure = __pipeable<std::__bind_back_t<(lambda at /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libcxx/test-suite-install/include/c++/v1/__ranges/to.h:228:20), std::tuple<int, char>>>]
# | /usr/include/assert.h:103:27: note: expanded from macro 'assert'
# |   103 |      (static_cast <bool> (expr)                                         \
# |       |                           ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libcxx/test-suite-install/include/c++/v1/__ranges/to.h:188:21: note: because 'std::array<int, 5> &' does not satisfy '__always_false'
# |   188 |       static_assert(__always_false<_Range>,
# |       |                     ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libcxx/test-suite-install/include/c++/v1/__ranges/to.h:76:26: note: because 'false' evaluated to false
# |    76 | concept __always_false = false;
# |       |                          ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libcxx/test-suite-install/include/c++/v1/__ranges/to.h:193:25: error: type 'decltype(__deduce_func())' (aka 'void') cannot be used prior to '::' because it has no members
# |   193 |   using type = typename decltype(__deduce_func())::type;
# |       |                         ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libcxx/test-suite-install/include/c++/v1/__ranges/to.h:229:53: note: in instantiation of template class 'std::ranges::_Deducer<ContainerWithDirectCtr, std::array<int, 5> &, const int, const char>' requested here
# |   229 |                       class _DeducedExpr = typename _Deducer<_Container, _Range, _Tail...>::type>
# |       |                                                     ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libcxx/test-suite-install/include/c++/v1/__ranges/to.h:228:20: note: in instantiation of default argument for 'operator()<std::array<int, 5> &, const int, const char>' required here
# |   228 |   auto __to_func = []<input_range _Range, class... _Tail,
# |       |                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |   229 |                       class _DeducedExpr = typename _Deducer<_Container, _Range, _Tail...>::type>
# |       |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |   230 |     (_Range&& __range, _Tail&& ... __tail) static
# |       |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |   231 |       requires requires { //
# |       |       ~~~~~~~~~~~~~~~~~~~~~~
# |   232 |       /**/ ranges::to<_DeducedExpr>(std::forward<_Range>(__range), std::forward<_Tail>(__tail)...);
# |       |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |   233 |     }
# |       |     ~
# |   234 |   {
# |       |   ~
# |   235 |     return ranges::to<_DeducedExpr>(std::forward<_Range>(__range), std::forward<_Tail>(__tail)...);
# |       |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |   236 |   };
# |       |   ~
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libcxx/test-suite-install/include/c++/v1/__type_traits/invoke.h:77:47: note: while substituting deduced template arguments into function template 'operator()' [with _Range = std::array<int, 5> &, _Tail = <const int, const char>, _DeducedExpr = (no value)]
# |    77 | struct __invoke_result_impl<__void_t<decltype(__builtin_invoke(std::declval<_Args>()...))>, _Args...> {
# |       |                                               ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libcxx/test-suite-install/include/c++/v1/__type_traits/invoke.h:85:1: note: during template argument deduction for class template partial specialization '__invoke_result_impl<__void_t<decltype(__builtin_invoke(std::declval<_Args>()...))>, _Args...>' [with _Args = <const (lambda at /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libcxx/test-suite-install/include/c++/v1/__ranges/to.h:228:20), std::array<int, 5> &, const int, const char>]
# |    85 | using __invoke_result_t _LIBCPP_NODEBUG = typename __invoke_result<_Args...>::type;
# |       | ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libcxx/test-suite-install/include/c++/v1/__type_traits/invoke.h:85:1: note: in instantiation of template class 'std::__invoke_result_impl<void, const (lambda at /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libcxx/test-suite-install/include/c++/v1/__ranges/to.h:228:20), std::array<int, 5> &, const int, const char>' requested here
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libcxx/test-suite-install/include/c++/v1/__type_traits/invoke.h:395:1: note: (skipping 17 contexts in backtrace; use -ftemplate-backtrace-limit=0 to see all)
# |   395 | using invoke_result_t = __invoke_result_t<_Fn, _Args...>;
# |       | ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libcxx/test-suite-install/include/c++/v1/__concepts/invocable.h:28:3: note: in instantiation of requirement here
# |    28 |   std::invoke(std::forward<_Fn>(__fn), std::forward<_Args>(__args)...); // not required to be equality preserving
# |       |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libcxx/test-suite-install/include/c++/v1/__concepts/invocable.h:27:21: note: while substituting template arguments into constraint expression here
# |    27 | concept invocable = requires(_Fn&& __fn, _Args&&... __args) {
# |       |                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |    28 |   std::invoke(std::forward<_Fn>(__fn), std::forward<_Args>(__args)...); // not required to be equality preserving
# |       |   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |    29 | };
# |       | ~
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libcxx/test-suite-install/include/c++/v1/__ranges/range_adaptor.h:71:12: note: while checking the satisfaction of concept 'invocable<std::array<int, 5> &, std::ranges::__pipeable<std::__bind_back_t<(lambda at /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libcxx/test-suite-install/include/c++/v1/__ranges/to.h:228:20), std::tuple<int, char>>>>' requested here
# |    71 |   requires invocable<_Closure, _Range>
# |       |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/libcxx/test/std/ranges/range.utility/range.utility.conv/to_deduction.pass.cpp:77:18: note: while checking constraint satisfaction for template 'operator|<std::array<int, 5> &, std::ranges::__pipeable<std::__bind_back_t<(lambda at /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libcxx/test-suite-install/include/c++/v1/__ranges/to.h:228:20), std::tuple<int, char>>>>' required here
# |    77 |       assert((in | std::ranges::to<ContainerWithDirectCtr>(arg1, arg2)) == result);
# |       |                  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/libcxx/test/std/ranges/range.utility/range.utility.conv/to_deduction.pass.cpp:77:18: note: while substituting deduced template arguments into function template 'operator|' [with _Range = std::array<int, 1 + sizeof...(_Args)> &, _Closure = __pipeable<std::__bind_back_t<(lambda at /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libcxx/test-suite-install/include/c++/v1/__ranges/to.h:228:20), std::tuple<int, char>>>]
# | /usr/include/assert.h:103:27: note: expanded from macro 'assert'
# |   103 |      (static_cast <bool> (expr)                                         \
# |       |                           ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/libcxx/test/std/ranges/range.utility/range.utility.conv/to_deduction.pass.cpp:77:18: error: invalid operands to binary expression ('std::array<int, 1 + sizeof...(_Args)>' (aka 'array<int, 1 + sizeof...(_Args)>') and '__pipeable<std::__bind_back_t<(lambda at /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libcxx/test-suite-install/include/c++/v1/__ranges/to.h:228:20), std::tuple<int, char>>>' (aka 'std::ranges::__pipeable<std::__bind_back_t<(lambda at /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libcxx/test-suite-install/include/c++/v1/__ranges/to.h:228:20), std::tuple<int, char>>>'))
# |    77 |       assert((in | std::ranges::to<ContainerWithDirectCtr>(arg1, arg2)) == result);
# |       |               ~~ ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | /usr/include/assert.h:103:27: note: expanded from macro 'assert'
# |   103 |      (static_cast <bool> (expr)                                         \
# |       |                           ^~~~
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libcxx/test-suite-install/include/c++/v1/__cstddef/byte.h:26:45: note: candidate function not viable: no known conversion from 'std::array<int, 1 + sizeof...(_Args)>' (aka 'array<int, 1 + sizeof...(_Args)>') to 'byte' for 1st argument
# |    26 | _LIBCPP_HIDE_FROM_ABI inline constexpr byte operator|(byte __lhs, byte __rhs) noexcept {
# |       |                                             ^         ~~~~~~~~~~
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libcxx/test-suite-install/include/c++/v1/__ranges/range_adaptor.h:73:1: note: candidate template ignored: constraints not satisfied [with _Range = std::array<int, 1 + sizeof...(_Args)> &, _Closure = __pipeable<std::__bind_back_t<(lambda at /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libcxx/test-suite-install/include/c++/v1/__ranges/to.h:228:20), std::tuple<int, char>>>]
# |    73 | operator|(_Range&& __range, _Closure&& __closure) noexcept(is_nothrow_invocable_v<_Closure, _Range>) {
# |       | ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libcxx/test-suite-install/include/c++/v1/__ranges/range_adaptor.h:71:12: note: because 'invocable<std::ranges::__pipeable<std::__bind_back_t<(lambda at /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libcxx/test-suite-install/include/c++/v1/__ranges/to.h:228:20), std::tuple<int, char> > >, std::array<int, 5> &>' evaluated to false
# |    71 |   requires invocable<_Closure, _Range>
# |       |            ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libcxx/test-suite-install/include/c++/v1/__concepts/invocable.h:28:3: note: because 'std::invoke(std::forward<_Fn>(__fn), std::forward<_Args>(__args)...)' would be invalid: no matching function for call to 'invoke'
# |    28 |   std::invoke(std::forward<_Fn>(__fn), std::forward<_Args>(__args)...); // not required to be equality preserving
# |       |   ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libcxx/test-suite-install/include/c++/v1/__ranges/range_adaptor.h:79:52: note: candidate template ignored: constraints not satisfied [with _Closure = std::array<int, 1 + sizeof...(_Args)> &, _OtherClosure = __pipeable<std::__bind_back_t<(lambda at /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libcxx/test-suite-install/include/c++/v1/__ranges/to.h:228:20), std::tuple<int, char>>>]
# |    79 | [[nodiscard]] _LIBCPP_HIDE_FROM_ABI constexpr auto operator|(_Closure&& __c1, _OtherClosure&& __c2) noexcept(
# |       |                                                    ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libcxx/test-suite-install/include/c++/v1/__ranges/range_adaptor.h:77:11: note: because 'std::array<int, 5> &' does not satisfy '_RangeAdaptorClosure'
# |    77 | template <_RangeAdaptorClosure _Closure, _RangeAdaptorClosure _OtherClosure>
# |       |           ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libcxx/test-suite-install/include/c++/v1/__ranges/range_adaptor.h:64:32: note: because '!ranges::range<remove_cvref_t<std::array<int, 5> &>>' evaluated to false
# |    64 | concept _RangeAdaptorClosure = !ranges::range<remove_cvref_t<_Tp>> && requires {
# |       |                                ^
# | In file included from /home/gha/actions-runner/_work/llvm-project/llvm-project/libcxx/test/std/ranges/range.utility/range.utility.conv/to_deduction.pass.cpp:14:
# | In file included from /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libcxx/test-suite-install/include/c++/v1/ranges:488:
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libcxx/test-suite-install/include/c++/v1/__ranges/to.h:188:21: error: static assertion failed: ranges::to: unable to deduce the container type from the template template argument.
# |   188 |       static_assert(__always_false<_Range>,
# |       |                     ^~~~~~~~~~~~~~~~~~~~~~
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libcxx/test-suite-install/include/c++/v1/__ranges/to.h:193:34: note: in instantiation of member function 'std::ranges::_Deducer<ContainerWithFromRangeT, std::array<int, 5> &>::__deduce_func' requested here
# |   193 |   using type = typename decltype(__deduce_func())::type;
# |       |                                  ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libcxx/test-suite-install/include/c++/v1/__ranges/to.h:200:32: note: in instantiation of template class 'std::ranges::_Deducer<ContainerWithFromRangeT, std::array<int, 5> &>' requested here
# |   200 |   using _DeduceExpr = typename _Deducer<_Container, _Range, _Args...>::type;
# |       |                                ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/libcxx/test/std/ranges/range.utility/range.utility.conv/to_deduction.pass.cpp:83:87: note: in instantiation of function template specialization 'std::ranges::to<ContainerWithFromRangeT, std::array<int, 5> &>' requested here
# |    83 |       std::same_as<ContainerWithFromRangeT<int>> decltype(auto) result = std::ranges::to<ContainerWithFromRangeT>(in);
# |       |                                                                                       ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libcxx/test-suite-install/include/c++/v1/__ranges/to.h:188:21: note: because 'std::array<int, 5> &' does not satisfy '__always_false'
# |   188 |       static_assert(__always_false<_Range>,
# |       |                     ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libcxx/test-suite-install/include/c++/v1/__ranges/to.h:76:26: note: because 'false' evaluated to false
# |    76 | concept __always_false = false;
# |       |                          ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libcxx/test-suite-install/include/c++/v1/__ranges/to.h:193:25: error: type 'decltype(__deduce_func())' (aka 'void') cannot be used prior to '::' because it has no members
# |   193 |   using type = typename decltype(__deduce_func())::type;
# |       |                         ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/build/runtimes/runtimes-bins/libcxx/test-suite-install/include/c++/v1/__ranges/to.h:200:32: note: in instantiation of template class 'std::ranges::_Deducer<ContainerWithFromRangeT, std::array<int, 5> &>' requested here
# |   200 |   using _DeduceExpr = typename _Deducer<_Container, _Range, _Args...>::type;
# |       |                                ^
# | /home/gha/actions-runner/_work/llvm-project/llvm-project/libcxx/test/std/ranges/range.utility/range.utility.conv/to_deduction.pass.cpp:83:87: note: in instantiation of function template specialization 'std::ranges::to<ContainerWithFromRangeT, std::array<int, 5> &>' requested here
# |    83 |       std::same_as<ContainerWithFromRangeT<int>> decltype(auto) result = std::ranges::to<ContainerWithFromRangeT>(in);
# |       |                                                                                       ^
# | fatal error: too many errors emitted, stopping now [-ferror-limit=]
# | 20 errors generated.
# `-----------------------------
# error: command failed with exit status: 1

--

```
</details>

If these failures are unrelated to your changes (for example tests are broken or flaky at HEAD), please open an issue at https://github.com/llvm/llvm-project/issues and add the `infrastructure` label.

https://github.com/llvm/llvm-project/pull/191409


More information about the cfe-commits mailing list