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 오류 도메인이에요.