哪个是调用基类移动ctor的正确方法?
这(在 MSVC2010 中有效,但在 CBuilder2010 中无效):
struct Foo
{
Foo(Foo&& other) { }
};
struct Bar : public Foo
{
Bar(Bar&& other) : Foo((Foo&&)other) { }
};
或(在 CBuilder2010 中有效,但在 MSVC2010 中无效):
struct Foo
{
Foo(Foo&& other) { }
};
struct Bar : public Foo
{
Bar(Bar&& other) : Foo(&other) { }
};
或者,他们都错了吗?如果是这样,正确的方法是什么(根据 C++0x 标准中的规定)?
注意:我不知道如何让它在 CBuilderXE 中工作(两个版本都不起作用)。