내가 발견했을 때 나는 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 입니다.
답변
답변
내 즐겨 찾기는 특별한 순서는 없습니다.
- 정규식
- 파일 시스템
- 실
- 어휘 캐스트
- 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을 언급하지 않습니다. 부끄러워!