Implements: [C++] constructor pragma improvement (fix #21921) (#21916)

* implements: [C++] constructor pragma improvement (fix #21921)

t

* fix test so it doesnt use echo in globals

* Update compiler/ccgtypes.nim

* Update lib/std/private/dragonbox.nim

---------

Co-authored-by: Andreas Rumpf <rumpf_a@web.de>
This commit is contained in:
Juan M Gómez
2023-05-30 20:47:26 +01:00
committed by GitHub
parent 20446b437b
commit e43a51fcf3
9 changed files with 180 additions and 84 deletions

View File

@@ -75,10 +75,10 @@ const
const
signMask*: BitsType = not (not BitsType(0) shr 1)
proc constructDouble*(bits: BitsType): Double {.constructor.} =
proc constructDouble*(bits: BitsType): Double =
result.bits = bits
proc constructDouble*(value: ValueType): Double {.constructor.} =
proc constructDouble*(value: ValueType): Double =
result.bits = cast[typeof(result.bits)](value)
proc physicalSignificand*(this: Double): BitsType {.noSideEffect.} =

View File

@@ -39,10 +39,10 @@ const
exponentMask: BitsType = maxIeeeExponent shl (significandSize - 1)
signMask: BitsType = not (not BitsType(0) shr 1)
proc constructSingle(bits: BitsType): Single {.constructor.} =
proc constructSingle(bits: BitsType): Single =
result.bits = bits
proc constructSingle(value: ValueType): Single {.constructor.} =
proc constructSingle(value: ValueType): Single =
result.bits = cast[typeof(result.bits)](value)
proc physicalSignificand(this: Single): BitsType {.noSideEffect.} =