123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- import typetraits
- template typeLen(x): int = x.type.name.len
- template bunchOfChecks(x) =
- x.typeLen > 3
- x != 10 is bool
- template stmtListExprTmpl(x: untyped): untyped =
- x is int
- x
- type
- Obj = object
- x: int
- Gen[T] = object
- x: T
- Eq = concept x, y
- (x == y) is bool
- NotEq = concept x, y
- (x != y) is bool
- ConceptUsingTemplate1 = concept x
- echo x
- sizeof(x) is int
- bunchOfChecks x
- ConceptUsingTemplate2 = concept x
- stmtListExprTmpl x
- template ok(x) =
- static: assert(x)
- template no(x) =
- static: assert(not(x))
- ok int is Eq
- ok int is NotEq
- ok string is Eq
- ok string is NotEq
- ok Obj is Eq
- ok Obj is NotEq
- ok Gen[string] is Eq
- ok Gen[int] is NotEq
- no int is ConceptUsingTemplate1
- ok float is ConceptUsingTemplate1
- no string is ConceptUsingTemplate1
- ok int is ConceptUsingTemplate2
- no float is ConceptUsingTemplate2
- no string is ConceptUsingTemplate2
|