Skip to content

sls1005/nim-casting

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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 cast if possible. This wrapper should only be used where cast fails, 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.

Reference

About

A wrapper for the cast operators of C++

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages