我想为我自己定义的新数据类型 Array 编写 log2() 函数。所以它看起来像这样
#include <iostream>
#include <cmath>
Array log2(Array& A)
{
Array C=A;
for (int i=0; i<A.size(); i++)
C[i]=log2(A[i]);
return C;
}
尽管有 sin、cos 等其他函数,但这个(log2)并未在 std 命名空间下声明。所以即使使用以下
std::log2(A[i])
编译器无法解析内部 log2 应该是内置的 c 函数。为简化代码,我坚持使用相同的名称 (log2)。
这是错误信息
错误:从“double”类型的表达式中对“Array&”类型的引用进行无效初始化
已解决:当我切换到 -std::C++ 11 时它起作用了。