Please try this: struct DistortedNoise<Source> where Source:Noise {
typealias Displacement = Source let source:Source let displacement:Displacement init(source:Source, displacement:Displacement) { self.source = source self.displacement = displacement } init(source:Source) { self.source = source self.displacement = source } } Zhao Xin On Sun, Jul 9, 2017 at 12:21 PM, somu subscribe via swift-users < swift-users@swift.org> wrote: > Hi Taylor, > > If both Source and Displacement are going to be Noise, you could use just > one placeholder type. > > class Noise {} > > struct DistortedNoise<Item> where Item:Noise > { > let source:Item, > displacement:Item > > > init(source:Item, displacement:Item) > { > self.source = source > self.displacement = displacement > } > > > init(source:Item) > { > self.source = source > self.displacement = source > } > } > > Regards, > Muthu > > _______________________________________________ > swift-users mailing list > swift-users@swift.org > https://lists.swift.org/mailman/listinfo/swift-users > >
_______________________________________________ swift-users mailing list swift-users@swift.org https://lists.swift.org/mailman/listinfo/swift-users