Files
jeanlemotan 8297b0b45f First
2024-07-02 18:06:33 +02:00

40 lines
909 B
C++

#pragma once
#include "tl/detail/prologue.h"
#include "tl/algorithm/find.h"
#include <iterator>
namespace tl
{
//////////////////////////////////////////////////////////////////////////
template <typename C, typename T>
bool contains(C& c, T&& value) noexcept
{
return tl::find(c, std::forward<T>(value)) != tl::end(c);
}
template <typename C, typename T>
bool contains(const C& c, T&& value) noexcept
{
return tl::cfind(c, std::forward<T>(value)) != tl::end(c);
}
template <typename C, typename UnaryPredicate>
bool contains_if(C& c, UnaryPredicate&& p) noexcept
{
return tl::find_if(c, std::forward<UnaryPredicate>(p)) != tl::end(c);
}
template <typename C, typename UnaryPredicate>
bool contains_if(const C& c, UnaryPredicate&& p) noexcept
{
return tl::cfind_if(c, std::forward<UnaryPredicate>(p)) != tl::end(c);
}
//////////////////////////////////////////////////////////////////////////
}