Я хочу создать класс с Pimpl (частная реализация). Обычно вы делаете:
class A
{
private:
class B;
B* _pimpl = nullptr;
}
и тогда я бы определил его в файле .cpp
. Но я должен использовать динамическое распределение. Можно ли вместо этого использовать ссылку на rvalue?
class A
{
public:
A(); //Constructor to init rvalue reference
private:
class B;
B&& _pimpl;
}
А затем в .cpp
файле:
class A::B
{
public:
int C = 3u;
}
//and then the constructor of A:
A::A() : _pimpl(B()) { } //now we should have a fresh b pimpl?
В настоящее время я нахожусь в отпуске, и у меня есть только моя книга по С ++ для справки. Я прочитал о ссылках на rvalue и подумал, что это может сработать. Что вы, ребята, думаете?