Boost의 가장 많이 사용되는 부분 [닫힌]

내가 발견했을 때 나는 boost::lexical_cast“왜이 사실을 더 빨리 알지 못 했는가!”라고 생각했습니다. -나는 다음과 같은 코드를 작성하는 것이 싫었다.

stringstream ss;
ss << anIntVal;
mystring = ss.str();

이제 나는 쓰기

mystring = boost::lexical_cast<string>(anIntVal);

어제 stackoverflow에서 부스트 분할 (코드 작성을 저장하는 또 다른 보석)을 발견했습니다.

string stringtobesplit = "AA/BB-CC")
vector<string> tokens;

boost::split(tokens, stringtobesplit, boost::is_any_of("/-"));
// tokens now holds 3 items: AA BB CC

정기적으로 사용할 수있는 다른 기능을 찾기 위해 부스트 문서를 살펴 보려고하는데, 놓치기 쉬운 일이있을 것 같습니다.

가장 많이 사용하는 부스트 기능은 무엇입니까?



답변

아마도 저에게 가장 많이 사용되는 부분은 boost :: shared_ptr 입니다.


답변

BOOST_FOREACH 는 삶을 다시 가치있게 만듭니다.

(왜 아무도 이것을 언급하지 않았습니까? 질문은 8 개월 전에 질문되었습니다!)


답변

내 즐겨 찾기는 특별한 순서는 없습니다.

  • 정규식
  • 파일 시스템
  • 어휘 캐스트
  • program_options (그냥 훌륭합니다!)
  • 테스트 (내 모든 단위 테스트 요구 사항).
  • 문자열 알고리즘
  • 문자열 토크 나이저
  • 형식 (형식이 안전한 printf 스타일 문자열 형식)
  • 스마트 ptrs

Boost는 처음으로 크로스 플랫폼 앱을 만들 때 큰 도움이되었습니다. 없이는 정말 힘들었을 것입니다.


답변

.NET 용 소멸자를 제공하는 방법이 마음에 듭니다 shared_ptr.
즉, 예를 들어 함께 사용 FILE*하여 파일을 닫을 수 있습니다.
예 :

void safeclose(FILE*fp) {
    if(fp) {
        fclose(fp);
    }
}
void some_fn() {
    boost::shared_ptr<FILE> fp( fopen(myfilename, "a+t"), safeclose );
    //body of the function, and when ever it exits the file gets closed
    fprintf( fp.get(), "a message\n" );
}


답변

아무도 멀티 인덱스 컨테이너에 대해 언급하지 않았으므로 늦게 차임 할 것입니다. 자주 필요한 것은 아니지만 부스트없이 동등한 데이터 구조를 생성하는 것은 물론 효율성이 떨어지는 것은 진정한 고통입니다. 저는 최근에 2 개의 키를 조회하는 컨테이너를 만들기 위해 많이 사용하고 있습니다.


답변

아무도 언급하지 않은 것에 놀랐습니다 boost::optional. shared_ptr및을 제외한 Boost의 어떤 부분보다 더 자주 사용 하고 scoped_ptr있습니다.


답변

아무도 boost :: tuple을 언급하지 않습니다. 부끄러워!