diff --git a/matlab.h b/matlab.h index 5c7cf7a..61c786c 100644 --- a/matlab.h +++ b/matlab.h @@ -159,13 +159,15 @@ mxArray* wrap(const bool& value) { return result; } -// specialization to size_t +// specialization to size_t but skip Win64 size check & CUDACC check +#if !defined(_WIN64) || defined(__CUDACC__) template<> mxArray* wrap(const size_t& value) { mxArray *result = scalar(mxUINT32OR64_CLASS); *(size_t*)mxGetData(result) = value; return result; } +#endif // specialization to int template<> @@ -345,12 +347,14 @@ uint64_t unwrap(const mxArray* array) { return myGetScalar(array); } -// specialization to size_t +// specialization to size_t but skip Win64 size check (size_t == uint64_t) & CUDACC check +#if !defined(_WIN64) || defined(__CUDACC__) template<> size_t unwrap(const mxArray* array) { checkScalar(array, "unwrap"); return myGetScalar(array); } +#endif // specialization to double template<>