【发布时间】:2012-10-11 22:12:45
【问题描述】:
在 C++ 11 之前,我经常需要实现一个方法的两个非常相似的变体来处理类/结构的 const 和 non-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变体并摆脱另一个变体。 -
我不相信你的第一个会起作用。返回对非 const 临时值的引用。
-
@Mike 是的,回报有缺陷,我现在正在修复它们。