-
boost::any에서의 unsafe_any_cast프로그래밍/c++ 2016. 6. 6. 22:54반응형
any_cast는 유도리가 없다. int로 넣은 것을 size_t로 읽으려고 하면 예외를 던진다. 실제 코딩을 함에 있어서도
int => unsigned int
size_t => int
같은 변환은 빈번한데, 안전한 캐스팅만을 보장해주는 any_cast가 야박하고 느꼈다면 unsafe_any_cast의 사용을 고려할 만 하다.
함수 시그니쳐
12345template < typename ValueType >const ValueType* unsafe_any_cast(const boost::any* operand)template < typename ValueType >ValueType* unsafe_any_cast(boost::any* operand)cs 사용
12345boost::any val = 1;boost::any_cast<size_t>(val); // error!boost::unsafe_any_cast<size_t>(&val); // okcs 반응형'프로그래밍 > c++' 카테고리의 다른 글
c++에서 람다를 함수 인자로 쓸 때 적절한 방법 (0) 2016.10.15 boost::variant(std::variant c++17) 사용하기 (4) 2016.08.05 alignas, alignof 키워드 (0) 2016.05.07 c++11과 14의 brace-or-equal-initializer (0) 2016.05.03 함수에 주석 달기에 대한 생각 (0) 2016.04.24