openSG と C++ でアプリケーションを作成中です。
なぜこれらの行(174ff):
Vec3f snakeDirection = (1,2,3);
std::cout << "direction"<< snakeDirection<<"\n";
版画
direction 3,0,0
私のシーンの完全なコードはここにあります:
openSG と C++ でアプリケーションを作成中です。
なぜこれらの行(174ff):
Vec3f snakeDirection = (1,2,3);
std::cout << "direction"<< snakeDirection<<"\n";
版画
direction 3,0,0
私のシーンの完全なコードはここにあります:
C++ では、この式により、コンパイラは括弧内のコンマを逐次評価演算子(1,2,3)
として解釈するように強制されます。順次評価演算子は、最初のオペランドを評価して結果を破棄する二項演算子です。次に、2 番目のオペランドを評価し、その値と型を返します。したがって、式は次のように評価されます。void
(1,2,3)
1
に が評価されて破棄され、次に(2,3)
が評価されて結果(2,3)
が返されます。2
に が評価されて破棄され、次に3
が評価されて結果3
が返されます。したがって、式の評価は(1,2,3)
を返し3
ます。
したがって、次のように述べます。
Vec3f snakeDirection = (1,2,3);
次のように述べることと同じです:
Vec3f snakeDirection = 3;
あなたがおそらく書くつもりだったのは、次のいずれかです。
Vec3f snakeDirection = Vec3f(1, 2, 3);
また
Vec3f snakeDirection(1, 2, 3);
また
Vec3f snakeDirection{1, 2, 3};
また
Vec3f snakeDirection = {1, 2, 3};