SimiLie
Loading...
Searching...
No Matches
specialization.hpp
1// SPDX-FileCopyrightText: 2024 Baptiste Legouix
2// SPDX-License-Identifier: MIT
3
4#pragma once
5
6#include <concepts>
7
8namespace sil {
9
10namespace misc {
11
12template <template <typename...> class T, typename U>
13struct is_specialization_of : std::false_type
14{
15};
16
17template <template <typename...> class T, typename... Us>
18struct is_specialization_of<T, T<Us...>> : std::true_type
19{
20};
21
22template <typename U, template <typename...> class T>
23concept Specialization = is_specialization_of<T, U>::value;
24
25template <typename U, template <typename...> class T>
26concept NotSpecialization = !is_specialization_of<T, U>::value;
27
28} // namespace misc
29
30} // namespace sil
The top-level namespace of SimiLie.
Definition csr.hpp:14