数组比较模板运算符==不适用

时间:2018-07-22 14:20:44

标签: c++ arrays

我为c样式数组编写了一个不错的比较模板,如下所示。 唯一的问题是:在以下简单代码中,编译器未应用operator ==(找不到?)

int Array1[3];
int Array2[3];
bool is_equal = ( Array1 == Array2 );

这是我的模板

template<typename T, size_t N>
bool operator==( const T ( &A )[N], const T ( &B )[N] )
{
    for ( int i = 0; i < N; ++i )
    {
        if ( A[i] != B[i] )
        {
            return false;
        }
    }
    return true;
}

如果我将operator==(...)重命名为Equals(...),一切正常。 这是为什么?

我也不确定const在函数中的位置。显然,对于任何好的比较运算符,我都想使用'const&'。

0 个答案:

没有答案