mirror of
https://github.com/nim-lang/Nim.git
synced 2025-12-29 17:34:43 +00:00
Fixed the dot operator when used within return types (see tgenericdotrettype) Fixed the matching of generic concepts aliases used with the implicit generics style
16 lines
402 B
Nim
16 lines
402 B
Nim
type
|
|
Matrix*[M, N: static[int]; T] = object
|
|
data: array[M*N, T]
|
|
|
|
proc `[]`*(M: Matrix; m, n: int): M.T =
|
|
M.data[m * M.N + n]
|
|
|
|
proc `[]=`*(M: var Matrix; m, n: int; v: M.T) =
|
|
M.data[m * M.N + n] = v
|
|
|
|
# Adapt the Matrix type to the concept's requirements
|
|
template Rows*(M: type Matrix): expr = M.M
|
|
template Cols*(M: type Matrix): expr = M.N
|
|
template ValueType*(M: type Matrix): typedesc = M.T
|
|
|