我觉得奇怪的是 const_cast 不允许将右值(例如临时变量)转换为 const 限定引用,尽管它与 static_cast 一起工作得很好。有没有人解释它为什么会这样?
const_cast< const std::string & >( std::string( "hello" ) ); // doesn't compile
static_cast< const std::string & >( std::string( "hello" ) ); // compiles
请不要陷入“const_cast 是邪恶的”论点,我在这里要做的是正确理解 C++ 标准中处理 const_cast 和 rvalues 的部分。