Skip to content

Commit

Permalink
Rollup merge of rust-lang#35690 - matthew-piziak:op-overloading-limit…
Browse files Browse the repository at this point in the history
…ed, r=steveklabnik

expound on limitations of Rust's trait-based operator overloading

Part of rust-lang#29330
  • Loading branch information
Jonathan Turner committed Aug 17, 2016
2 parents 493fcb0 + 18edae4 commit e20915f
Showing 1 changed file with 8 additions and 3 deletions.
11 changes: 8 additions & 3 deletions src/libcore/ops.rs
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,16 @@

//! Overloadable operators.
//!
//! Implementing these traits allows you to get an effect similar to
//! overloading operators.
//! Implementing these traits allows you to overload certain operators.
//!
//! Some of these traits are imported by the prelude, so they are available in
//! every Rust program.
//! every Rust program. Only operators backed by traits can be overloaded. For
//! example, the addition operator (`+`) can be overloaded through the `Add`
//! trait, but since the assignment operator (`=`) has no backing trait, there
//! is no way of overloading its semantics. Additionally, this module does not
//! provide any mechanism to create new operators. If traitless overloading or
//! custom operators are required, you should look toward macros or compiler
//! plugins to extend Rust's syntax.
//!
//! Many of the operators take their operands by value. In non-generic
//! contexts involving built-in types, this is usually not a problem.
Expand Down

0 comments on commit e20915f

Please sign in to comment.