【競プロ】MacのVSCode環境でなぜか「cinが定義されていません」や「coutが定義されていません」と表示される
状況
- cinやcoutなどの下に赤い波線が引かれている
- #include <bits/stdc++.h>は書かれている
- #include<iostream>などSTLの読み込み処理を書けばエラーは消える
- using namespace std;も書かれている
- VSCodeを再読み込みしても治らない
- 実行時にはエラーが出ない
解決策
Command + Shift + Pでコマンドパレットを開き、IntelliSenseと入力
「C/C++: IntelliSense 構成を選択…」を選択
「gcc-13を使用する」を選択(僕の環境ではgcc-13ですがgcc-12だったりするかもしれません)
あとはVSCodeを再読み込みすればcinやcoutの下の赤線が消えているはずです。
原因
bits/stdc++.hが使えるのはgccだけだが、なんらかの原因でVSCodeの環境にclangが選択されてしまったのが原因。そのためもう一度gccを選択するようにVSCodeに指示すればbits/stdc++.hが使用できるようになり、エラーが消える。
また、#include<iostream>を記述すればエラーが消えるのもbits/stdc++.hで読み込んでいるつもりだったiostreamが読み込めていなかっただけであるため、iostreamを読み込む処理を追記すれば当然エラーは出なくなる。