never_stop_token — std::never_stop_token

never_stop_token — std::never_stop_token

std::never_stop_token 클래스는 중지가 절대 가능하지도 요청되지도 않는다는 정적 정보를 제공하는 unstoppable_token 개념 모델이에요. C++26에서 도입됐어요. <stop_token> 헤더에 있어요.

만약 다른 연관 중지 토큰이 제공되지 않으면, std::get_stop_token이 반환하는 기본 중지 토큰 타입이에요.

출처: cppreference

본문

// <stop_token> 헤더, C++26
class never_stop_token;

특징

  • stop_requested() — 항상 false 반환 (중지 요청 불가).
  • stop_possible() — 항상 false 반환 (중지 불가능).
  • 중지 기능이 없는(협조적 취소를 원하지 않는) 토큰의 기본·대용 타입이에요.
#include <stop_token>

std::never_stop_token t;
bool a = t.stop_requested();   // false
bool b = t.stop_possible();    // false

활용

std::stoppable_callback(C++26), std::jthread의 중지 메커니즘 등에서 "중지를 고려하지 않는" 기본 토큰으로 쓰여요. 일반 스레드처럼 중지 개념이 필요 없는 코드에 기본값을 제공해요.

// 중지 가능한 기반 시나리오에서 기본 토큰으로 사용
void task(std::stop_token st) {
    while (!st.stop_requested()) {
        // ...
    }
}
// 중지 없이 그냥 실행하고 싶으면 never_stop_token을 기본으로

std::never_stop_token은 중지를 원하지 않는 실행의 기본 토큰이에요. stoppable_token 카테고리의 특수 케이스로, 중지가 "절대 없음"을 컴파일 타임에 알려줘서 최적화에 도움을 줘요. C++26 신규 기능이에요.

더 알아보기 (Learn more)

cppreference