에 오퍼레이터 >> 다음 코드 고려해차이 : 비트 세트
#include <bitset>
#include <sstream>
#include <iostream>
int main(int argc, char* argv[])
{
std::stringstream stream;
std::bitset<1> bitset(1);
std::cout<<"before = "<<bitset[0]<<std::endl;
stream<<"4";
stream>>bitset;
std::cout<<"after = "<<bitset[0]<<std::endl;
return 0;
}
libstdc++
으로 g++
따라 컴파일 된 결과이다 :
> g++ bitset_empty.cpp -o bitset_empty
> ./bitset_empty
before = 1
after = 1
가 libc++
으로 clang++
에서 컴파일 결과는 다음과 같습니다.
> clang++ -stdlib=libc++ bitset_empty.cpp -o bitset_empty
> ./bitset_empty
before = 1
after = 0
어느 것이 옳은가요? 둘 다 (정의되지 않은 동작 때문에?)? GCC? 그 소리?