質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

Q&A

解決済

3回答

7129閲覧

Visual Studio でコンパイルできるのにインテリセンスがエラーを出すと思ったら勝手に治ってしまった

Watching

総合スコア56

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

0グッド

0クリップ

投稿2020/09/23 04:05

コンパイルできるのに、インテリセンスが大量にエラーを出しまくる。書き換えた直後はエラーが消えるのに、10秒ほど放置すると大量に赤線が引かれる。
どこでエラー判定になっているのかテストしてみようとテストクラスを少し書くと、なぜかエラーを一切吐かなくなってしまった。

エラーは複数あったが、~はクラスまたは構造体の名前ではありません、と、既定のコンストラクタが存在しません(だったと思う)、が原因のようで、他のエラーはそれに因するものであった。
エラーが出た箇所は、以下のような箇所だった。

ヘッダ

c++

1class Test 2{ 3 class A { 4 public: 5 A(int i); 6 }; 7 class B : public A {//ここのA ~はクラスまたは構造体の名前ではありません 8 B(int i); 9 }; 10 class C : public A {//ここのA ~はクラスまたは構造体の名前ではありません 11 C(int i); 12 }; 13};

ソース

c++

1#include "Test.h" 2 3Test::A::A(int i) {} 4Test::B::B(int i) : A(i) {} //ここのB 既定のコンストラクタが存在しません(だったと思う) 5Test::C::C(int i) : A(i) {}

今後発生するかどうかはわからないが、勝手にエラーが出て勝手にエラーが出なくなったのはさすがに怖いので、情報提供求む。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Zuishin

2020/09/23 04:39 編集

実はヘッダとソースを逆に書いていた。
yumetodo

2020/09/26 08:46

一般的な話として、MSVCのIntelliSenseとcl.exeは全く別のコンパイラなので、IntelliSenseの結果とコンパイル結果はとくに最新機能なんかが活用されている場合において一致しない。2年位前まだcl.exeがfeature test macro対応してない頃、IntelliSenseはそれに対応してたので大混乱した経験がある。
Watching

2020/09/26 08:48

なるほど! そもそも別な次元のものだから完全に擦り合わせられてるわけじゃないってことですね。
Zuishin

2020/09/26 09:16

今回は同じソースで同じインテリセンスで違う結果が出ているという話なので、そういう問題でもない気がしますが。
guest

回答3

0

一番ありがちなのが括弧の数間違い。
俺もそれで2時間くらい悩んだ経験ある。

投稿2020/09/23 07:22

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

自己解決

インテリセンスとコンパイラは別次元のものなので齟齬が起きることもある。

投稿2020/09/26 08:49

Watching

総合スコア56

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

単にインテリセンスの文法解析で時間がかかってるだけなんでは

投稿2020/09/23 04:07

y_waiwai

総合スコア87774

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Watching

2020/09/23 04:19

エラーを大量に出すようになってから、何度もエラーを消そうと、怪しい部分を書き換えて戻すという作業を15分近くしていたので、時間がかかっただけとは考えにくい。それに、10数秒経ってからエラーが出るということは、文法解析が終わったことでエラーが出力されたと思われる。 新しくテストクラスを作成することでインテリセンスの何かが初期化されたのではないかと思っています。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問