File: TestConversionFromPointer.cpp

package info (click to toggle)
kokkos 5.0.1-1
  • links: PTS, VCS
  • area: main
  • in suites: experimental
  • size: 15,140 kB
  • sloc: cpp: 225,293; sh: 1,250; python: 78; makefile: 16; fortran: 4; ansic: 2
file content (21 lines) | stat: -rw-r--r-- 702 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
// SPDX-FileCopyrightText: Copyright Contributors to the Kokkos project

#include <Kokkos_Core.hpp>
#include <type_traits>

// Checking requirement of explict type conversion to View

namespace {

template <class From, class To>
inline constexpr bool conversion_is_explicit =
    std::is_constructible_v<To, From> && !std::is_convertible_v<From, To>;

using T = int;
static_assert(conversion_is_explicit<T*, Kokkos::View<T>>);
static_assert(conversion_is_explicit<T*, Kokkos::View<T*>>);
static_assert(conversion_is_explicit<T*, Kokkos::View<T[4]>>);
static_assert(conversion_is_explicit<std::nullptr_t, Kokkos::View<T[4]>>);

}  // namespace