在 C++ 11 之前,我经常需要实现两个非常相似的方法变体来处理类/结构的 const 和非常量使用场景:
struct my_struct_t{
....
float_t& at( uint32_t row, uint32_t col)
{
return *(((float_t*)((uint8_t*)numbers+row*row_stride)) + col);
}
float_t const& at( uint32_t row, uint32_t col) const
{
return *(((float_t*)((uint8_t*)numbers+row*row_stride)) + col);
}
};
这在 C++ 11 中改变了吗?
最佳答案
否。
这在标准库中很明显(它仍然使用显式的 const
方法)。
关于C++ 11x 检查 : how to implement const-variants?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13005717/