我尝试将 int8_t 的引用转换为 uint8_t 的引用。
我有以下代码:
inline mtype& operator&(mtype& mt, uint8_t& va) {
// do something
// ...
return mt;
}
inline mtype& operator&(mtype& mt, int8_t& va) {
// do the same but signed
// ...
return mt;
}
由于两个重载都做同样的事情,我想干燥(或更好的drm),所以我想用 . 调用第一个运算符casted va
。但我该怎么做?这行不通。
inline mtype& operator&(mtype& mt, int8_t& va) {
return mt& static_cast<uint8_t>(va); // error: no match for 'operator&' in 'mt & (uint8_t)va'
}
我该怎么做?