5장. RHEL 10에서 주요 변경 사항


다음은 RHEL 10에서 발생하는 중요한 변경 사항입니다.

5.1. C++의 변경 사항 중단

std::condition_variable::wait 는 이제 스레드 취소 지점입니다.
GCC 11 및 이전 버전에서는 std::condition_variable::wait 함수가 제외되어 스레드 취소와 호환되지 않았습니다. 결과적으로 pthread_cancel 에 대한 호출이 std::condition_variable::wait 에서 차단된 스레드를 취소하면 프로세스가 종료됩니다. GCC 12 이상에서는 스택을 풀링 해제하는 pthread_cancel 함수에 대한 호출을 통해 std::condition_variable::wait 를 취소할 수 있습니다. 대기에 의존하는 코드가 있는 경우 예외를 throw하지 않는 경우 코드를 검토하고 적절한 작업을 수행합니다.
더 이상 사용되지 않는 클래스 템플릿, 특정 클래스 템플릿은 새로운 버전의 C++에서 더 이상 사용되지 않으며 GCC 12 이상에서 경고 진단을 생성합니다.
  • 다음 클래스 템플릿은 C++11 이상에서 더 이상 사용되지 않습니다.

    • std::unary_function
    • std::binary_function
  • std::iterator 클래스 템플릿이 C++17 이상에서 더 이상 사용되지 않습니다.

경고 진단을 방지하려면 다음 작업 중 하나를 수행할 수 있습니다.

  • 코드를 다른 변경을 수행하지 않으려면 GCC의 진단 실습을 사용하여 경고 진단을 음소거하십시오. 예를 들면 다음과 같습니다.

    #pragma GCC diagnostic push
    #pragma GCC diagnostic ignored “-Wdeprecated-declarations"
    class Functor : public std::unary_function<int, int>
    { /* … */ };
    #pragma GCC diagnostic pop
  • 코드가 이후 버전의 C++와 호환되도록 하려면 코드에서 이러한 클래스 템플릿을 중첩된 typedefs로 교체합니다. 예를 들어 std::unary_function 기본 클래스를 result_typeargument_type typedefs로 교체할 수 있습니다.

    class Functor
    {
      using result_type = int;
      using argument_type = int;
      /* … */
    };
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다. 최신 업데이트를 확인하세요.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

Theme

© 2026 Red Hat
맨 위로 이동