1. ホーム
  2. c++

[解決済み】非メンバー関数はcv-qualifierを持つことができません。

2022-02-22 09:38:12

質問

次のような関数を書いているとき abs というエラーが発生します。

非メンバー関数 unsigned int abs(const T&) は cv-qualifier を持つことができません。

template<typename T>
inline unsigned int abs(const T& t) const
{
    return t>0?t:-t;
}

を削除した後 const の修飾子はエラーになりません。を変更していないため t 関数内で上記のコードはコンパイルされるはずです。なぜこのようなエラーが発生するのでしょうか?

解決方法は?

修正したくないという要望 t が表現されているのは const T& t . エンディングは const は、クラスのメンバ変数を変更しないことを指定します。 abs に属しています。

この関数が属するクラスは存在しないので、エラーになります。