주소가 연산자 & 인 아날로그 표준 C++ 함수가 있습니까? std :: transform 및 std :: compose1과 같은 stl 엔터티가있는 함수 개체로 사용할 수 있습니까?표준 C++ 함수가 있습니까?이 연산자는 Address-of 연산자와 유사합니다.
답변
std::addressof
은 귀하의 목적에 부합 할 수 있습니다. 유형에 해당 운영자에 대한 과부하가있는 경우이 동작은 일반 operator&
과 약간 다릅니다.
당신이 찾고있는 것이 std::addressof
이라고 생각합니다.
그리고 AdaptableUnaryFunction이 아닌 함수이기 때문에'std :: function' 또는'std :: ptr_fun'으로'compose1'과 함께 사용할 수 있습니다. 아니'compose1' 표준입니다. –
C++이 아닌 11 가지 방법을 알고 있습니까? C++ 03이 필요합니다.
@ mezhaka : C++ 03에서는 직접 작성하거나 Boost를 사용해야합니다. 복잡하지는 않습니다. 트릭은 주소를 가져온 다음'T * '로 다시 캐스팅하여'char '로 캐스팅하여'T '에 대한'연산자 '오버로드를 피하는 것입니다. "실제"주소가 필요하지 않으면 (즉, 오버로드 된 연산자 '를 호출하는 것이 행복하다면), 더 간단 해집니다 : template
C++이 아닌 11 가지 방법을 알고 있습니까? C++ 03이 필요합니다.에 주소가 있습니다. –
@ mezhaka 원하는 기능에 따라 나만의 것을 만들 수 있습니다. 내 대답에는 링크가 가능한 구현이 있습니다. – juanchopanza
@juanchopanza : C 스타일의 캐스트'(char &)'가'T'가'operator char &'를 오버로드 할 경우'static_cast'라는 것을 근거로 무언가를 놓치고 있습니까? http://ideone.com/7aGun5 –