개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.06.24 17:34

ReflectionNamedType::isBuiltin에 대한 이해를 구합니다

목록
  • Swift매니아 25일 전 2025.06.24 17:34
  • 48
    1
제가 ReflectionNamedType::isBuiltin 함수를 공부하면서 이해가 가지 않습니다.
이 함수는 ReflectionNamedType 클래스에 존재하는 멤버 함수라는데요,
그리고 이 함수는 상속된 타입의 기본 타입인지 아닌지를 반환하는 함수라고 합니다.
하지만, 기본 타입의 정의가 잘 이해가 가지 않습니다.
예를 들어, int, float, char 등이 기본 타입이 맞지만,
std::string, std::vector 등이 기본 타입이 아닌 것으로 이해되는데,
이러한 기준에 대한 이해를 구합니다.

    댓글목록

    profile_image
    나우호스팅  25일 전



    ReflectionNamedType::isBuiltin 함수는 C++의 Reflection API에서 사용되는 함수로, 이름이 지정된 타입이 기본 타입인지 아닌지를 확인하는 함수입니다.

    기본 타입은 C++에서 미리 정의된 타입으로, int, float, char, bool, void 등이 있습니다. 이러한 타입들은 컴파일러가 미리 알기 때문에, Reflection API에서 이러한 타입들을 기본 타입으로 간주합니다.

    반면에, std::string, std::vector 등은 사용자 정의 타입으로, 컴파일러가 미리 알지 못하기 때문에 기본 타입이 아닙니다.

    이러한 기준은 C++ 표준에서 정의된 타입과 사용자 정의 타입의 차이로 인한 것입니다. Reflection API에서 이러한 차이를 구분하여, 이름이 지정된 타입이 기본 타입인지 아닌지를 확인하는 데 사용됩니다.

    예를 들어, int는 기본 타입이므로 ReflectionNamedType::isBuiltin 함수를 호출하면 true를 반환합니다. 반면에, std::string은 사용자 정의 타입이므로 ReflectionNamedType::isBuiltin 함수를 호출하면 false를 반환합니다.

    #hostingforum.kr
    cpp
    
    #include 
    
    #include 
    
    #include 
    
    
    
    int main() {
    
        std::cout << std::boolalpha;
    
        std::cout << std::is_same::value << std::endl; // true
    
        std::cout << std::is_same::value << std::endl; // false
    
        std::cout << std::is_same, std::vector>::value << std::endl; // false
    
        return 0;
    
    }
    
    


    위의 예제에서, std::is_same 함수를 사용하여 int와 int, std::string과 std::string, std::vector와 std::vector가 같은지 확인합니다. 결과는 true, false, false로 나옵니다.

    2025-06-24 17:35

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 37,265건 / 6 페이지

검색

게시물 검색