글
어떤 자료형이든 다 넣을수 있는 그런 컨테이너...
사용법은 아래와 같다...
그런데 이건 어디다 써먹으면 좋을까? 잘모르겠지만 일단 정리...
#include <boost/any.hpp> int main() { boost::any all; // 아래와 같이 넣으면 int형으로 변경 // 값만 써도 알아서 인식하지만 확실하게 어떤 자료형이 들어갔는지 알기 위해 all = (int)100; // 이상태에서는 자료형은 안바뀌고 값만 갱신 all = 200; // 여기서 다른 자료형으로 데이터를 넣으면 자료형도 변경 되면서 데이터 갱신 all = (float)1.3f; // 값을 꺼내는 방법 첫번째 - 타입을 비교 하고 맞을때 값 꺼내기 if( all.type() == typeid(float) ) { float &output = boost::any_cast<float &>(all); } // 값을 꺼내는 방법 두번째 - try catch 문을 사용 해서 꺼내기 // 여기서는 실패에서 에러 나겠죵... try { int &otput = boost::any_cast<int &>(all); } catch(const boost::bad_any_cast &e) { printf("%s\n", e.what() ); } // 변수 초기화는 요렇게??? all = boost::any(); if( all.empty() ) { printf("아무것도 없네요\n"); } return 0; }
RECENT COMMENT