| // RUN: %target-run-simple-swift | %FileCheck %s |
| // REQUIRES: executable_test |
| |
| import Swift |
| |
| struct BitVector64 { |
| var bits : Int64 |
| |
| subscript (bit : Int) -> Bool { |
| get { |
| if (bits & (1 &<< Int64(bit))) != 0 { |
| return true |
| } |
| return false |
| } |
| set { |
| var mask: Int64 = 1 &<< bit |
| if newValue { |
| bits = bits | mask |
| } else { |
| bits = bits & ~mask |
| } |
| } |
| } |
| } |
| |
| // Create an empty bitvector |
| var vec = BitVector64(bits: 0) |
| |
| // Set even elements to 'true'. |
| for i in 0..<64 { |
| if i % 2 == 0 { |
| vec[i] = true |
| } |
| } |
| |
| // Print all elements |
| for i in 0..<64 { |
| print("\(vec[i])") |
| } |
| // CHECK: true |
| // CHECK-NEXT: false |
| // CHECK-NEXT: true |
| // CHECK-NEXT: false |
| // CHECK-NEXT: true |
| // CHECK-NEXT: false |
| // CHECK-NEXT: true |
| // CHECK-NEXT: false |
| // CHECK-NEXT: true |
| // CHECK-NEXT: false |
| // CHECK-NEXT: true |
| // CHECK-NEXT: false |
| // CHECK-NEXT: true |
| // CHECK-NEXT: false |
| // CHECK-NEXT: true |
| // CHECK-NEXT: false |
| // CHECK-NEXT: true |
| // CHECK-NEXT: false |
| // CHECK-NEXT: true |
| // CHECK-NEXT: false |
| // CHECK-NEXT: true |
| // CHECK-NEXT: false |
| // CHECK-NEXT: true |
| // CHECK-NEXT: false |
| // CHECK-NEXT: true |
| // CHECK-NEXT: false |
| // CHECK-NEXT: true |
| // CHECK-NEXT: false |
| // CHECK-NEXT: true |
| // CHECK-NEXT: false |
| // CHECK-NEXT: true |
| // CHECK-NEXT: false |
| // CHECK-NEXT: true |
| // CHECK-NEXT: false |
| // CHECK-NEXT: true |
| // CHECK-NEXT: false |
| // CHECK-NEXT: true |
| // CHECK-NEXT: false |
| // CHECK-NEXT: true |
| // CHECK-NEXT: false |
| // CHECK-NEXT: true |
| // CHECK-NEXT: false |
| // CHECK-NEXT: true |
| // CHECK-NEXT: false |
| // CHECK-NEXT: true |
| // CHECK-NEXT: false |
| // CHECK-NEXT: true |
| // CHECK-NEXT: false |
| // CHECK-NEXT: true |
| // CHECK-NEXT: false |
| // CHECK-NEXT: true |
| // CHECK-NEXT: false |
| // CHECK-NEXT: true |
| // CHECK-NEXT: false |
| // CHECK-NEXT: true |
| // CHECK-NEXT: false |
| // CHECK-NEXT: true |
| // CHECK-NEXT: false |
| // CHECK-NEXT: true |
| // CHECK-NEXT: false |
| // CHECK-NEXT: true |
| // CHECK-NEXT: false |
| // CHECK-NEXT: true |
| // CHECK-NEXT: false |