SeqAn3 3.4.0-rc.1
The Modern C++ library for sequence analysis.
Loading...
Searching...
No Matches
transformation_trait_or.hpp
Go to the documentation of this file.
1// SPDX-FileCopyrightText: 2006-2024 Knut Reinert & Freie Universität Berlin
2// SPDX-FileCopyrightText: 2016-2024 Knut Reinert & MPI für molekulare Genetik
3// SPDX-License-Identifier: BSD-3-Clause
4
10#pragma once
11
12#include <type_traits>
13
15
16namespace seqan3::detail
17{
18
38template <typename type_t, typename default_t>
39using transformation_trait_or = std::conditional_t<transformation_trait<type_t>, // check if type_t::type exists
40 type_t, // if yes, return type_t
41 std::type_identity<default_t>>; // else return default_t as trait
42
47template <typename type_t, typename default_t>
48using transformation_trait_or_t = typename transformation_trait_or<type_t, default_t>::type;
49
50} // namespace seqan3::detail
Provides the concepts seqan3::transformation_trait and seqan3::unary_type_trait.
Hide me