.step one Standard
An operator are an associate you to definitely defines the definition out-of a keen expression driver which can be used on cases of the course. Operators is declared using driver_declarations:
six.1) or a term muscles (§fourteen.six.1). A good stop system contains an effective block, and that specifies the comments to execute when the operator try invoked. New cut-off shall conform to the rules to possess worthy of-returning actions described inside the §14.six.eleven. A phrase human body includes => followed https://datingranking.net/pl/mature-quality-singles-recenzja/ closely by an expression and you may a great semicolon, and indicates an individual expression to execute in the event that driver are invoked.
To have extern operators, the latest user_system comprise only from a great semicolon. For everyone most other workers, brand new operator_body’s either a cut off muscles otherwise a phrase human anatomy.
- An user declaration will tend to be both a public and you will a static modifier.
- The fresh new parameter(s) out of an agent shall have no modifiers.
- This new signature from a driver (§.2, §.step 3, §.4) should change from the signatures of all most other workers age classification.
- Every type referenced into the an agent statement will likely be at least because obtainable since the operator itself (§eight.5.5).
- It is a blunder for the very same modifier to look numerous times when you look at the an user declaration.
Like many users, operators announced during the a bottom category are passed down of the derived categories. Because driver declarations usually have to have the category otherwise struct where the new driver try declared to participate the signature of one’s operator, it is not easy for a driver announced into the a beneficial derived category to full cover up an user stated for the a base category. Therefore, the fresh modifier is never required, and therefore never allowed, inside the an operator declaration.
.2 Unary operators
The second laws apply at unary user declarations, in which T denotes the latest such sorts of the class or struct containing the newest agent declaration:
, ++ , — , genuine , otherwise false ) in addition to sort of this new solitary authoritative parameter. Brand new return type of is not section of a beneficial unary operator’s trademark, neither is the label of specialized parameter.
The true and you can not true unary workers require pair-smart report. An attain-big date error happen if a course announces one of those providers instead as well as saying additional. The genuine and you may not true providers is demonstrated subsequent into the §.
Notice the driver method efficiency the significance produced by incorporating step one for the operand, due to the fact postfix increment and you will decrement providers (§11.seven.14), together with prefix increment and you can decrement operators (§eleven.8.6). In lieu of within the C++, this process should not customize the value of their operand personally since this do violate the standard semantics of one’s postfix increment user (§eleven.7.14). end example
.step 3 Binary operators
The following guidelines apply to binary driver declarations, where T denotes the new particularly type of the category otherwise struct which has had the fresh new driver statement:
- A digital low-shift driver will get one or two parameters, one where will provides style of T otherwise T? , and will come back any type.
- A binary << or >> operator (§) shall take two parameters, the first of which shall have type T or T? and the second of which shall have type int or int? , and can return any type. The signature of a binary operator consists of the operator token ( + , – , * , / , % , , | , ^ , << , >> , == , != , > , < , >= , or <= ) and the types of the two formal parameters. The return type and the names of the formal parameters are not part of a binary operator's signature.
Specific digital providers need partners-smart report. For each and every statement regarding either driver away from some, indeed there can be a matching report of your own most other user regarding the two. A couple operator declarations suits in the event the title conversions are present ranging from the get back brands as well as their corresponding parameter brands. Next workers want couple-smart declaration: