File: disjunction.hpp

package info (click to toggle)
gridtools 2.3.8-1
  • links: PTS, VCS
  • area: main
  • in suites: trixie
  • size: 21,264 kB
  • sloc: cpp: 107,228; python: 17,464; javascript: 9,164; ansic: 4,227; sh: 850; f90: 393; makefile: 230
file content (22 lines) | stat: -rw-r--r-- 550 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
/*
 * GridTools
 *
 * Copyright (c) 2014-2019, ETH Zurich
 * All rights reserved.
 *
 * Please, refer to the LICENSE file in the root directory.
 * SPDX-License-Identifier: BSD-3-Clause
 */
#pragma once

#include <type_traits>

namespace cpp_bindgen {

    template <class...>
    struct disjunction : std::false_type {};
    template <class B1>
    struct disjunction<B1> : B1 {};
    template <class B1, class... Bn>
    struct disjunction<B1, Bn...> : std::conditional<bool(B1::value), B1, disjunction<Bn...>>::type {};
} // namespace cpp_bindgen