반응형
std :: transform 및 유사하게 'for'루프 증분을 (void)로 캐스팅하는 이유는 무엇입니까?
(void) ++__result
아래 코드 의 목적은 무엇입니까 ?
std :: transform 구현 :
// std::transform
template <class _InputIterator, class _OutputIterator, class _UnaryOperation>
inline _LIBCPP_INLINE_VISIBILITY
_OutputIterator
transform(_InputIterator __first, _InputIterator __last, _OutputIterator __result, _UnaryOperation __op)
{
for (; __first != __last; ++__first, (void) ++__result)
*__result = __op(*__first);
return __result;
}
과부하가 발생할 수 있습니다 operator,
. void
오버로드 된 연산자는 void
매개 변수를 사용할 수 없으므로 오버로드 된 연산자가 호출되지 않도록 피연산자를 캐스팅합니다 .
과부하가있는 operator,
경우 호출을 방지 합니다. 유형 void
은 함수 (연산자)의 인수가 될 수 없기 때문입니다.
또 다른 접근 방식은 void()
중간에 삽입하는 것입니다 .
++__first, void(), ++__result
반응형
'Nice programing' 카테고리의 다른 글
Windows에서 큰 텍스트 파일을 읽는 방법은 무엇입니까? (0) | 2020.10.19 |
---|---|
Authorize 속성의 MVC5 클레임 버전 (0) | 2020.10.19 |
기본 유형 '짧은'-Java로 캐스팅 (0) | 2020.10.19 |
SQL Server Management Studio에서 커서가있는 문만 실행하려면 어떻게해야합니까? (0) | 2020.10.19 |
IE에서 HTML5 캔버스 요소를 어떻게 사용할 수 있습니까? (0) | 2020.10.19 |