boost
-
boost::system::error_code를 std::error_code로 바꿔주기프로그래밍/c++ 2015. 7. 26. 14:07
12345678910111213#include #include // ... boost::system::error_code error; std::error_code stderror{ error.value(), (std::error_category&)error.category() }; // ... auto errormsg = error.category().message(error.value();auto stderrormsg = stderror.category().message(stderrormsg.value());cs 결과
-
boost singleton_pool의 사용프로그래밍 2014. 4. 20. 01:02
boost의 메모리 풀 관련 라이브러리 중 하나인 boost::singleton_pool은 전역적인 메모리 풀로 스레드에 대해 안전(thread-safe)하다. 사용 시, 템플릿 인자로 태그(tag)의 역할을 할 더미 클래스와 pool이 할당하는 사이즈를 받는다.똑같은 용량을 할당하는 메모리 풀이라도, 태그가 다르면 공유하지 않는 메모리 풀을 사용한다. (태그의 이름을 변수 이름이라고 생각해도 괜찮다.) struct pool_tag{}; class test_class { public: test_class(){} test_class(int a, int b, int c){} test_class(int a, int b, int c, int d){} }; typedef boost::singleton_pool< ..
-
boost object_pool의 사용프로그래밍 2014. 4. 19. 23:41
boost 라이브러리의 메모리 풀(memory pool) 관련 클래스 중 하나인 object_pool은 메모리 풀의 역할도 하면서 동시에 클래스의 생성자/소멸자 호출이 가능하다. #include ... boost::object_pool pool; object_pool::malloc(...) 클래스 크기만큼의 메모리만 할당을 해준다.(생성자 호출 X) test_class* p = op.malloc(); object_pool::free(...) 클래스 크기만큼의 메모리를 해제한다.(소멸자 호출 X) op.free(p); object_pool::construct(...) 클래스 크기만큼의 메모리를 할당하며, 생성자를 호출한다. (생성자 호출 O) 주의할 점은 생성자의 인자로는 최대 3개까지만 받을 수 있으며,..