Skip to content

Instantly share code, notes, and snippets.

View DVMirchev's full-sized avatar
🦑
Being

Dimitar Mirchev DVMirchev

🦑
Being
View GitHub Profile
template <Sequence S, typename T>
requires Equality_comparable<Value_type<S>, T>
Iterator_of<S> find(S& seq, const T& value);
//that is equivalent to
template <class S, typename T>
requires Sequence<S> && Equality_comparable<Value_type<S>, T>
Iterator_of<S> find(S& seq, const T& value);
// Sortable is a concept for sortable sequences
void sort(Sortable& s);
// or
template<Sortable Seq>
void sort(Seq& s);
// which is short of / equivalent to / sintactic sugar for
template<typename Seq>
requires Sortable<Seq> // requires tests if Sortable<Seq> returns true
template<class T>
T minMaxRand(const T& min, const T& max)
{
static_assert(std::is_arithmetic<T>::value);
static thread_local std::mt19937 generator(std::random_device{}());
std::uniform_int_distribution<T> distribution(min, max);
return distribution(generator);
}
template <class T, size_t N>
constexpr auto size(T (&a)[N])
{
return N;
}