1. ホーム
  2. c++

[解決済み】「warning: not all control paths return a value」ってどういう意味?(C++)

2022-02-09 06:18:50

質問

私が受け取った正確な警告は

warning C4715: 'hand::show' : not all control paths return a value

で、hand::showは

std::ostream& hand::show(std::ostream& os) const
{
    if(side == left)
    {
        return os<<display[0]<<display[1]<<display[2]<<display[3]<<display[4];
    }
    if(side == right)
    {
        return os<<display[4]<<display[3]<<display[2]<<display[1]<<display[0];
    }
}

ここで、side は orientation 型の変数です。

orientation{
    left = -1,
    right = 1
};

この警告の意味と、警告を消すための最適な解決策を教えてください。

解決方法は?

コンパイラーは賢くないので、この2つのオプションのうち sideleftright ということで、どちらのreturn文も実行されない可能性があると判断しています。このとき side はどちらも left また right この関数には、どの値を返すかは書かれていません。