/* Copyright 2014-2016 The MathWorks, Inc. */ #ifndef MATLAB_DATA_ARRAY_DEFS_H #define MATLAB_DATA_ARRAY_DEFS_H #include <complex> #include "Optional.hpp" #ifndef _HAS_CHAR16_T_LANGUAGE_SUPPORT #define _HAS_CHAR16_T_LANGUAGE_SUPPORT 0 #endif #if (defined(__cplusplus) && (__cplusplus >= 201103L)) || _HAS_CHAR16_T_LANGUAGE_SUPPORT #define U16_STRING_LITERAL_PREFIX u typedef char16_t CHAR16_T; #else #define U16_STRING_LITERAL_PREFIX L typedef wchar_t CHAR16_T; #if !defined(_CHAR16T) #define _CHAR16T typedef wchar_t char16_t; #endif #endif namespace matlab { namespace data { enum class DataOrder : int { COLUMN_MAJOR, ROW_MAJOR }; template <typename T> struct is_complex : std::false_type {}; template <typename T> struct is_complex<std::complex<T>> : std::true_type {}; template <typename T> struct is_complex<std::complex<T> const> : std::true_type {}; template <typename T> struct is_const_complex : std::false_type {}; template <typename T> struct is_const_complex<std::complex<T> const> : std::true_type {}; template <typename T> struct is_optional : std::false_type {}; template <typename T> struct is_optional<optional<T>> : std::true_type {}; template <typename T> struct is_optional<optional<T> const> : std::true_type {}; template <typename T> struct is_const_optional : std::false_type {}; template <typename T> struct is_const_optional<optional<T> const> : std::true_type {}; } } #endif