我收到了类似的代码行
entr -= normed_eigval * log(normed_eigval) / log(dim);
虽然normed_eigval
源于complexArray*
,我知道那dim
是类型ptrdiff_t
。当我尝试使用 MATLAB 的 MEX 接口和 Visual Studio 10 作为编译器来编译代码时,我收到一个错误:
C2668: ambiguous call to overloaded function
告诉我log
可能是long double
,float
或者double
。
我使用的是 64 位 Windows 机器。我可以使用类型转换来解决这个问题吗?如果是,我应该选择哪种类型?size_t
我认为如果或ptrdiff_t
将要转换为标准整数类型,在 64 位 Windows 下可能会出现一些问题......