cppreference 문서 https://en.cppreference.com/w/cpp/algorithm/for_each.그 말은 :
- 알고리즘의 일부로 호출 된 함수의 실행이 예외를 던졌고 ExecutionPolicy가 3 표준 정책 중 하나이면 std :: 종료는 이라고 불립니다. 다른 executionPolicy의 경우, 동작은 구현이 정의되어 있습니다.
나는 이것이 내가 할 수없는 것을 의미한다는 것을 해석한다.각각
전달 된 기능을 통과하고 흥분 또는 관련 정보를 잡을 것으로 기대합니다.
예외를 사용하기를 기대할 것으로 예상 한 이유는 부분적으로 변경된 변경 사항을 부분적으로 실행 취소 (되돌리게 할 수 있습니다.각각
전화.
(어쩌면 그게 더 나은 알고리즘이있을 수 있습니다).
그러나 나는 그냥 기회에 의해 역사적인 버전을 발견했다.각각
더 많은 흥미로운 행동을 갖는 것은 문서화 된 것입니다.
- 정책이 std :: parallel_vector_execution_policy 인 경우 std :: terminate가
라고합니다.- 정책이 STD :: Sequential_Execution_Policy 또는 std :: parallel_execution_policy,
알고리즘은 모든 파쇄되지 않은 예외를 포함하는 std :: exception_list로 알고리즘이 종료됩니다. 하나의 잡히지 않은 예외가있는 경우, 알고리즘은 STD :: exception_list에 래핑하지 않고도 레이크 할 수 있습니다. 첫 번째 예외가 발생한 후에 반환하기 전에 알고리즘이 수행하기 전에 알고리즘이 수행 할 수 있는지 지정되지 않습니다.
대신에 그렇게되는 것처럼 보입니다.끝내다
실제로 예외를 사용하는 가능성이 있습니다.
그래서, 왜std :: exception_list.
제거 되었습니까? 너무 논쟁의 여지가 너무 복잡하고 너무 복잡 했는가?
논리에 동의하더라도 병렬로 인해 다른 옵션이 없습니다.각각
보고무효의
(단, 불가사의 대신에도 놀라운 일).
그러므로,
이것std :: exception_list.
프로토콜은 실패한 완료를 취소하는 데 필요한 구성 요소에서 나에게 보입니다.각각
지침.
는 새로운 맞춤 정책을 기대하는 것이 합리적입니다.par_with_failed_list.
어딘가에 나타날 것입니다실행 취소
NS.
더 많은 컨텍스트 :이 패턴을 실행 취소시키는 패턴은 용기의 구성에 사용됩니다. 나는 사용자 정의 (병렬 /시퀀스)를 구현하고 싶다.uninitialized_value_construct_n.
(언급되지 않은) 구조물이 실패 할 때 (언급되지 않은) 구조물이 실패 할 때 "실행 취소"(파괴)는
edit1 : 잠시 후, λ의 캡처 된 변수를 함수 매개 변수로 전달할 수 있습니다. 이 변수는 예외를 발생할 수있는 공유 동시 데이터가 될 수 있습니다 (예외 _list). 이것이 이미 수행되었는지 궁금합니다.
edit2 : 나는 구현을 발견했다.exception_list.
HPX에서,
- c++ : 메쉬 법선 계산을 최적화하는 방법은 무엇입니까?
- c++ : Union Find를 사용하여 올바른 수의 섬 반환
- C++로 나이트 투어 풀기
- c++ : 단계 배열을 선택하는 Knight의 여행 역추적 구현
- C++에서 소수 검사기 빌드
- c++ : 나머지 숫자의 합이 우리가 선택한 것보다 작은 두 개의 개별 숫자 배열의 인덱스를 선택하는 방법은 무엇입니까?
- c++ : std::exception의 파생물은 생성자에서 what() 가상 함수로 문자열을 어떻게 전달합니까?
- c++ : 널 포인터 인수와 불가능한 사후 조건을 사용하여 표준 예외 구성
- C++ 맵에서 주어진 VALUE(!)의 수를 계산하는 방법은 무엇입니까?
- c++ : 해싱을 사용하여 3sum 문제에서 중복 가져오기
그것은 p0394r4였습니다
Cubbi2021-08-16 22:16:31