std::generic_category

std::generic_category (일반 오류 카테고리)

POSIX errno 오류 번호 도메인에 해당하는 표준 오류 카테고리를 돌려주는 함수예요. 포팅 가능한 오류 코드를 나타내요. C++11부터 있어요.

출처: cppreference

본문

<system_error> 헤더에 정의돼 있고, 일반 오류 카테고리를 돌려줘요.

const std::error_category& generic_category() noexcept;

generic_category()는 POSIX errno 값들(std::errc에 대응)을 나타내는 표준 오류 카테고리를 돌려줘요. std::errc 열거 값을 std::make_error_code로 변환하면 이 카테고리가 사용돼요.

  • generic_category().name()"generic"을 돌려줘요.
  • message(e)std::errc의 각 값에 해당하는 POSIX 오류 설명(예: "No such file or directory")을 돌려줘요.

이 카테고리는 플랫폼과 무관한 포팅 가능 오류 도메인이라, std::error_code·std::error_condition이 플랫폼 간에 같은 의미를 공유하는 기준이 돼요. std::errc 값들과 1:1 대응해요 (대부분 errno 값과 같은 숫자).

#include <system_error>
#include <iostream>

std::error_code ec = std::make_error_code(std::errc::bad_file_descriptor);
std::cout << ec.category().name() << ' '
          << ec.message() << '\n'; // generic Bad file descriptor

std::system_category와 달리 플랫폼 특정 값(운영체제 전용 오류 번호)이 아니라 표준화된 POSIX 오류 도메인이에요.

더 알아보기 (Learn more)

cppreference