13

Almost always auto」の記事で、Herb Sutter は auto キーワードを使用して変数を宣言するいくつかの理由を挙げています。

彼によると、実際の変数の型は IDE によって自動的に推測され、変数名にカーソルを合わせると表示されます。

どの IDE とテキスト エディター (またはプラグイン) が現在 "auto" 変数型推論をサポートしているかを知りたいです。

編集:

回答からの IDE のリスト:

  • ビジュアル スタジオ 201x
  • エクリプス
  • Qt クリエーター 2.7.0
  • KDevelop 4.5.1

テキストエディタ

Vim、Emacs、Sublime Text などについて - 型推定をサポートするプラグインはありますか?

4

4 に答える 4

8

autoVisual Studio 2010、Visual Studio 2012、および Visual Studio 2013 は、キーワードで宣言された変数の型推定をサポートしています。これは、IntelliSense のツールヒントとオートコンプリートの提案の両方に適用されます。

Visual Studio 2010 以降、C++ IntelliSense サポートは完全に作り直されました (「Intellisense の再構築」を参照)。IntelliSense は、Edison Design Group (EDG) C++ コンパイラ フロントエンドによって駆動されるようになりました。EDG が実行できることはすべて、IntelliSense に反映されます。

IntelliSense のツールヒントには、auto変数の基になる型が表示されることに注意してください。ツリーを再び処理して、部分を適切な typedef に置き換えることはありません。Visual Studio 2012 では、次のコード

std::string str;

std::string::iterator i1 = str.begin();
auto i2 = str.begin();

イテレータを次のように表示します

std::basic_string<char,std::char_traits<char>,std::allocator<char> >::iterator i1

std::_String_iterator<std::_String_val<std::_String_base_types<char,std::allocator<char> >::_Val_types>::_Myt> i2

IDE は、必要なときに型を推測するのに十分であるという Herb Sutter の評価に、私は喜んで同意しません。auto堅牢性、正確性、および柔軟性の点では優れていますが、大規模なコード ベースで作業する開発者のニーズを確実に満たすことはできません。

于 2013-10-28T00:05:48.700 に答える
1

KDevelop 4.5.1は、型推論もサポートしています。それはおそらく小さな間違いをしますが。

例:

auto i = 3;    // Deduces int
auto d = 3.0;  // Deduces double
auto f = 3.0f; // Deduces double - wrong
于 2013-10-28T11:01:12.393 に答える
0

このテスト ソース コードから判断すると、 Qt Creator 2.7.0 でも同様のことができます。

class A
{
    void f();
};

int main()
{
    auto a = A();
    return 0;
}
于 2013-10-28T00:09:57.180 に答える