我想使用移位运算符来进行位旋转,而不是它们的实际位移。这是我的预期行为:
std::bitset<8> b8("1010"); // b8 = 00001010
b8 <<= 5; // b8 = 01000001
所以我尝试重载<<=
运算符,引用bitset
定义,如下所示:
#include <iostream>
#include <bitset>
using namespace std;
template <size_t size>
bitset<size>& bitset<size>::operator<< (size_t pos) noexcept { // an error at here
}
我在关键字处遇到错误operator
:
'operator<<' 的离线定义与 'bitset<_Size>' 中的任何声明都不匹配
我该如何解决?我的环境。是:
- Xcode:版本 9.1 (9B55)
- LLVM(
llvm-g++ -v
) :Apple LLVM 版本 9.0.0 (clang-900.0.38)