반응형
*이 '기능에 대한'rvalue 참조 없음에 대한 해결 방법
이동 가능한 생성 개체 주변에 프록시 컨테이너 클래스가 있고 프록시가 기본 개체에 대한 rvalue 참조를 암시 적으로 할 수 있기 때문에 원하지만 프록시 자체가 이동 될 수 있습니다.
나는 제안 n2439 "이동 의미를 * this로 확장"에 따라이 동작을 구현할 수있을 것이라고 믿지만 아직 gcc 릴리스에서는 사용할 수 없습니다. 잠시 동안 사용할 수 없습니다.
아래 코드는 내가 목표로하고 현재는 불가능합니다. 이 기능을 사용할 수있을 때 동등한 동등한 해결 방법이 있습니까?
template< class T >
struct movable_proxy {
operator T&&() && {
return std::move(value);
}
operator const T&() const& {
return value;
}
private:
T value;
};
좋은 질문. 최근에 보강 종류의 프록시 클래스를 작성하려고 시도했지만 좋은 솔루션을 얻었습니다. 내가 최선의 방법은 프록시가 r- 값이어야하는 모든 용도에서 멤버 함수를 호출하는 것입니다.
ORef<T> move() {
return ORef<T>( this->release() );
}
이 r- 값을에서 std::move(proxy)
로 선언하는 의미를 변경 proxy.move()
하지만 다른 유형의 허용합니다. (암시 적으로 필요한 유형으로 변환 가능).
사용자 사용하는 코딩 관행은 항상 의미론 (이동, 공유 참조, 복사 등)의 수동 지정을 강제하는 rvalue로 프록시를 전달하는 것이지만, 이는 물론 사용 오류를 강력한 인 문제로 만듭니다 (예 :을 ( x.move()
를 x
) 최종 사용하기 전에 호출 ). .
참고 URL : https://stackoverflow.com/questions/14562984/workarounds-for-no-rvalue-references-to-this-feature
반응형
'ProgramingTip' 카테고리의 다른 글
cellForRowAtIndexPath : 호출되지 않음 (0) | 2020.11.12 |
---|---|
Google Sites API 전체 텍스트 검색은 비 서구 언어에서 작동하지 않습니다. (0) | 2020.11.12 |
LAPACK을 사용하여 Cython 기반 확장 배포 (0) | 2020.11.12 |
AvalonEdit : 계단식 HighlightingColorizers (0) | 2020.11.12 |
BcdDivide 함수는 Delphi XE 및 XE2에서 다르게 작동합니다. (0) | 2020.11.12 |