単項プラス演算子は何をしますか?

実際、単項プラスは できます 何かをします - C でも。通常の算術変換を実行します。 新しい値を返します。これは、幅の広い整数にすることができます。元の値が int より小さい幅の符号なし整数だった場合 、 signed に変更されます

通常、これはそれほど重要ではありませんが、できる 効果があるので、ない 単項プラスを、整数が正であることを示す一種の「コメント」として使用することをお勧めします。次の C++ プログラムを考えてみましょう:

void foo(unsigned short x)
{
 std::cout << "x is an unsigned short" << std::endl;
}

void foo(int x)
{
 std::cout << "x is an int" << std::endl;
}

int main()
{
 unsigned short x = 5;
 foo(+x);
}

これにより、「x is an int」と表示されます。

したがって、この例の単項プラスでは、異なる型 and で新しい値を作成しました 署名性。


必要に応じてオーバーロードする必要があります。事前定義されたすべての型について、基本的にノーオペレーションです。

no-op 単項算術演算子の実際の使用はかなり制限されており、演算子自体ではなく、算術式で値を使用した結果に関連する傾向があります。たとえば、より小さい整数型から int への拡大を強制するために使用できます。 、または式の結果が右辺値として扱われるため、非 const と互換性がないことを確認してください 参照パラメーター。ただし、これらの使用法は読みやすさよりもコード ゴルフに適していると思います。 :-)


K&R 第 2 版より: