C 표준 라이브러리와 함께 Boehm의 Garbage Collector 사용
이런 맥락에서 개발자는 Boehm의 Garbage Collector를 다중 환경에서 활용하고 싶다는 소망을 표현합니다. 스레드 C 응용 프로그램. 이들은 std::Vector 및 std::map과 같은 C 표준 라이브러리의 알고리즘 및 컬렉션을 활용하려고 하지만 잠재적인 충돌에 대해 우려하고 있습니다.
연산자 new 재정의
질문자는 Boehm의 구현으로 new 연산자를 재정의하는 것을 고려합니다. 그러나 gc_allocator로 설정된 명시적 할당자 인수와 함께 컬렉션 템플릿을 사용하는 것도 고려합니다.
할당자 인수의 역할
std::Vector의 두 번째 템플릿 인수 벡터의 내부 데이터를 관리하는 데 사용되는 할당자를 정의합니다. 기본적으로 시스템의 malloc을 사용하여 메모리를 할당하지만 gc_allocator와 같은 대체 할당자를 사용하도록 사용자 정의할 수 있습니다.
std::string 처리
개발자는 우려를 표명합니다. GC 할당 std::string 인스턴스에 대해 그들은 gc_allocator와 함께 basic_string을 사용하여 사용자 정의 문자열을 생성할 것을 제안합니다. 또는 내부 문자 배열의 GC 할당에 대해 문의합니다.
GC 호환성에 대한 조언
질문자는 다음으로 컴파일된 애플리케이션과 함께 Boehm GC를 사용할지 여부에 대한 권장 사항을 찾습니다. g .
가능한 솔루션
개발자는 gc_allocator 및 new(GC)를 사용하여 모든 힙 할당이 GC로 관리되도록 하는 자체 솔루션 코드를 공유합니다.
부록
개발자는 C에서 가비지 수집 지원을 제공하는 것을 목표로 제안된 n2670 사양에 대해 논의합니다. 그러나 이 기능은 현재 GCC나 Clang과 같은 주요 컴파일러에서는 구현되지 않습니다.
위 내용은 기사의 질문과 답변 성격을 고려한 몇 가지 제목 옵션은 다음과 같습니다. **의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!