template<class Container>
void foo( Container&amp;&amp; c ) {
... = forward??( c[i] );
}

コンテナが右辺値で破壊していいときだけ、要素をムーブする方法が知りたい。
!is_lvalue_reference<> で適当にメタプログラミングすればいいのは分かるのだけど、
何か推奨される方法ってある?