난 단지 std :: identity의 목적이 무엇인지 알고 싶습니까? 나는 웹상에서 유용한 것을 찾을 수 없었다. 어떻게 구현되는지는 알 수 있습니다 :std :: identity 란 무엇이며 어떻게 사용됩니까?
template <typename T>
struct identity
{
T operator()(T x) const { return x; }
};
왜 실제로 필요합니까?
난 단지 std :: identity의 목적이 무엇인지 알고 싶습니까? 나는 웹상에서 유용한 것을 찾을 수 없었다. 어떻게 구현되는지는 알 수 있습니다 :std :: identity 란 무엇이며 어떻게 사용됩니까?
template <typename T>
struct identity
{
T operator()(T x) const { return x; }
};
왜 실제로 필요합니까?
코드에있는 구조체는 ID 함수 T -> T
입니다. 여기서 T는 템플릿 매개 변수입니다. 이 함수는 그 자체로는 유용하지 않지만, 함수 매개 변수를 전달해야하는 다른 상황에서 유용 할 수 있으며, 식별 함수는 거기에 삽입하려는 함수입니다. 일반적으로 일종의 "do nothing"기능으로 유용합니다.
std::identity
에 관해서는이 구조체가 C++ 표준 라이브러리에 존재한다는 증거는 찾을 수 없습니다.
내 라이브러리에는 std::identity
이 없지만 std::copy_if
을 통해 nullptr
개체가없는 다른 벡터로 벡터를 복사하는 유용한 도구 여야합니다.
그래서 무효 포인터 처리를 방지하는 데 주로 사용됩니까? – MEMS
표준에는'std :: identity'가 없습니다. 모든 제안이 제거되었습니다. 이것을 힌트로 생각할 수도 있습니다. – SergeyA
ID 함수의 주요 용도는 인수가 예상되는 경우 함수 포인터를 감싸는 인수를 전달할 수 있도록하는 것입니다. 그것은 함수 프로그래밍에서 일반적이며 haskell과 같은 언어에서 많이 사용되는 경향이 있습니다. 참조 : http://stackoverflow.com/questions/25987085/what-do-people-use-identity-function-for –
http://stackoverflow.com/questions/15202474/default-function-that-just-for- returns-the-passed-value 이것을 읽고 이것을 얻을 것이다 – szpanczyk