問題タブ [visual-c++-2012]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
853 参照

c++ - std::async Visual Studio 2012 Update 2 の減衰 (損失) 右辺値参照。回避策はありますか?

以下のコードを検討してください。

上記は、次のコンパイラ エラーで失敗します。

エラー 1 エラー C2664: 'void Test2::::operator ()(std::future<_Ty> &&,Work) const': パラメーター 1 を 'std::future<_Ty>' から 'std::future に変換できません<_Ty> &&' c:\program files (x86)\microsoft visual studio 11.0\vc\include\xrefwrap 98 1 ConsoleApplication6

GCC 4.7.2 は問題なくコンパイルされます http://ideone.com/KhMiV6

Microsoft Connect で報告する前に:

1) これは VC11 側のバグですか、それとも実際には標準的な動作ですか?

2) これに対する回避策を知っている人はいますか?

編集: Microsoft Connect here で報告しました。より迅速な解決のために、賛成票を投じることをお勧めします。

0 投票する
1 に答える
1506 参照

c++ - C++ での演算子 new のオーバーライドのバイパス

のオーバーライドをバイパスする方法はありますoperator newか?

このようなもの:

背景: 私は最近、Visual Studio 2012 でコンパイルするように切り替えたレガシー コードをいくつか持っています。十分なメモリ ブロックにmalloc失敗すると、ランダムにクラッシュします。_heap_alloc(はい、コードには小さなメモリ リークやその他の悪い動作が散りばめられています。しかし、残念ながら完全なクリーンアップは現実的ではありません。500 000 SLOC 程度です。)

私の現在の理論では、原因は、ほとんどすべてのソース ファイルに、次のオーバーライドを持つヘッダーが含まれていることですoperator new

のオーバーライドはありませんdelete

本質的に、これは、アプリケーションが の代わりに を使用mallocした割り当てと解放を使用することを意味します。deletefree

delete最初に Q&D 修正を試みます:その usesのオーバーライドを導入しますfree。しかし、これは部分的にしか役に立ちません。順序を含めたり、リンクされたライブラリが混乱したりすることがあるためです。

2 回目の Q&D 修正の試行: オーバーライドを削除します。残念ながらメモリを 0 に初期化する必要があります。常にそれを行っていた古いコンパイラからの遺産、およびC++が常にそれを行うと想定したコーダー。

new() がそれを処理することは承知していますが、残念ながら、手動ですべてのソース コードを調べて更新することなく、それを利用する良い方法を知りません。また、コンストラクターでそれを行わずにすべてのメンバーを無効にすることを想定している、実装が不十分なクラスには役立ちません。

したがって、Q&D 修正の 3 番目のアイデアは、この質問が尋ねるように、オーバーライドで通常の new を使用することです。

0 投票する
1 に答える
29 参照

c++ - Visual Studio はアプリケーションを実行する前にビルドしません

デバッグをクリックすると、いくつかの変更を加えてもexeをビルドしないビジュアルスタジオアプリケーションがあり、メニューからビルドをクリックして手動で実行する必要があります。この動作を変更するにはどうすればよいですか?

0 投票する
1 に答える
964 参照

visual-studio - PC-lint を Visual Studio で動作させる

Gimpel の PC-Lint 9.00j を使用して、何百もの偽のエラーを吐き出さずに Visual Studio 2012 のインクルード ファイルを解析した人はいますか?

私が使用している設定のサブセット (完全な設定ではまったく同じ結果が得られます):

次のワンライナーをリントしようとすると、325 エラーが発生します。

お知らせ下さい。

0 投票する
1 に答える
3444 参照

c++ - DirectX 9 で XMMATRIX を D3DMATRIX に変換する方法は?

www.directxtutorial.com から DirectX (DirectX 9) を学び、Windows 8 で Visual Studio 2012 を使用しています。 D3DMATRIX。

問題コード (書かれた問題 - /問題! /):

0 投票する
1 に答える
1789 参照

visual-studio-2012 - スレッド ビルディング ブロック ライブラリ vc11_ui?

最近、TBB41_20130613 (現時点での Windows の最新リリース) をダウンロードしましたがvc11vc11_uibin/lib フォルダー用のフォルダーがあることに気付きました。私が知る限り、どちらも同じライブラリ (ファイル名は同じ) を持っていますが、明らかに異なるバイナリ (異なるファイル サイズ) です。ドキュメントまたはGoogle経由で2つの違いについての参照は見つかりませんでした。

2つの違いは何ですか?どちらを使用する必要があるか、または両方を同時に参照する必要があるのはいつですか?

0 投票する
2 に答える
108 参照

c++11 - メンバー変数に対してムーブ割り当てが呼び出されない

次のコードでは:

Visual C++ 2012 でコンパイルされた行x = f()で、移動代入がベクトルに対して呼び出されると想定しました。代わりに、コピー割り当てが呼び出されていることがわかります。クラスにはコピー/移動代入/コンストラクターが定義されていないため、コンパイラーがデフォルトの移動代入を生成することを期待していました。MyClass移動割り当ての代わりにプレーンベクターを使用すると、正常に機能します。このコードに何か問題がありますか? 何か不足していますか?