Loading...
Searching...
No Matches
TensorMacros.h
1// This file is part of Eigen, a lightweight C++ template library
2// for linear algebra.
3//
4// Copyright (C) 2015 Benoit Steiner <benoit.steiner.goog@gmail.com>
5//
6// This Source Code Form is subject to the terms of the Mozilla
7// Public License v. 2.0. If a copy of the MPL was not distributed
8// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
9
10#ifndef EIGEN_CXX11_TENSOR_TENSOR_META_MACROS_H
11#define EIGEN_CXX11_TENSOR_TENSOR_META_MACROS_H
12
13
29// SFINAE requires variadic templates
30#ifndef __CUDACC__
31#if EIGEN_HAS_VARIADIC_TEMPLATES
32 // SFINAE doesn't work for gcc <= 4.7
33 #ifdef EIGEN_COMP_GNUC
34 #if EIGEN_GNUC_AT_LEAST(4,8)
35 #define EIGEN_HAS_SFINAE
36 #endif
37 #else
38 #define EIGEN_HAS_SFINAE
39 #endif
40#endif
41#endif
42
43#define EIGEN_SFINAE_ENABLE_IF( __condition__ ) \
44 typename internal::enable_if< ( __condition__ ) , int >::type = 0
45
46
47#if EIGEN_HAS_CONSTEXPR
48#define EIGEN_CONSTEXPR constexpr
49#else
50#define EIGEN_CONSTEXPR
51#endif
52
53
54#endif