2011-08-21 23 views
9

Visual Studio 2010'da uygulanan ve C++ 11'de belirtildiği gibi rvalue referansları arasındaki farklar nelerdir? Visual Studio 2010'da, kaynak geçersiz kılan veya C++ 11 uyumlu derleyici tarafından derlendiğinde farklı çalışma yapan revalue referanslarını kullanırken dikkat edilmesi gereken belirli bir tuzak var mı?rvalue başvurular

cevap

5

VS2010, this table'a göre, rvalue Reference 2.0 sürümünü destekler (geçerli sürüm 2.1 IIRC'dir).

2.0 ve 2.1 arasındaki önemli fark, ikincisinin örtük dönüşümleri izin vermesidir:

std::string&& x = "hello"; // legal in 2.1, illegal in 2.0 

Ayrıca VS2010 henüz *this ait rvalueness üzerinde aşırı desteklemediği unutmayın.

void Foo::foo() && { ... } // not yet supported in VS2010 
İlgili konular