CAdapt 클래스
이 템플릿은 개체 주소 이외의 주소를 반환하도록 연산자 주소를 다시 정의하는 클래스를 래핑하는 데 사용됩니다.
구문
template <class T>
class CAdapt
매개 변수
T
조정된 형식입니다.
멤버
공용 생성자
속성 | 설명 |
---|---|
CAdapt::CAdapt | 생성자입니다. |
Public 연산자
속성 | 설명 |
---|---|
CAdapt::operator const T& | 에 대한 참조를 const 반환합니다 m_T . |
CAdapt::operator T& | m_T 에 대한 참조를 반환합니다. |
CAdapt::operator < | 조정된 형식의 개체를 m_T 와 비교합니다. |
CAdapt::operator = | 조정된 형식의 개체를 m_T 에 할당합니다. |
CAdapt::operator == | 조정된 형식의 개체를 m_T 와 비교합니다. |
공용 데이터 멤버
속성 | 설명 |
---|---|
CAdapt::m_T | 조정되는 데이터입니다. |
설명
CAdapt
는 개체의 주소 이외의 주소를 반환하도록 연산자의 주소(operator &
)를 다시 정의하는 클래스를 래핑하는 데 사용되는 간단한 템플릿입니다. 이러한 클래스의 예로 ATL의 CComBSTR
, CComPtr
, CComQIPtr
클래스 및 컴파일러 COM 지원 클래스인 _com_ptr_t
가 있습니다. 이러한 클래스는 모두 주소 연산자를 재정의하여 해당 데이터 멤버 중 하나의 주소(의 경우 BSTR 및 다른 클래스의 CComBSTR
경우 인터페이스 포인터)를 반환합니다.
CAdapt
'의 주요 역할은 T 클래스에서 정의한 주소 연산자를 숨기면서도 적응된 클래스의 특성을 유지하는 것입니다. CAdapt
는 T 형식의 공용 멤버인 m_T 보유하고 변환 연산자, 비교 연산자 및 복사 생성자를 정의하여 특수화가 T 형식의 CAdapt
개체인 것처럼 처리되도록 하여 이 역할을 수행합니다.
어댑터 클래스 CAdapt
는 일부 컨테이너 스타일 클래스가 연산자 주소를 사용하여 포함된 개체의 주소를 가져올 수 있기 때문에 유용합니다. 연산자의 주소를 다시 정의하면 일반적으로 컴파일 오류가 발생하고 "작동"해야 하는 클래스에서 조정되지 않은 형식이 사용되지 않아 이 요구 사항에 맞지 않게 됩니다. CAdapt
가 이러한 문제에 대한 해결 방법을 제공합니다.
일반적으로 컨테이너 스타일 클래스에 CAdapt
, CComBSTR
, CComPtr
또는 CComQIPtr
개체를 저장하려는 경우 _com_ptr_t
를 사용합니다. 이는 C++11 표준이 지원되기 전에 C++ 표준 라이브러리 컨테이너에 대해 가장 일반적으로 필요했지만, 이제 C++11 표준 라이브러리 컨테이너가 operator&()
를 오버로드한 형식으로 자동으로 작동합니다. 표준 라이브러리는 내부적으로 std::addressof를 사용하여 개체의 실제 주소를 가져와서 이를 달성합니다.
요구 사항
헤더: atlcomcli.h
CAdapt::CAdapt
생성자를 사용하면 어댑터 개체를 기본적으로 생성하거나, 적응된 형식의 개체에서 복사하거나, 다른 어댑터 개체에서 복사할 수 있습니다.
CAdapt();
CAdapt(const T& rSrc);
CAdapt(const CAdapt& rSrCA);
CAdapt(T&& rSrCA); // (Visual Studio 2017)
CAdapt(CAdapt<T>&& rSrCA) noexcept; // (Visual Studio 2017)
매개 변수
rSrc
새로 생성된 어댑터 개체에 복사되도록 조정되는 형식의 변수입니다.
rSrCA
포함된 데이터를 새로 생성된 어댑터 개체로 복사(또는 이동)해야 하는 어댑터 개체입니다.
CAdapt::m_T
조정되는 데이터를 보유합니다.
T m_T;
설명
이 public
데이터 멤버는 연산자 const T& 및 연산자 T>를 사용하여 직접 또는 간접적으로 액세스할 수 있습니다.
CAdapt::operator const T&
const
어댑터 개체가 T 형식의 개체인 것처럼 처리될 수 있도록 m_T 멤버에 대한 참조를 반환합니다.
operator const T&() const;
Return Value
에 const
대한 참조입니다 m_T
.
CAdapt::operator T&
어댑터 개체가 T 형식의 개체인 것처럼 처리될 수 있도록 m_T 멤버에 대한 참조를 반환합니다.
operator T&();
Return Value
m_T
에 대한 참조입니다.
CAdapt::operator <
적응 형식 의 개체를 m_T 비교합니다.
bool operator<(const T& rSrc) const;
매개 변수
rSrc
비교할 개체에 대한 참조입니다.
Return Value
rSrc와 rSrc 간의 m_T
비교 결과입니다.
CAdapt::operator =
대입 연산자는 rSrc 인수를 m_T 데이터 멤버에 할당하고 현재 어댑터 개체를 반환합니다.
CAdapt& operator= (const T& rSrc);
CAdapt& operator= (T&& rSrCA); // (Visual Studio 2017)
CAdapt& operator= (CAdapt<T>&& rSrCA) noexcept; // (Visual Studio 2017)
매개 변수
rSrc
복사할 적응 형식의 개체에 대한 참조입니다.
rSrCA
이동할 개체에 대한 참조입니다.
Return Value
현재 개체에 대한 참조입니다.
CAdapt::operator ==
적응 형식 의 개체를 m_T 비교합니다.
bool operator== (const T& rSrc) const;
매개 변수
rSrc
비교할 개체에 대한 참조입니다.
Return Value
m_T rSrc 간의 비교 결과입니다.