2

VC++ 2013 用に再コンパイルしようとしたいくつかのコードでこれを見ました。

std::string str;
[...]
str = {}

VC++ 2013 はそれについて不平を言っています:

error C2593: 'operator =' is ambiguous

だから私はそれが具体的に何をするのかを理解しようとしています。

では、なぜstr = {}代わりに使用するのstr = ""ですか?もしあれば違いは何ですか?

4

2 に答える 2

3

MSVC のバグだと思います。意味: 変数に空initializer_list<char>を割り当てstrます。これは、明示的な作成を使用して修正できます。これにより、str = std::string{};元の意味が保持され、MSVC で動作します。MS Connect にバグ レポートを提出することをお勧めします。

于 2013-11-09T09:42:46.250 に答える
1
str = {""}

うまく機能し、ブラケット割り当ての元の意味を保持します。

于 2013-11-10T07:48:31.877 に答える