mirror of
https://github.com/sls1005/nim-casting
synced 2026-01-15 13:21:46 +00:00
No description
| src | ||
| tests | ||
| casting.nimble | ||
| LICENSE | ||
| README.md | ||
Casting
This wraps the C++ cast operators for the Nim programming language.
Example
from casting import dynamicCast
type
A {.inheritable, pure.} = object
a: int
B = object of A
b: float
var x: B
let p: ptr A = dynamicCast[ptr A](x.addr)
if p.isNil():
echo "failed to cast"
else:
(p[]).a = 1
assert x.a == 1
Note
- Please use the built-in keyword
castif possible. This wrapper should only be used wherecastfails, or is inappropriate to use.
Warning
- Some of the
procs provided by this package allow performing unsafe operations. Please be sure of knowing what you are doing with them.