FC2ブログ

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

VisualStudio2012のC++コンパイラのバグらしき挙動

たとえばこんな感じのコードを書いてみます。



きわめて簡単な内容なのですが、これはforの文に書き間違いがあります

誤 : for (int& a : v.size)
正 : for (int& a : v)

で、これをVCでコンパイルすると、コンパイルエラーではなくコンパイラが落ちてしまうようなのです。

勿論こんなコードを書きたい、ということがあるわけではないのですが、昔のコードを見やすく書き直す際に

for (size_t i = 0; i < v.size(); ++i)

for (int& i : v)

と書き直したときに、「.size」を消し忘れていたためにこの問題が発生していました。

この例は問題箇所を抜き出したサンプルで、量がすくないため間違えている場所わかるのですが、実際のソフト開発のコーディングを行っているときにこの書き間違いをしてしまうと、コンパイラが落ちてしまうのでどこが間違っているのかわからなくなってしまいます。

勿論書き間違えないのが一番良いわけですが、コミットする前にちゃんとコンパイルできるか確認を怠らないのと、
細かい単位でコミットしていれば、うっかりコミットしてしまっても後になって問題箇所を絞り込みやすいのではないかと思います。
スポンサーサイト

コメントの投稿

非公開コメント

カレンダー
09 | 2018/10 | 11
- 1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31 - - -
最新記事
カテゴリ
Qt (21)
SDL (2)
MFC (2)
検索フォーム
月別アーカイブ
最新コメント
最新トラックバック
RSSリンクの表示
リンク
リンク(管理用)
FC2カウンター
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。