SimiLie
Loading...
Searching...
No Matches
are_all_same.hpp
1// SPDX-FileCopyrightText: 2024 Baptiste Legouix
2// SPDX-License-Identifier: MIT
3
4#pragma once
5
6#include "specialization.hpp"
7
8namespace sil {
9
10namespace misc {
11
12template <class Head, class... Tail>
13inline constexpr bool are_all_same = (std::is_same_v<Head, Tail> && ...);
14
15template <class Head, class... Tail>
16inline constexpr bool are_all_equal(Head head, Tail... tail)
17{
18 return ((head == tail) && ...);
19}
20
21template <misc::Specialization<std::vector> T>
22inline constexpr bool are_all_equal(T t)
23{
24 return std::all_of(t.begin(), t.end(), [&](const std::size_t i) { return i == *t.begin(); });
25}
26
27} // namespace misc
28
29} // namespace sil
constexpr bool are_all_same
constexpr bool are_all_equal(Head head, Tail... tail)
The top-level namespace of SimiLie.
Definition csr.hpp:14