Неизвестный параметр 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)
Другие вопросы по тегам