프로그래밍/c++
boost::any에서의 unsafe_any_cast
제페
2016. 6. 6. 22:54
반응형
any_cast는 유도리가 없다. int로 넣은 것을 size_t로 읽으려고 하면 예외를 던진다. 실제 코딩을 함에 있어서도
int => unsigned int
size_t => int
같은 변환은 빈번한데, 안전한 캐스팅만을 보장해주는 any_cast가 야박하고 느꼈다면 unsafe_any_cast의 사용을 고려할 만 하다.
함수 시그니쳐
1 2 3 4 5 | template < typename ValueType > const ValueType* unsafe_any_cast(const boost::any* operand) template < typename ValueType > ValueType* unsafe_any_cast(boost::any* operand) | cs |
사용
1 2 3 4 5 | boost::any val = 1; boost::any_cast<size_t>(val); // error! boost::unsafe_any_cast<size_t>(&val); // ok | cs |
반응형