1 #ifndef HeterogeneousCore_CUDAUtilities_cuda_cxx17_h
2 #define HeterogeneousCore_CUDAUtilities_cuda_cxx17_h
4 #include <initializer_list>
7 #if __cplusplus <= 201402L
13 constexpr
auto size(
const C&
c) -> decltype(
c.size()) {
17 template <
class T, std::
size_t N>
24 constexpr
auto empty(
const C&
c) -> decltype(
c.empty()) {
28 template <
class T, std::
size_t N>
34 constexpr
bool empty(std::initializer_list<E> il) noexcept {
35 return il.size() == 0;
40 constexpr
auto data(
C&
c) -> decltype(
c.data()) {
45 constexpr
auto data(
const C&
c) -> decltype(
c.data()) {
49 template <
class T, std::
size_t N>
55 constexpr
const E*
data(std::initializer_list<E> il) noexcept {
63 #endif // HeterogeneousCore_CUDAUtilities_cuda_cxx17_h