From Jason Turner

[over.binary.general]

Diff to HTML by rtfpessoa

Files changed (1) hide show
  1. tmp/tmpv2e9a40u/{from.md → to.md} +30 -0
tmp/tmpv2e9a40u/{from.md → to.md} RENAMED
@@ -0,0 +1,30 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #### General <a id="over.binary.general">[[over.binary.general]]</a>
2
+
3
+ A *binary operator function* is a function named `operator@` for a
4
+ binary operator `@` that is either a non-static member function
5
+ [[class.mfct]] with one non-object parameter or a non-member function
6
+ with two parameters. For an expression `x @ y` with subexpressions x and
7
+ y, the operator function is selected by overload resolution
8
+ [[over.match.oper]]. If a member function is selected, the expression is
9
+ interpreted as
10
+
11
+ ``` bnf
12
+ x '.' operator '@' '(' y ')'
13
+ ```
14
+
15
+ Otherwise, if a non-member function is selected, the expression is
16
+ interpreted as
17
+
18
+ ``` bnf
19
+ operator '@' '(' x ',' y ')'
20
+ ```
21
+
22
+ An *equality operator function* is an operator function for an equality
23
+ operator [[expr.eq]]. A *relational operator function* is an operator
24
+ function for a relational operator [[expr.rel]]. A
25
+ *three-way comparison operator function* is an operator function for the
26
+ three-way comparison operator [[expr.spaceship]]. A
27
+ *comparison operator function* is an equality operator function, a
28
+ relational operator function, or a three-way comparison operator
29
+ function.
30
+