1 /** 2 Aliases for the $(LINK2 ./package.html, `checkedint`) module using `IntFlagPolicy.throws`. 3 4 Copyright: Copyright Thomas Stuart Bockman 2015 5 License: $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0). 6 Authors: Thomas Stuart Bockman 7 **/ 8 module checkedint.throws; 9 10 import future.traits0, std.typecons; 11 12 @safe: pragma(inline, true): 13 14 static import checkedint.flags; 15 public import checkedint.flags : 16 IntFlagPolicy, 17 intFlagPolicyOf, 18 IntFlag, 19 IntFlags, 20 CheckedIntException; 21 private alias IFP = IntFlagPolicy; 22 23 alias raise = checkedint.flags.raise!(IFP.throws); 24 25 static import checkedint; 26 27 alias SmartInt(N, Flag!"bitOps" bitOps = Yes.bitOps) = checkedint.SmartInt!(N, IFP.throws, bitOps); 28 SmartInt!(N, bitOps) smartInt(Flag!"bitOps" bitOps = Yes.bitOps, N)(N num) pure 29 if (isIntegral!N || isCheckedInt!N) 30 { 31 return typeof(return)(num.bscal); 32 } 33 alias smartOp = checkedint.smartOp!(IFP.throws); 34 35 alias DebugInt(N, Flag!"bitOps" bitOps = Yes.bitOps) = checkedint.DebugInt!(N, IFP.throws, bitOps); 36 37 alias SafeInt(N, Flag!"bitOps" bitOps = Yes.bitOps) = checkedint.SafeInt!(N, IFP.throws, bitOps); 38 SafeInt!(N, bitOps) safeInt(Flag!"bitOps" bitOps = Yes.bitOps, N)(N num) pure 39 if (isIntegral!N || isCheckedInt!N) 40 { 41 return typeof(return)(num.bscal); 42 } 43 alias safeOp = checkedint.safeOp!(IFP.throws); 44 45 alias to(T) = checkedint.to!(T, IFP.throws); 46 47 Select!(isSigned!(BasicScalar!N), ptrdiff_t, size_t) idx(N)(const N num) pure 48 if (isScalarType!N || isCheckedInt!N) 49 { 50 return checkedint.to!(typeof(return), IFP.throws)(num.bscal); 51 } 52 53 public import checkedint : 54 bscal, 55 bits, 56 isSafeInt, 57 isSmartInt, 58 isCheckedInt, 59 hasBitOps, 60 BasicScalar;