이 포스트를 만든 목적 기록을 위해서 이 포스트의 준비물 Mozila Firefox 4 boost 1.45.0 참조 문헌 \boost_1_45_0\boost\asio\impl\write.hpp:130 ~ 152 라인 맛보기 코드 template class write_op : detail::base_from_completion_cond { public: write_op(AsyncWriteStream& stream, const ConstBufferSequence& buffers, CompletionCondition completion_condition, WriteHandler handler) : detail::base_from_completion_cond(complet..
boost 검색 결과
1부에선 기본적인 개념을 정리했습니다. 2부에서는 BOOST_FOREACH를 보다 확장해서 사용하거나, 최적화 해서 사용 하는 방법에 대해서 알아 봅니다. BOOST_FOREACH 의 확장 BOOST_FOREACH 를 사용하다보면, 내가 정의한 새로운 타입의 집합체도 BOOST_FOREACH를 이용하여 훑고 싶을 때가 있습니다. 어떻게 하면 사용 할 수 있을까요? 여기서 말하는 확장은 바로 "새로운 타입을 BOOST_FOREACH"로 돌리기 위한 확장 입니다. 확장을 하는 방법으로 다음 코드를 보세요. 여기선 예로 std::string 이라고 정하는데, 원리는 똑같습니다. #include #include #include // for BOOST_FOREACH namespace my { // 시작과 끝을 나..
BOOST_FOREACH 의 경우 boost 1.34.0 부터 정식으로 들어간 라이브러리 입니다. 본 문서는 boost 1.40.0 기준으로 작성 되었습니다. BOOST_FOREACH 에 대한 메뉴얼은 다음의 링크에서 확인 할 수 있습니다. http://www.boost.org/doc/libs/1_40_0/doc/html/foreach.html BOOST_FOREACH 란? C++ 에서 반복자로 정해진 구역을 기존의 방식보다 편하게 훑기 위해서 만들어진 라이브러리 입니다. 기존의 방식으로는 for 문, std::for_each 가 대표적인데, 사용방법이 귀찮거나, 소스관리가 어려운 단점이 있었기에, 사용 할 때 많은 신경을 써야 했습니다. 기존의 방법들의 단점을 한번 봐 봅시다. #include // f..
이번 boost 포스팅은 boost의 1.38.0 버전 부터 추가가 된 scope exit 입니다. 라이브러리 이름에서 오는 포스에서 알 수 있듯이, "유효 범위"와 관련 있는 라이브러리 입니다. http://www.boost.org/doc/libs/1_40_0/libs/scope_exit/doc/html/index.html 에서 확인 가능합니다만, 시간이 지나서 링크가 깨질수 있으니. boost.org 에 직접 들어 가봐서 보는게 좋을듯 싶네요. scope exit 란 무엇인가? "{ }" 를 벗어 날 경우, { } 안에 있는 변수들의 경우, 스택 되감기에 의하여, 지워 집니다. 이때 C++에서의 객체라면, 소멸자를 호출해주는데, 문제는 동적메모리 할당된 개체의 경우라든지, 뮤텍스라든지, 파일 핸들, ..
boost 라이브러리에 항상 고마운 마음을 갖고 있다. 왜냐하면, 무엇인가 만들 때, 그 무엇을 구성하기 위하여 "부품"이 필요하다. 이러한 "부품"들 중 대다수는 boost 라이브러리에 있어, "부품"을 만드는 수고를 덜어 준다. 또한 "부품"의 퀄러티가 세계 최고이니, 고맙고 감사하고, 존경스럽기 까지 하다. 처음 boost::smart_ptr 를 사용하다, boost::bind, boost::fuctional, boost::any, boost::tokenizer, boost::lexical_cast, boost::tuple, boost::asio, boost::timer, boost::array, boost::lambda, boost::utility, boost::random, 까지 써 보았을 때,..
이게 난이도 6 인가, : ) 한 8쯤 되는줄 알았는데, 더 정진해야겠다. 이번 항목을 클래스안에서 적용 될 것을 계산하여 스마트 포인터를 만들어 보는 항목이다. 알다 시피 클래스 안에서 스마트 포인터를 사용 할 때는 다음 4가지 경우를 반드시 생각해 봐야 한다. 첫째, 클래스의 생성자에서 어떻게 작동 하게 할 것인가? 둘째, 클래스의 소멸자에서 어떻게 작동 하게 할 것인가? 셋째, 클래스의 복사 생성자에서 어떻게 작동 하게 할 것인가? 넷째, 클래스의 복사 할당자에서 어떻게 작동 하게 할 것인가? 이번 항목은 이렇게 질문 4개에 대한 답변들로 이루어 졌다. 일전에 babo_ptr을 제작해보았던 터라 이 문제에 대해서 생각하여, 그 대처 방안으로 썼었는데, 다시 정리 하려 하니 귀찮다. 왜냐하면 결론을 ..
최근댓글