自分で定義した新しいデータ型の log2() 関数を Array に書きたいと思います。だから、それはこのようになります
#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 に切り替えたときに機能しました。