VC++

GCCとVCにバグ報告: std::advance()の負数チェック

Bug 53515 - InputIterator version std::advance needs negative check InputIterator/ForwardIteratorバージョンのstd::advanceに負数チェックがない 些細なものですがバグ報告しました。

VCとGCCにバグ報告 - std::arrayのtuple_elementとget()の境界チェック

Bug 53080 - tuple interface to std::array doesn't check boundsstd::arrayに対するstd::tuple_elementの特殊化で、境界チェックが行われていない std::arrayに対するstd::tuple_elementの特殊化とstd::get()関数のオーバーロードでは、インデックス値Iがa…

VC++11ではヘッダが一旦削除される

【Config】 Meaning of BOOST_NO_CXX11_HDR_INITIALIZER_LIST 言語サポートがないのにVC++10でなぜか入ってたですが、単なるミスだったそうで、VC++11では一旦削除するそうです。 Boost開発者MLで、ヘッダをサポートしてるコンパイラのworkaroundを実装する…

Visual C++にほしいC++11機能アンケート

C++11 Conformance Survey - Visual C++ Team Blog C++11 Language Improvements Survey Visual C++ Team Blogで、Visual C++にほしいC++11機能のユーザー調査を行なっています。 各機能ごとの優先順位と、ついでにVC++に対する意見も募集してるようなので、…

VC11で範囲for文が入るらしい

先日のGoing Native 2012で、Visual C++開発チームのStephan T. Lavavejさん(通称STL)からアナウンスがあったようです。 Stephan just announced: range-based for-loop coming to Visual C++ 11 Beta!! #GoingNative2012-02-03 06:56:08 via TweetDeck

Boost.GeometryのVS11 Debugger Visualizers

Visual Studio 11 visualizers for Boost.Geometry 【ggl】 Visual Studio 11 visualizers for Boost.Geometry フィードバック募集中だそうです。 VS11からは、Debugger VisualizersはXMLで書くみたいですね。

謎の警告 - デストラクタ呼び出しで未使用変数警告

