J'ai une classe conteneur de proxy autour d'un objet mobile, et je souhaite que le proxy soit capable de donner implicitement une référence rvalue à l'objet sous-jacent, mais seulement lorsque le proxy lui-même est déplacé.
Je pense être en mesure de mettre en œuvre ce comportement conformément à la proposition n2439. "Extension de la sémantique de déplacement à *this" mais elle n'est pas encore disponible dans une version de gcc et ne le sera pas avant un certain temps.
Le code ci-dessous est ce que je cherche à obtenir, mais ce n'est pas possible actuellement. En attendant que cette fonctionnalité soit disponible, existe-t-il des solutions de contournement équivalentes ?
template< class T >
struct movable_proxy {
operator T&&() && {
return std::move(value);
}
operator const T&() const& {
return value;
}
private:
T value;
};