mirror of
https://github.com/nim-lang/Nim.git
synced 2026-01-03 11:42:33 +00:00
63 lines
1.0 KiB
Nim
63 lines
1.0 KiB
Nim
type
|
|
BigInt[bits: static int] = object
|
|
limbs: array[8, uint64]
|
|
|
|
block:
|
|
proc view[N](a: array[N, uint64]) =
|
|
discard
|
|
|
|
proc view[N](a: var array[N, uint64]) =
|
|
discard
|
|
|
|
var r: BigInt[64]
|
|
r.limbs.view()
|
|
|
|
|
|
type Limbs[N: static int] = array[N, uint64]
|
|
|
|
block:
|
|
proc view(a: Limbs) =
|
|
discard
|
|
|
|
proc view(a: var Limbs) =
|
|
discard
|
|
|
|
var r: BigInt[64]
|
|
r.limbs.view()
|
|
|
|
|
|
block:
|
|
type IntArray[N: static[int]] = array[N, int]
|
|
|
|
proc p[T](a: IntArray[T]): bool= true
|
|
proc p(a: IntArray[5]): bool= false
|
|
|
|
var s: IntArray[5]
|
|
doAssert s.p == false
|
|
|
|
block:
|
|
type IntArray[N: static[int]] = array[N, int]
|
|
|
|
proc `$`(a: IntArray): string =
|
|
return "test"
|
|
|
|
var s: IntArray[5] = [1,1,1,1,1]
|
|
doAssert `$`(s) == "test"
|
|
|
|
block:
|
|
proc p[n:static[int]](a: array[n, char]):bool=true
|
|
proc p[T, IDX](a: array[IDX, T]):bool=false
|
|
|
|
var g: array[32, char]
|
|
doAssert p(g)
|
|
|
|
block: # issue #23823
|
|
func p[N,T](a, b: array[N,T]) =
|
|
discard
|
|
|
|
func p[N: static int; T](x, y: array[N, T]) =
|
|
discard
|
|
|
|
var a: array[5, int]
|
|
p(a,a)
|