namespace std {
template <class IntType>
constexpr byte& operator<<=(byte& b, IntType shift) noexcept;
}
概要
byte
型のオブジェクトに対して、左ビットシフトの複合代入をする。
要件
- 型
IntType
は、std::is_integral_v<IntType> == true
であること。そうでない場合、この関数はオーバーロード解決の候補から除外される
効果
以下の式と等価の効果をもつ:
return b = b << shift;
例外
投げない
例
#include <cassert>
#include <cstddef>
int main()
{
std::byte b{0b0000'0001};
b <<= 3;
assert(static_cast<unsigned char>(b) == 0b0000'1000);
}
xxxxxxxxxx
#include <cassert>
#include <cstddef>
int main()
{
std::byte b{0b0000'0001};
b <<= 3;
assert(static_cast<unsigned char>(b) == 0b0000'1000);
}
出力
バージョン
言語
- C++17
処理系
- Clang: 5.0 ✅
- GCC: 7.1 ✅
- Visual C++: ??