Types
CppComplex[T] {.importcpp: "std::complex".} = object
Procs
proc `!=`[T: SomeFloat](a, b: CppComplex[T]): bool {.importcpp: "(# != #)", header: "<complex>", ...raises: [], tags: [], forbids: [].}
proc `$`[T](c: CppComplex[T]): string
proc `*`[T: SomeFloat](a, b: CppComplex[T]): CppComplex[T] {. importcpp: "(# * #)", header: "<complex>", ...raises: [], tags: [], forbids: [].}
proc `*=`[T: SomeFloat](self: var CppComplex[T]; arg: CppComplex[T]) {. importcpp: "(# *= #)", header: "<complex>", ...raises: [], tags: [], forbids: [].}
proc `+`[T: SomeFloat](a, b: CppComplex[T]): CppComplex[T] {. importcpp: "(# + #)", header: "<complex>", ...raises: [], tags: [], forbids: [].}
proc `+=`[T: SomeFloat](self: var CppComplex[T]; arg: CppComplex[T]) {. importcpp: "(# += #)", header: "<complex>", ...raises: [], tags: [], forbids: [].}
proc `-`[T: SomeFloat](a, b: CppComplex[T]): CppComplex[T] {. importcpp: "(# - #)", header: "<complex>", ...raises: [], tags: [], forbids: [].}
proc `-=`[T: SomeFloat](self: var CppComplex[T]; arg: CppComplex[T]) {. importcpp: "(# -= #)", header: "<complex>", ...raises: [], tags: [], forbids: [].}
proc `/`[T: SomeFloat](a, b: CppComplex[T]): CppComplex[T] {. importcpp: "(# / #)", header: "<complex>", ...raises: [], tags: [], forbids: [].}
proc `/=`[T: SomeFloat](self: var CppComplex[T]; arg: CppComplex[T]) {. importcpp: "(# /= #)", header: "<complex>", ...raises: [], tags: [], forbids: [].}
proc `==`[T: SomeFloat](a, b: CppComplex[T]): bool {.importcpp: "(# == #)", header: "<complex>", ...raises: [], tags: [], forbids: [].}
func abs[T: SomeFloat](self: CppComplex[T]): T {.importcpp: "std::abs(@)", header: "<complex>", ...raises: [], tags: [], forbids: [].}
func arg[T: SomeFloat](self: CppComplex[T]): T {.importcpp: "std::arg(@)", header: "<complex>", ...raises: [], tags: [], forbids: [].}
func conj[T: SomeFloat](self: CppComplex[T]): CppComplex[T] {. importcpp: "std::conj(@)", header: "<complex>", ...raises: [], tags: [], forbids: [].}
func imag[T: SomeFloat](self: CppComplex[T]): T {.importcpp: "#.imag()", header: "<complex>", ...raises: [], tags: [], forbids: [].}
func initCppComplex[T: SomeFloat](re, im: T): CppComplex[T] {.constructor, importcpp: "std::complex<\'*0>(@)", header: "<complex>".}
func norm[T: SomeFloat](self: CppComplex[T]): T {.importcpp: "std::norm(@)", header: "<complex>", ...raises: [], tags: [], forbids: [].}
func polar[T: SomeFloat](r, theta: T): CppComplex[T] {. importcpp: "std::polar<\'*0>(@)", header: "<complex>", ...raises: [], tags: [], forbids: [].}
func real[T: SomeFloat](self: CppComplex[T]): T {.importcpp: "#.real()", header: "<complex>", ...raises: [], tags: [], forbids: [].}
proc toComplex[T](c: CppComplex[T]): Complex[T]
proc toCppComplex[T](c: Complex[T]): CppComplex[T]