>백엔드 개발 >C++ >템플릿을 사용하여 C 열거형을 문자열에 쉽게 매핑하려면 어떻게 해야 합니까?

템플릿을 사용하여 C 열거형을 문자열에 쉽게 매핑하려면 어떻게 해야 합니까?

Barbara Streisand
Barbara Streisand원래의
2024-12-08 03:27:09481검색

How Can I Easily Map C   Enums to Strings Using Templates?

C 열거형을 문자열로 쉽게 매핑하는 방법

배경:

외부 라이브러리 헤더에 열거형 유형이 정의되어 있고 열거형 값을 사람이 읽을 수 있는 문자열로 변환하려고 합니다. 무차별 솔루션에는 수동으로 정의된 기능이 포함되지만 템플릿을 사용하여 우아한 솔루션을 추구합니다.

std::map:

사용하는 간단한 접근 방식은 std::map 열거형 값을 문자열 리터럴과 연결합니다.

map_init 클래스가 포함된 Syntactic Sugar:

구문을 단순화하기 위해 map_init 클래스를 생성하여 값 할당 체인을 활성화할 수 있습니다.

map_init(MyMap)(eValue1, "A")
    (eValue2, "B")
    (eValue3, "C");

이 클래스 템플릿은 다음에 대한 참조를 저장하는 map_init_helper 개체를 반환합니다. 지도를 작성하고 키-값 쌍을 추가하기 위한 연산자() 함수를 제공합니다.

사용 예:

이 접근 방식을 사용하려면 다음을 수행할 수 있습니다.

  1. std::map를 사용하여 지도를 만듭니다. MyMap;.
  2. map_init(MyMap)과 연결된 연산자() 호출을 사용하여 맵을 초기화합니다.
  3. getStringValue(enumValue)를 사용하여 열거형 값의 문자열 표현을 검색합니다.

대안 접근 방식:

열거형 이름 자체를 문자열로 사용해야 하는 경우 [이 게시물](관련 게시물 링크)을 참조하세요.

요약:

이 솔루션은 C 열거형을 문자열에 매핑하는 쉽고 효율적인 방법을 제공하여 무차별 방식에 대한 보다 우아한 대안을 제공합니다. map_init 클래스는 구문을 더욱 단순화하여 열거형 값 맵과 해당 문자열 표현 작업을 더 쉽게 만듭니다.

위 내용은 템플릿을 사용하여 C 열거형을 문자열에 쉽게 매핑하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.