我想定義一個函式來決定兩個雙精度陣列是否(大約)相等。這是我的代碼:
Comparisons.h :
#pragma once
#include <array>
const double EPSILON = 0.0001;
bool areFuzzyEqual(const double& d1, const double& d2);
template<int n>
bool fuzzyEquality((const std::array<double, n>)& a1, (const std::array<double, n>)& a2) {
bool retVal = True;
for (int i = 0; i < n; i ) {
retVal &= areFuzzyEqual(a1[i], a2[i]);
}
return retVal;
};
當我嘗試編譯這個專案時,我收到類似的錯誤
錯誤 C2065“a1”:未宣告的識別符號
錯誤 C3861“a1”:未找到識別符號
我不明白這個錯誤來自哪里。它們是引數,為什么我需要定義它們?
uj5u.com熱心網友回復:
只需重寫這一行
bool fuzzyEquality((const std::array<double, n>)& a1, (const std::array<double, n>)&a2)
作為
bool fuzzyEquality(const std::array<double, n>& a1, const std::array<double, n>& a2)
你應該很好。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/392249.html
下一篇:C 二進制文字