Visual C++ 2010で警告レベルを4にすると、以下のプログラムで未使用変数の警告が出てしまう。 template <class T> struct Destruct { void f(T* p) // warning C4100: 'p' : 引数は関数の本体部で 1 度も参照されません。 { p->~T(); } }; struct X {}; int main() {</class>…

次期Visual C++は、静的解析、単体テスト、カバレッジをサポート予定

ALM for C++ in Visual Studio vNext at TechEd NA 2011 - Visual C++ Team Blog あとはリファクタリングが入るとうれしいですね。

Visual C++ 2010 SP1の修正内容

VS2010 SP1 Beta: What’s in It for C++ Developers 新機能のみが記載されていたエントリですが、コメント欄にて詳細な修正内容が追記されています。 SP1を適用される方は確認してみてください。

BoostのVisual Studio Debugger Visualizers

Visual Studioには2005からDebugger Visualizersという機能がこっそり入っていて そのおかげでSTLコンテナの状態がデバッグウィンドウで見やすくなっています。 デフォルトでDebugger Visualizersが有効になっているので、 vectorをデバッグしてみると以下の…

VC10はstatic_assertをコンパイル前に評価してくれるらしい

Visual C++ Team Blog - Intellisense and Browsing with C++0x コーディング時のエラー検出で、static_assertも評価するみたいです。 コンパイルすらしないテンプレートメタプログラミングができそうですね。 (IDE落ちそうだ…)

VC++10 Beta 1の今さら気づいたC++0x機能

発表されてなかったので試してもいなかったのですが、 VC++10では戻り値の型を後置する関数宣言構文が使えるようです。 (autoと->のあたりに赤線引かれるけど) あと、decltype( ( v ) )も使えました。 #include <vector> #include <type_traits> using namespace std; // 関数の戻</type_traits></vector>…

VC++のtype_traitsはvoidの適用結果がおかしい

comp.std.c++ - type traits if void type 以下、VC++10 Betaでの検証結果(VC9 SP1も同様) #include <iostream> #include <type_traits> using namespace std; int main() { cout << is_pod<void>::value << endl; // 1 cout << has_trivial_constructor<void>::value << endl; // 1 cout << has</void></void></type_traits></iostream>…

VC++10では<iterator>をインクルードする必要がある

Visual C++ Team Blog - STL Breaking Changes in Visual Studio 2010 Beta 1 VC++10では、STLに破壊的な変更が行われるそうです。 (C++0xには関係ない変更。Microsoftが破壊的な変更なんてめずらしい…。) 以下のコードは、VC++9 SP1まではコンパイルが通り…

VC++10 Beta1さわってみた

まだ30分くらいしかさわってないですけど、わかったことをつらつらと書いておきます。 ・インテリセンスはえーーーーーー ・TR1ライブラリはstd::tr1名前空間からstd名前空間に移動(std::tr1でも使える) ・<random>のdistributionクラスはC++0xの最新のク…

VC++10のアロケータ

C++0x Support in Visual Studio 2010(pdf) VC++10では、<allocators>ヘッダでDinkumware独自のアロケータがいくつか提供されるそうです。 (詳細不明) 標準ヘッダと混同する恐れがあるので<stdext/allocators>にしてほしいとこです。

VC9(2008) SP1のHotfix 再アップ

Visual C++ Team Blog - Repackaged VC9 SP1 Hotfix For The vector<function<FT>> Crash 再アップされたみたいです。 ダウンロードはこちらから。 修正内容は前回と同じはずです。VC9(2008) SP1のHotfix Express Editionにインストールできるかどうかは…

言語拡張に関する問題点を報告しました

依存名に対してtypenameを付けなくてもコンパイルが通ってしまう 限定子としてのtemplateを書かなくてもコンパイルが通ってしまう 言語拡張を無効にしてWindowsアプリケーションを組むことができない

一時オブジェクトを参照できてしまう言語拡張をOFFにする

VC++ではデフォルト設定では一時オブジェクトを参照できてしまいます。 class A {}; void foo(A&) {} int main() { foo(A()); // エラーになってほしいけどコンパイルが通ってしまう } 複数環境(GCCとか)で動かしたいコードを書いてるときには この言語拡張…

VC9(2008) SP1のHotfix

Visual C++ Team Blog - VC9 SP1 Hotfix For The vector<function<FT>> Crash vector>で落ちるバグが修正されたHotfixが公開されています。ダウンロードはこちらから。 このHotfixは、以下の5つのバグに対応します。 1.function::swap()は、VC9 TR1(Feat…

C++0x language feature checklist

CodeGuru - C++0x language feature checklist VC++10のC++0x対応(日本語のWikipediaで置き換えました) YES - 右辺値参照とMove semantics No - 一般化された定数式 No - Plain Old Data型の定義の修正 YES - 外部テンプレート (注: Visual C++ 4.0からサポ…

C++0xのExtern Templateはすでに実装されてる

Extern Templateは、Visual C++ 2.0からの独自拡張ですでに実装されているそうです。

VC++10では可変引数テンプレートは実装されません

質問してきた Monday, November 10, 2008 5:14 AM by Stephan T. Lavavej [MSFT] [Akira Takahashi]> Will variadic templates be implemented in VC10? No. (As a library dev, I *really* wanted them.) > VC10で可変引数テンプレートは実装されるのでしょ…

VC++10 CTPでautoを遊んでみた

int n = 0; auto a = n; // int a = n; int n = 0; auto* a = &n; // int* a = &n; int n = 0; const auto& a = n; // const int& a = n; struct hoge { }; hoge foo() { return hoge(); } auto&& h = foo(); // hoge&& h = foo(); auto* p = new auto(1); /…

続・VC++10はいろいろ実装されない

・委譲コンストラクタ ・メンバ初期化子 Tuesday, November 04, 2008 7:31 AM by Stephan T. Lavavej [MSFT]> Will constructor delegation be implemented in VC10?No.> And also the new member initialization syntax?No. Visual C++ Team Blog - Lambdas…

VC++10 CTPのラムダ式でメンバ変数を参照キャプチャ

#include <iostream> #include <functional> using namespace std; using namespace std::tr1; class hoge { function<void()> func_; int id_; public: hoge() : id_(10) { func_ = [this]{ ++id_; }; } void call() const { func_(); cout << id_ << endl; } }; int main() { hoge h; h.c</void()></functional></iostream>…

VC++10はいろいろ実装されない

Visual C++ Team Blog - Lambdas, auto, and static_assert: C++0x Features in VC10, Part 1のコメント欄から 【実装されない】 ・Range-base for文 コンセプトが実装されないからそりゃそーだ。(コンセプトは実装するのに1年はかかるんだとか) VC++10では…

VC++10 CTPでラムダ式を遊んでみた

【参照環境を持つラムダ式はスコープが外れたらその実行は未定義】まずはコピーラムダを返してみる #include <iostream> #include <functional> using namespace std; std::tr1::function<int(int)> foo() { int n = 3; return [n](int i) -> int { return n + i; }; } int main() { cout << </int(int)></functional></iostream>…

VC++10ではコンセプトはたぶん実装されません

Visual C++ Team Blog - Lambdas, auto, and static_assert: C++0x Features in VC10, Part 1のコメント欄 Concepts will be super duper awesome. However, they will not be implemented in VC10. Concepts are C++0x's biggest feature, and they were ju…

ズーム

Visual Studio 2010 のエディタは、「Ctrl + マウスホイール」でズームできます。