나는 Generic lambdas을보고 그것을 얻을 수 없다 - 왜 타입 선언을 유지해야 하는가? 왜 안돼 (x, y)
? 컴파일러 공급 업체가 (auto a, auto b)
을 지원해야하는 경우 간단한 (a, b)
을 지원하는 데 문제가 있습니까?왜 C++ 14 일반 람다는 매개 변수를 자동 지정해야합니까?
답변
문제는 사용자가 매개 변수의 이름을 생략 할 수 있다는 것입니다. 컴파일러에서 (a,b)
과 a
및 b
이 유효한 유형이라면 그 의미는 무엇입니까? (a /*dummy_a*/, b /*dummy_b*/)
또는 (auto a, auto b)
? auto
을 명시 적으로 입력해야하므로 더 이상 모호하지 않습니다.
그러나 매개 변수의 이름을 제외하면 람다 본문에 어떻게 액세스 할 수 있습니까? 우리가 할 수 없다면, 언제 그러한 기능이 필요합니까? – myWallJSON
@myWallJSON 이러한 매개 변수에 액세스 할 수 없으며 제어 할 수없는 특정 서명이있는 람다가 필요하면 이러한 기능이 필요합니다. 하나의 장소에서 무명의 인자는'operator ++ (int)'입니다. – bames53
@myWallJSON 두 가지 이유 : 일관성 (여기서는 특별한 규칙을 원하지 않으므로)과 일부 기능의 경우 특수한 유형의 매개 변수를 플래그의 일종으로 전달하기 때문에 실제로는 값을 사용하지 않습니다. 매개 변수 자체 템플릿을 사용할 때 특히 유용합니다. 많은 예제를 찾을 수있을 것 같습니다. –
- 1. C# 일반 여러 매개 변수를
- 2. 왜 이름을 지정해야합니까?
- 3. 왜 DetailView에 context_object_name을 지정해야합니까?
- 4. C#의 매개 변수와 명명 된 매개 변수 혼합 : 왜 매개 변수의 이름을 지정해야합니까?
- 5. C# 일반 메서드 매개 변수를 만듭니다.
- 6. 왜 변수를 사용하기 전에 return (Array) 함수에 변수를 지정해야합니까?
- 7. 왜 매개 변수를 사용해야합니까?
- 8. 람다는 C# 확장 방법에
- 9. C++ 람다는 빈 문자열
- 10. 두 가지 일반 매개 변수를 사용하는 C#의 일반 메서드
- 11. 왜 init 메소드를 지정해야합니까?
- 12. 왜 매개 변수를 잃었습니까?
- 13. 일반 매개 변수를 메서드 매개 변수로 사용
- 14. 일반 매개 변수를 메서드 매개 변수로 전달
- 15. C++ : boost boost with fusion :: C++ 14 일반 람다
- 16. 왜 Java 힙 크기를 지정해야합니까?
- 17. HTTP : 왜 호스트 이름을 지정해야합니까?
- 18. 왜 twisted.internet.deferred의 인스턴스 이름을 지정해야합니까?
- 19. C#을 람다는 아래에 주어진 조건
- 20. 일반 매개 변수를 사용하여 클래스에 언 마샬
- 21. C# 일반 매개 변수를 받아들이는 동작을 캐시 할 패턴
- 22. C# : 빈 문자열로 지정해야합니까?
- 23. 파이썬 람다는 여러 인수
- 24. C++ 14 다형성 람다에 gcc 버그가 있습니까?
- 25. C++에서 MSGPACK_DEFINE을 사용하여 선택적 매개 변수 정의 14
- 26. sproc 매개 변수에서 유형의 길이를 지정해야합니까?
- 27. C# - 매개 변수 컬렉션에 매개 변수를 추가해야합니까?
- 28. Proguard와 람다는
- 29. 람다는 쓰레기 수거 되나요?
- 30. 왜 항상 std :: for_each에서 반복자를 지정해야합니까?
오, 나는 사람들에게 아직 사용하지 말라고 말하는 C++ 14 태그에 좋은 메시지를 남겼다. 어쨌든, 나는 제안을 따르는 것을 기억하면서 초기에 유형이없는 매개 변수를 제안했으나 충분히 장황하지 않다고 결정되었다. – chris
필자는 "당신이 제어 할 수없는 특별한 서명을 갖기 위해 람다가 필요하다", "무명 인수는 일상적으로 사용되는 연산자 ++"및 "플래그의 일종으로 특수 유형 전달"과 같은 argumrents에 대해서는 우려하고 있습니다. 너무 rediculasly 잘못되었습니다 ... – myWallJSON
@ myWallJSON : 그건 다른 것보다 당신의 경험에 대해 더 많이 말합니다. 예 : Windows API는 무의미한 람다 (함수 포인터로의 암시 적 변환 때문에)를 허용 할 장소가 가득합니다. 그리고 분명히 Windows에서 서명을 제어하지 않습니다. – MSalters