Неизвестный параметр UInt8 в "_specialize attribute": Xcode 9
Этот код, используемый для построения шаблона битов из массива битов, дает мне ошибку в 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
}
ошибка
Неизвестный параметр UInt8 в атрибуте _specialize
Любые лиды / предложения по этому поводу?
1 ответ
Решение
Вам просто нужно включить предложение where в определение specialize, как это
@_specialize(where T == UInt8)