5

用于从位数组构建位模式的代码在 Xcode 9 中给了我错误(适用于 8.3.3)

@_specialize(UInt8)
func integerFrom<T: UnsignedInteger>(_ bits: Array<Bit>) -> T {
    var bitPattern: T = 0
    for idx in bits.indices {
        if bits[idx] == Bit.one {
            let bit = T(UIntMax(1) << UIntMax(idx))
            bitPattern = bitPattern | bit
        }
    }
    return bitPattern
}

错误

'_specialize 属性'中的未知参数 UInt8

对此有任何线索/建议吗?

4

1 回答 1

10

你只需要像这样在specialize定义中包含一个where子句

@_specialize(where T == UInt8)
于 2017-09-07T17:11:19.957 回答