<QTypeInfo>
사용자 정의 유형에 대한 정보를 지정하는 매크로. 더 보기...
| Header: | #include <QTypeInfo> |
매크로
| Q_DECLARE_TYPEINFO(Type, Flags) |
매크로 문서
Q_DECLARE_TYPEINFO(Type, Flags)
이 매크로를 사용하여 사용자 정의 유형 Type 에 대한 정보를 지정할 수 있습니다. 정확한 유형 정보가 있으면 Qt의 제네릭 컨테이너가 적절한 저장 방식과 알고리즘을 선택할 수 있습니다.
Flags 다음 중 하나일 수 있습니다:
Q_PRIMITIVE_TYPEType 가 올바르게 소멸되기 위해 별도의 작업이 필요하지 않으며, memcpy()를 사용하여 객체의 유효한 독립적인 복사본을 생성할 수 있음을 지정합니다.Q_RELOCATABLE_TYPEType 에 생성자 및/또는 소멸자가 있지만, 를 사용하여 메모리 내에서 위치를memcpy()재배치할 수 있음을 지정합니다.Q_MOVABLE_TYPEQ_RELOCATABLE_TYPE와 동일합니다. 새로운 코드에서는 를 사용하는 것이 좋습니다. 참고: 이름과는 달리, 이는 이동 생성자나 C++ 이동 의미론과는 아무런 관련이 없습니다.Q_RELOCATABLE_TYPEQ_COMPLEX_TYPE(기본값)은 Type 가 생성자 및/또는 소멸자를 가지며, 메모리 내에서 이동될 수 없음을 지정합니다.
"기본" 유형의 예:
struct Point3D
{
int x;
int y;
int z;
};
Q_DECLARE_TYPEINFO(Point3D, Q_PRIMITIVE_TYPE);POD가 아닌 “기본” 유형의 예로는 QUuid 가 있습니다: QUuid 에는 생성자가 있어(따라서 POD가 아닙니다) 비록 모든 비트 패턴이 여전히 유효한 객체를 나타내지만, memcpy()를 사용하여 QUuid 객체의 유효한 독립적인 복사본을 생성할 수 있습니다.
재배치 가능한 유형의 예:
class Point2D
{
public:
Point2D() { data = new int[2]; }
Point2D(const Point2D &other) { /*...*/ }
~Point2D() { delete[] data; }
Point2D &operator=(const Point2D &other) { /*...*/ }
int x() const { return data[0]; }
int y() const { return data[1]; }
private:
int *data;
};
Q_DECLARE_TYPEINFO(Point2D, Q_RELOCATABLE_TYPE);Qt는 표준 C++ 유형 특성을 사용하여 유형의 클래스를 감지하려고 시도합니다. 이 매크로를 사용하여 동작을 조정할 수 있습니다. 예를 들어, 많은 유형은 단순 복사가 불가능함에도 불구하고 Q_RELOCATABLE_TYPE의 후보가 될 수 있습니다.
© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.