https://bugs.documentfoundation.org/show_bug.cgi?id=153294
Bug ID: 153294
Summary: Use copy_if, find_if or remove_if to simplify loops
Product: LibreOffice
Version: unspecified
Hardware: All
OS: All
Status: UNCONFIRMED
Severity: normal
Priority: medium
Component: LibreOffice
Assignee: [email protected]
Reporter: [email protected]
Since C++11, STL provides means to process containers easier than before via
the available functions inside <algorithm>.
In tdf#153109, I have suggested using std::all_of, std::any_of and
std::none_of.
Here, I suggest to simplify loops via std::copy_if, find_if or remove_if:
std::copy_if
https://cplusplus.com/reference/algorithm/copy_if/
std::find_if
https://cplusplus.com/reference/algorithm/find_if/
std::remove_if
https://cplusplus.com/reference/algorithm/remove_if/
In the above links, you can find description for each of the above functions.
Beyond that, you can find good tutorials for these functions. For example:
Different methods to copy in C++ STL | std::copy(), copy_n(), copy_if(),
copy_backward()
https://www.geeksforgeeks.org/different-methods-copy-c-stl-stdcopy-copy_n-copy_if-copy_backward/
For an example of such changes inside LibreOffice code, see this commit:
Simplify Sequence iterations in lingucomponent..lotuswordpro
760a377f7148e623e9e16d24e66f54a401ecb946
You have to make sure that you keep the code behavior unchanged when using the
above STD functions.
--
You are receiving this mail because:
You are the assignee for the bug.