jaulib v1.3.6
Jau Support Library (C++, Java, ..)
Loading...
Searching...
No Matches
basic_algos.hpp File Reference
#include <mutex>
#include <type_traits>
#include <jau/cow_iterator.hpp>
Include dependency graph for basic_algos.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  jau::call_on_release< UnaryFunction >
 Call on release allows the user to pass a function to be called at destruction of this instance. More...
 

Namespaces

namespace  jau
 __pack(...): Produces MSVC, clang and gcc compatible lead-in and -out macros.
 

Functions

template<class InputArray, class T>
constexpr bool jau::contains (InputArray &array, const T &value)
 Return true if value is contained in array.
 
template<class InputIt, class T>
constexpr InputIt jau::find (InputIt first, InputIt last, const T &value)
 Like std::find() of 'algorithm'.
 
template<class T>
const T::value_type * jau::find_const (T &data, typename T::value_type const &elem, std::enable_if_t< !is_cow_type< T >::value, bool >=true) noexcept
 
template<class T>
const T::value_type * jau::find_const (T &data, typename T::value_type const &elem, std::enable_if_t< is_cow_type< T >::value, bool >=true) noexcept
 
template<class InputIt, class UnaryPredicate>
constexpr InputIt jau::find_if (InputIt first, InputIt last, UnaryPredicate p)
 Like std::find_if() of 'algorithm'.
 
template<class InputIt, class UnaryPredicate>
constexpr InputIt jau::find_if_not (InputIt first, InputIt last, UnaryPredicate q)
 Like std::find_if_not() of 'algorithm'.
 
template<class InputIt, class UnaryFunction>
constexpr UnaryFunction jau::for_each (InputIt first, InputIt last, UnaryFunction f)
 Like std::for_each() of 'algorithm'.
 
template<class T, class UnaryFunction>
constexpr UnaryFunction jau::for_each_const (T &data, UnaryFunction f, std::enable_if_t< !is_cow_type< T >::value, bool >=true) noexcept
 
template<class T, class UnaryFunction>
constexpr UnaryFunction jau::for_each_const (T &data, UnaryFunction f, std::enable_if_t< is_cow_type< T >::value, bool >=true) noexcept
 
template<class InputIt, class UnaryFunction>
constexpr UnaryFunction jau::for_each_fidelity (InputIt first, InputIt last, UnaryFunction f)
 Like jau::for_each(), see above.
 
template<class T, class UnaryFunction>
constexpr UnaryFunction jau::for_each_fidelity (T &data, UnaryFunction f, std::enable_if_t< !is_cow_type< T >::value, bool >=true) noexcept
 See jau::for_each_fidelity()
 
template<class T, class UnaryFunction>
constexpr UnaryFunction jau::for_each_fidelity (T &data, UnaryFunction f, std::enable_if_t< is_cow_type< T >::value, bool >=true) noexcept
 See jau::for_each_fidelity()
 
template<class InputArray, class UnaryFunction>
constexpr UnaryFunction jau::for_each_idx (InputArray &array, UnaryFunction f)
 Custom for_each template, using indices instead of iterators, allowing container to be modified within lambda 'callback'.
 
template<class Mutex, class InputArray, class UnaryFunction>
constexpr UnaryFunction jau::for_each_idx_mtx (Mutex &mtx, InputArray &array, UnaryFunction f)
 Custom for_each template, same as jau::for_each but using indices instead of iterators and a mutex.
 
template<class Mutex, class InputIt, class UnaryFunction>
constexpr UnaryFunction jau::for_each_mtx (Mutex &mtx, InputIt first, InputIt last, UnaryFunction f)
 Custom for_each template, same as jau::for_each but using a mutex.
 
template<class ForwardIt, class UnaryPredicate>
ForwardIt jau::remove_if (ForwardIt first, ForwardIt last, UnaryPredicate p)
 Identical to C++20 std::remove_if() of algorithm