Мне интересно, как использовать «концепцию» в nim (0.13). У меня есть следующий код:Как использовать концепцию в Nim?
type
T = concept t
t.a is string
T0 = ref object
a: string
T1 = ref object
a: string
q: string
proc echoT(t: T) : void =
echo "hello " & t.a
echoT(T0(a: "T0"))
echoT(T1(a: "T1", q: "q"))
Однако компилятор жалуется на первом вызове echoT:
t.nim(21, 6) Error: type mismatch: got (T0)
В случае, если это не работа то же самое, заменив echoT
декларацию с:
proc echoT[T](t: T): void = echo "hello " & t.a
(который компилируется и запускается), за исключением того, что в концептуальной версии ограничение t.a is string
введен в действие?
Как я могу заставить компилятор распознать использование концепции?
Andrew ... hmm ... ok: оригинал действительно соответствует ... но, когда я помещаю его в новое место, он работает! Что-то ужасно связано с моей установкой в оригинальном месте. (Nimcache?). Спасибо за проверку. :) – shaunc