alpaka
Abstraction Library for Parallel Kernel Acceleration
IsStrictBase.hpp
Go to the documentation of this file.
1 /* Copyright 2022 Benjamin Worpitz, Bernhard Manfred Gruber
2  * SPDX-License-Identifier: MPL-2.0
3  */
4 
5 #pragma once
6 
7 #include <type_traits>
8 
9 namespace alpaka::meta
10 {
11  //! The trait is true if TDerived is derived from TBase but is not TBase itself.
12  template<typename TBase, typename TDerived>
13  using IsStrictBase = std::
14  integral_constant<bool, std::is_base_of_v<TBase, TDerived> && !std::is_same_v<TBase, std::decay_t<TDerived>>>;
15 } // namespace alpaka::meta
std::integral_constant< bool, std::is_base_of_v< TBase, TDerived > &&!std::is_same_v< TBase, std::decay_t< TDerived > >> IsStrictBase
The trait is true if TDerived is derived from TBase but is not TBase itself.