My understanding is that we're trying to avoid directly declaring operator overloads as this pollutes the global namespace and makes operator function lookup slower compared to finding a named function in a named type.
Félix > Le 2 juil. 2016 à 05:02:20, Nevin Brackett-Rozinsky via swift-evolution > <[email protected]> a écrit : > > I’m glad this was approved, the improvements look substantial! > > My one question is why are the bitwise operations (and/or/xor) modeled as > member functions rather than operators? > > > > On Thursday, June 30, 2016, Chris Lattner via swift-evolution > <[email protected] <mailto:[email protected]>> wrote: > Proposal link: > https://github.com/apple/swift-evolution/blob/master/proposals/0104-improved-integers.md > > <https://github.com/apple/swift-evolution/blob/master/proposals/0104-improved-integers.md> > > Hello Swift Community, > > The review of "SE-0104: Protocol-oriented integers" ran from June 22...27. > The proposal is *accepted* for Swift 3 with revisions: > > The feedback from the community was very positive and contributed a number of > improvements to the design of the proposal. The core team has accepted the > proposal, subject to the following changes: > > - The “Integer" protocol should be renamed to “BinaryInteger” to be more > accurate and avoid confusion between “Int" and “Integer”. > - The “FloatingPoint" protocol should conform to the “Arithmetic” protocol. > - Rename the “absoluteValue” property to “magnitude”, and sink it down to > the “Arithmetic” protocol. > - Eliminate the “AbsoluteValuable" protocol, since “abs” can now be defined > in terms of “Arithmetic". > - Rename the “signBitIndex" property to > "minimumSignedRepresentationBitWidth". > - Add a “popcount" property requirement to the “FixedWidthInteger” protocol. > - Change the "countLeadingZeros()" member of concrete types to be a > “leadingZeros” property on “FixedWidthInteger”. > - Rename "func nthWord(n: Int) -> UInt” to "func word(at: Int) -> UInt”. > - Rename the “and”, “or”, and “xor” members of “FixedWidthInteger” to > “bitwiseAnd”, “bitwiseOr” and “bitwiseXor”. > - Change “doubleWidthMultiply” to be a static member, and add a > “doubleWidthDivide” member as its dual. The latter will return both quotient > and remainder of type “Self". Both are to be added to the "FixedWidthInteger" > protocol. > > Many thanks to Maxim Moiseev, Dave Abrahams and Dmitri Gribenko for driving > this proposal forward, Steve Canon for his important input, and to Maxim > Moiseev for driving the implementation work forward. > > -Chris Lattner > Review Manager > > > _______________________________________________ > swift-evolution mailing list > [email protected] <javascript:;> > https://lists.swift.org/mailman/listinfo/swift-evolution > <https://lists.swift.org/mailman/listinfo/swift-evolution> > _______________________________________________ > swift-evolution mailing list > [email protected] > https://lists.swift.org/mailman/listinfo/swift-evolution
_______________________________________________ swift-evolution mailing list [email protected] https://lists.swift.org/mailman/listinfo/swift-evolution
