[swift-users] How to extend a generic type with a Bool constraint?

Quinn "The Eskimo!" eskimo1 at apple.com
Wed Aug 31 12:20:47 CDT 2016

`Boolean` (the protocol) was removed in Swift 3 per SE-0109 “Remove the Boolean protocol”.


You can do what you want by defining your own dummy protocol and extending `Bool` (the type) to conform to that.

protocol JensBoolean {

extension Bool : JensBoolean {

public struct Foo<T> {

extension Foo where T : JensBoolean {

There’s an obvious need to make this better — search the ’net for “generics manifesto” for some context — but that didn’t catch the Swift 3 bus.

Share and Enjoy
Quinn "The Eskimo!"                    <http://www.apple.com/developer/>
Apple Developer Relations, Developer Technical Support, Core OS/Hardware

More information about the swift-users mailing list