Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
このエラー メッセージが表示されるのはなぜですか? 古いコンパイラでは正常にコンパイルされますが、新しいコンパイラではエラーが発生します。
エラー: キャストへの代入は不正です。左辺値のキャストはサポートされていません
それが指すコードは次の行です。
*((PWORD)pbyTmp)++ = (WORD)(((a_pw[0][i] * a_dX[0]) + (a_pw[1][i] * a_dX[1])) * a_dY[0] + 0.5);
あなたの「新しいコンパイラ」は正しいです。これは有効な C++ ではありません。
to へのキャスト(PWORD)は一時的なものを作成し、結果は右辺値式になります。これには何も代入してはなりません。オペレーター++が何かを割り当てます。
(PWORD)
++
わかりやすい左辺値式 (つまり、名前付き変数) を代入の左側に置きます。