Я хотел бы сделать что-то вроде следующего:
class Foo
{
Foo(int &&a, int b, std::string s="");
// does not compile because a is not an rvalue:
// Foo(int &&a, std::string s) : Foo(a, 0, s) {}
Foo(int &&a, std::string s) : Foo(std::move(a), 0, s) {} // move a
}
- Это допустимый способ перегрузки конструктора в целом?
- И конкретно тот, который принимает в качестве параметра ссылку на значение r *
Отредактировано на основе комментариев
Чтобы уточнить, я новичок впереместить семантику (и программиста-любителя), и я просто не уверен, что это хороший способ справиться с этой ситуацией.
Я добавил первый вопрос, основываясь на комментарии (теперь удаленном), который предположил, что это не такправильный способ перегрузки конструкторов.