static_cast では問題なく動作しますが、const_cast では右辺値 (一時変数など) を const 修飾参照にキャストできないことが不思議です。なぜこのように振る舞うかについて誰かが説明していますか?
const_cast< const std::string & >( std::string( "hello" ) ); // doesn't compile
static_cast< const std::string & >( std::string( "hello" ) ); // compiles
「const_cast は悪」という議論には入らないでください。私がここでやろうとしていることは、const_cast と右辺値を扱う C++ 標準の部分を正しく理解することです。