<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/75057>75057</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
Warnings due to `std::reverse_iterator` using the deprecated `std::iterator`
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
JohelEGP
</td>
</tr>
</table>
<pre>
```output
In module 'cpp2.util' imported from /home/johel/build/Waarudo/ClangRelease/sources/jegp/algorithms/algorithms.cpp:12:
/home/johel/Documents/C++/Forks/llvm/libcxx-std-modules/include/c++/v1/__iterator/reverse_iterator.h:53:14: warning: 'iterator<std::__1::random_access_iterator_tag, jegp::command>' is deprecated [-Wdeprecated-declarations]
53 | : public iterator<typename iterator_traits<_Iter>::iterator_category,
| ^
/home/johel/Documents/C++/Forks/llvm/libcxx-std-modules/include/c++/v1/__memory/uninitialized_algorithms.h:542:40: note: in instantiation of template class 'std::__1::reverse_iterator<jegp::command *>' requested here
542 | std::__allocator_destroy(__alloc_, std::reverse_iterator<_Iter>(__last_), std::reverse_iterator<_Iter>(__first_));
| ^
/home/johel/Documents/C++/Forks/llvm/libcxx-std-modules/include/c++/v1/__utility/exception_guard.h:86:7: note: in instantiation of member function 'std::_AllocatorDestroyRangeReverse<std::__1::allocator<jegp::command>, jegp::command *>::operator()' requested here
86 | __rollback_();
| ^
/home/johel/Documents/C++/Forks/llvm/libcxx-std-modules/include/c++/v1/__utility/exception_guard.h:137:10: note: in instantiation of member function 'std::__exception_guard_exceptions<std::_AllocatorDestroyRangeReverse<std::__1::allocator<jegp::command>, jegp::command *>>::~__exception_guard_exceptions' requested here
137 | return __exception_guard<_Rollback>(std::move(__rollback));
| ^
/home/johel/Documents/C++/Forks/llvm/libcxx-std-modules/include/c++/v1/__memory/uninitialized_algorithms.h:560:12: note: in instantiation of function template specialization 'std::__make_exception_guard<std::_AllocatorDestroyRangeReverse<std::__1::allocator<jegp::command>, jegp::command *>>' requested here
560 | std::__make_exception_guard(_AllocatorDestroyRangeReverse<_Alloc, _Iter2>(__alloc, __destruct_first, __first2));
| ^
/home/johel/Documents/C++/Forks/llvm/libcxx-std-modules/include/c++/v1/__memory/uninitialized_algorithms.h:603:26: note: in instantiation of function template specialization 'std::__uninitialized_allocator_copy_impl<std::__1::allocator<jegp::command>, std::__1::ranges::transform_view<std::__1::ranges::owning_view<std::__1::vector<std::__1::basic_string<char>>>, jegp::command (*)(std::__1::basic_string<char>)>::__iterator<false>, std::__1::ranges::transform_view<std::__1::ranges::owning_view<std::__1::vector<std::__1::basic_string<char>>>, jegp::command (*)(std::__1::basic_string<char>)>::__iterator<false>, jegp::command *>' requested here
603 | auto __result = std::__uninitialized_allocator_copy_impl(__alloc, __unwrapped_range.first, __unwrapped_range.second, std::__unwrap_iter(__first2));
| ^
/home/johel/Documents/C++/Forks/llvm/libcxx-std-modules/include/c++/v1/vector:1145:22: note: (skipping 5 contexts in backtrace; use -ftemplate-backtrace-limit=0 to see all)
1145 | __tx.__pos_ = std::__uninitialized_allocator_copy(__alloc(), __first, __last, __tx.__pos_);
| ^
/home/johel/build/Waarudo/ClangRelease/sources/jegp/algorithms/algorithms.cpp:100:57: note: in instantiation of function template specialization 'std::__1::ranges::to<std::__1::vector, std::__1::ranges::transform_view<std::__1::ranges::owning_view<std::__1::vector<std::__1::basic_string<char>>>, jegp::command (*)(std::__1::basic_string<char>)>>' requested here
100 | return CPP2_UFCS_QUALIFIED_TEMPLATE((std::ranges::),to<std::vector>)(CPP2_UFCS(std::views::transform)(std::move(v), command::make)); }
| ^
/home/johel/build/Waarudo/ClangRelease/sources/jegp/algorithms/algorithms.cpp:100:42: note: in instantiation of requirement here
100 | return CPP2_UFCS_QUALIFIED_TEMPLATE((std::ranges::),to<std::vector>)(CPP2_UFCS(std::views::transform)(std::move(v), command::make)); }
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/johel/Documents/C++/Forks/hsutter/waarudo/include/cpp2util_pre.h:373:72: note: expanded from macro 'CPP2_UFCS_QUALIFIED_TEMPLATE'
373 | #define CPP2_UFCS_QUALIFIED_TEMPLATE(QUALID,...) CPP2_UFCS_(&,QUALID,template,__VA_ARGS__)
| ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/johel/Documents/C++/Forks/hsutter/waarudo/include/cpp2util_pre.h:363:39: note: expanded from macro 'CPP2_UFCS_'
363 | requires CPP2_UFCS_CONSTRAINT_ARG(QUALID,TEMPKW,__VA_ARGS__) { \
| ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
/home/johel/Documents/C++/Forks/hsutter/waarudo/include/cpp2util_pre.h:345:35: note: expanded from macro 'CPP2_UFCS_CONSTRAINT_ARG'
345 | || requires { CPP2_UFCS_REMPARENS QUALID __VA_ARGS__(CPP2_FORWARD(obj), CPP2_FORWARD(params)...); }
| ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/johel/Documents/C++/Forks/hsutter/waarudo/include/cpp2util_pre.h:306:34: note: expanded from macro 'CPP2_UFCS_REMPARENS'
306 | #define CPP2_UFCS_REMPARENS(...) __VA_ARGS__
| ^
/home/johel/build/Waarudo/ClangRelease/sources/jegp/algorithms/algorithms.cpp:100:12: note: while substituting template arguments into constraint expression here
100 | return CPP2_UFCS_QUALIFIED_TEMPLATE((std::ranges::),to<std::vector>)(CPP2_UFCS(std::views::transform)(std::move(v), command::make)); }
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/johel/Documents/C++/Forks/hsutter/waarudo/include/cpp2util_pre.h:373:59: note: expanded from macro 'CPP2_UFCS_QUALIFIED_TEMPLATE'
373 | #define CPP2_UFCS_QUALIFIED_TEMPLATE(QUALID,...) CPP2_UFCS_(&,QUALID,template,__VA_ARGS__)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/johel/Documents/C++/Forks/hsutter/waarudo/include/cpp2util_pre.h:363:14: note: expanded from macro 'CPP2_UFCS_'
363 | requires CPP2_UFCS_CONSTRAINT_ARG(QUALID,TEMPKW,__VA_ARGS__) { \
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/johel/Documents/C++/Forks/hsutter/waarudo/include/cpp2util_pre.h:345:4: note: expanded from macro 'CPP2_UFCS_CONSTRAINT_ARG'
345 | || requires { CPP2_UFCS_REMPARENS QUALID __VA_ARGS__(CPP2_FORWARD(obj), CPP2_FORWARD(params)...); }
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/johel/build/Waarudo/ClangRelease/sources/jegp/algorithms/algorithms.cpp:100:73: note: while checking constraint satisfaction for template 'operator()<std::__1::ranges::transform_view<std::__1::ranges::owning_view<std::__1::vector<std::__1::basic_string<char>>>, jegp::command (*)(std::__1::basic_string<char>)>>' required here
100 | return CPP2_UFCS_QUALIFIED_TEMPLATE((std::ranges::),to<std::vector>)(CPP2_UFCS(std::views::transform)(std::move(v), command::make)); }
| ^
/home/johel/build/Waarudo/ClangRelease/sources/jegp/algorithms/algorithms.cpp:100:73: note: in instantiation of function template specialization 'jegp::command::range_from_array_arguments(std::vector<std::string>)::(anonymous class)::operator()<std::__1::ranges::transform_view<std::__1::ranges::owning_view<std::__1::vector<std::__1::basic_string<char>>>, jegp::command (*)(std::__1::basic_string<char>)>>' requested here
/home/johel/Documents/C++/Forks/llvm/libcxx-std-modules/include/c++/v1/__iterator/iterator.h:24:29: note: 'iterator<std::__1::random_access_iterator_tag, jegp::command>' has been explicitly marked deprecated here
24 | struct _LIBCPP_TEMPLATE_VIS _LIBCPP_DEPRECATED_IN_CXX17 iterator
| ^
/home/johel/Documents/C++/Forks/llvm/libcxx-std-modules/include/c++/v1/__config:941:41: note: expanded from macro '_LIBCPP_DEPRECATED_IN_CXX17'
941 | # define _LIBCPP_DEPRECATED_IN_CXX17 _LIBCPP_DEPRECATED
| ^
/home/johel/Documents/C++/Forks/llvm/libcxx-std-modules/include/c++/v1/__config:914:49: note: expanded from macro '_LIBCPP_DEPRECATED'
914 | # define _LIBCPP_DEPRECATED __attribute__((__deprecated__))
| ^
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzsWltz6rYa_TXiRRPGlrENDzwQA52c0-7mkLTpm0bYH6Ad2_KR5FzOQ3_7GcnYGMJlk7Zk73Z7MsFYF0trLa3vsxFTii9zgCHyr5E_7rBSr4Qc_kusIJ38cNuZi-R1iAKn-hOlLkqNnDFyRjc5zkRSpoARCeOiIN1S8xSREPOsEFJDghdSZBiR6UpkgMj0s-kUkem85GmCyPSBMVkmApFplLJ8OYMUmDIVlShlDMo0gWWByJSlSyG5XmVq60s3LgrkjVyCvFE1qLc3G4u4zCDXpmWEyLX9m06FfDRX0vQpMx98Hr-8XCmdXFVzMmU8j9MyMX3FTbsnF5EppVyDZFpIRKYSnkAqaC51V8gb-Z4ZVg95I_zMZM7zpTlFJGwaepHSiRm2N6LUrU4kyxORURbHoFTTIdVsiUiELRS2XiyyjOUJ8iYWbYUTKCTEzECO_Ourh833qwTilEmmucgV8scVShhj38MojLA5zNCKcp7yGLeGp18LyFkGeDMOybhWyIvojQZp7m5H05SbGy6FfEUkam5jug8jjPzJRfnJILMDmZY5z7nmLOX_g4S2lGNZ6hnh9BwDQC40mE-eY54rzXLNLWhYLLCGrEiZBhynTClD4x7udmSAvOgNYRiR0Zo0Cf8tQRnCViChhsvvEQtXq3uWpiK28CagtBSviPTXV6lRRVN1zwAankyTlClNERmc1WjBZd1qgLzrj6bVGAzXhld4iaEw_NBlyWRi6ewHyBuFp8jMIJuDxIsyj-2lLTZHNdrjCuwZy5cwq0Dau2QbevbxbVHcs3BrHdhroqitpG9xPqQN3A8s5pRKkaZzFj_SdZOvnRfXM6S4J5fZUWboTs-b72qLmAszuCbx96PjO8ip64WWLwm6lDl-04lZjrM129WSbMafiSewS7RWw1ezSL_QewOnjtxHRdGooTFhVUBsO2V7VJKxR9iD4gfq47DZB86u2e8dPemfGnRVbgZizZvU7s2ay1XwKGNdOXp1zZ6Sb0w3gWNSKxL8ybrZvWcddGNRvFKeFem7tbE3zVuCqs61ZLlaCJnRJw7Ph7LCprp4Nrnk4bpPEB9KLudM8ZgqLW0yGsUrJmsHO6jhvpGx0Uf_i_szUprUVVtpxYKlRqvfIdkPyfm5YuBsMnhWamESA1BlqjHyxvgsae94RZk_S1YUkFCLc7dlGbtFCmKRJzucVpXsTDdJ5NfiM7UcRq7b842TbEUgQ-sjLwqeL7GPY5FreNHKGIwJsVqyGJB3jUsF-GpRO8tVU3aV8oxr5I0drAVWAJilqZl1NWVzyzVnlOqXLqWFUPQcvtpU9dfJPG17usnyq7Om_7NR_9Mfzx0T6v2TmfmZlr3POsQxC_jHOs8RF3Edp52BRre3hP4yje7of34Z_XgzvZmM6f3kp9sfR_cTO4LNvdtIVErcRr-e_aQac9Nzuw8D3S72O1Nc57lPa7E3sdWWsUdobMXIevzhKu-dTGgND1yCsbW9TJjjb8rG70cP5E9OVHhXlFipUttINH1umG5Fh6Ig5umVFhJsfumFJr8Mt2iEl4LlSf0-M2OxFMaLjtMT1rP3wipQI-IlsOA5nOLVXhwjEnW7XUQGreqW9ACRqKlSWyUiEaW_juho9sMdpZuQsx_741BfBufA4OwNzsK5jWrgtZaLXVKqhVT086e7-9no5tO9gaQNqgH63w9v8MIovMbIf_Pm8l1yvQyCNn_x_LMQ3MVlg-c6NUFhVMWDNaQGlk3z2eSn29Fs8ukOV3jiLRArW5n-PHsYzcaI9MX889oodgoKJplx0UGlcOMXX2gXJ03ixHEZZpzA8nMWMw20bVKc4KB1tOr310bRJuOjA-H2m53nFU8Bq3KuNNelNul1k-QxuaygxzzXwiTdSkvGc20wk6CUCZz_sEj5B2V-wUjpn-fg30CkPAP7C0ZK9zw3-YBI-S7NXjBSngfgtxQo_2hQfD9Nf03ssMayEzviFcSPJm604oNimqsFq14aLITcxBREwp3f1U49zP_tn_25_P7of0HVvvcF156fERrIqTEryqRkr7TJmrZAfaO6WhaVHirC-iwX-WsmSlVtaGiKvi-Z46_LLr-5aGtTETERjAy231f_FTuKVkzhOUBuomTKY67TV5wx-QhJe6fR1uYE0lv_linLWGP64811dHvb-Af99eauuTie3M4m0eh-MqY3n2j0229uuNl39MG_QcYiX_Al8kaDnkHQ_juVMxyZVyttGPTcOrfF6-T2GCBvy74eaGwq2vuSvH_PLFqIuL0GEXschAVTyrSWfF5qoFVq36d0I0Va71A6CFG9f7GTDL1k4A1YB4Zu6BDPCfrE7ayGjDluL2bgLQLmxYnnh9489Bw_DPvMXQRehw-JQzyXuK7rOw5xuwsI4n7Ycwe9fr9HAg_1HMgYT7sG366Qyw5XqoRh6Dt-2EnZHFJlN1kSksMztoWIEOSPO3Jo2lzNy6VCPSflSqtNL5rrFIYP1S5ChZMSsBYYBc7hTVyBg0tln7FXsLU3sNWoVblTynS40rqwRk2miEyXXK_KeTcWWUswZoyFFJ8h1kYqZgJGM3aC_w8AAP__QI5C3A">