//===----------------------------------------------------------------------===//
//
// The LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
// test bitset<N>& operator<<=(size_t pos);
#include<bitset>#include<cstdlib>#include<cassert>template<std::size_tN>std::bitset<N>make_bitset(){std::bitset<N>v;for(std::size_ti=0;i<N;++i)v[i]=static_cast<bool>(std::rand()&1);returnv;}template<std::size_tN>voidtest_right_shift(){for(std::size_ts=0;s<=N+1;++s){std::bitset<N>v1=make_bitset<N>();std::bitset<N>v2=v1;v1>>=s;for(std::size_ti=0;i<N;++i)if(i+s<N)assert(v1[i]==v2[i+s]);elseassert(v1[i]==0);}}intmain(){test_right_shift<0>();test_right_shift<1>();test_right_shift<31>();test_right_shift<32>();test_right_shift<33>();test_right_shift<63>();test_right_shift<64>();test_right_shift<65>();test_right_shift<1000>();}