다음 프로그램을 고려? operator+(f,f);
과 (과) 일치하지 않는 이유는 무엇입니까? 표준에 대한 언급은 인정 될 것이다.차이 (a, b)는
0
A
답변
2
f
유형은 내장형입니다. 내장 유형의 오브젝트에 대한 조작은 사용자 정의 연산자를 고려하지 않습니다. operator+(f, f)
을 호출하면 명시 적으로 강제 변환하지 않으면 발생하지 않는 두 번의 변환이 강제로 수행됩니다. 관련 절은 13.3.1.2 [over.match.oper] 단락 1 :
표현식에서 연산자의 피연산자가 클래스 또는 열거 형 유형이없는 경우 연산자는 a 내장 연산자를 사용하고 5 절에 따라 해석합니다. ...
+0
감사합니다. 나는 또한 * why * : C와의 호환성에 대해서도 설명해 주었다고 생각합니다.'f + f'와 같은 C의 유효한 표현식은 동일한 결과를 가져와야합니다. 'operator + (f, f)'와 같은 것은 C에 존재하지 않으므로, C++ 함수 호출처럼 취급하는 것이 좋습니다. 옳은? –
관련 문제
- 1. $ a = & $ b는 $ a = $ n이며, $ b = $ n과 동일합니까?
- 2. 부수 튜플 (A, (B는 C)) (A, B는 C)는 의미가 있습니까 fsharp
- 3. A`과의``차이 란 [:] '
- 4. PHP에서 $ a = 0과 $ a = '0'사이의 차이
- 5. $ a = ''사이의 차이; 그리고 $ a = NULL; PHP에서
- 6. 정규 표현식 (A 또는 A 또는 A 및 B), (A는 B는 아님)
- 7. b = a-> b는 클래스 목록에서 무엇을 의미합니까?
- 8. \ b는 어떻게 구현됩니까?
- 9. 정규 표현식 [A-z]와 [a-zA-Z]의 차이
- 10. 스칼라에서 f (a, b)와 f (a) (b)의 차이
- 11. 변수 B는 Lisp에서 언 바운드입니다.
- 12. BIO의 B는 무엇을 의미합니까?
- 13. 완전 영구 B는 + 트리
- 14. 모델링 2 관계 A 여러 B, A 많은 C, 선택적으로 B는 많은 C와 동일한 A를 가짐
- 15. String [] a와 String a []의 차이
- 16. Aaa 사이의 차이; and a aaa();
- 17. 루비 정규 표현식에서 ^, $ 및 \ A, \ Z의 차이
- 18. 자바 정규식 "^"와 "\ A"의 차이
- 19. VBA에서 : Dim a, b는 String ==> 만 b는 문자열입니다. 이 동작에 대한 참조를 얻을 수 있습니까? VBA를 모듈에서
- 20. 차이
- 21. 차이
- 22. 차이
- 23. 문자열 리터럴 앞에있는 b는 무엇을합니까?
- 24. OCAML : let 함수의 차이 a x = (a x) ;; 그리고 func a x = ((fun a -> a) x) ;;
- 25. 차이
- 26. 차이
- 27. 차이
- 28. 차이
- 29. 차이
- 30. 차이
가능한 복제본 http://stackoverflow.com/questions/13869150/rules-for-lookup-of-operators-in-c11? – Cubbi
@Cubbi 중복 된 것으로 생각하지 않습니다. 오버로드 된 멤버 및 블록 범위 연산자에 관한 것입니다. –
그 대답은 (a + b 대'operator + (a, b)'와는 상당히 다른) lookup 규칙을 가져 왔기 때문에 질문의 제목에 답할 수 있습니다. 그러나이 경우, 표준에 바로 가기가 있습니다. – Cubbi