Warning, file /include/boost/numeric/conversion/detail/preprocessed/numeric_cast_traits_common.hpp was not indexed
or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012 namespace boost { namespace numeric {
0013
0014 template <>
0015 struct numeric_cast_traits
0016 <
0017 char
0018 , char
0019 >
0020 {
0021 typedef def_overflow_handler overflow_policy;
0022 typedef UseInternalRangeChecker range_checking_policy;
0023 typedef Trunc<char> rounding_policy;
0024 };
0025
0026 template <>
0027 struct numeric_cast_traits
0028 <
0029 char
0030 , signed char
0031 >
0032 {
0033 typedef def_overflow_handler overflow_policy;
0034 typedef UseInternalRangeChecker range_checking_policy;
0035 typedef Trunc<signed char> rounding_policy;
0036 };
0037
0038 template <>
0039 struct numeric_cast_traits
0040 <
0041 char
0042 , unsigned char
0043 >
0044 {
0045 typedef def_overflow_handler overflow_policy;
0046 typedef UseInternalRangeChecker range_checking_policy;
0047 typedef Trunc<unsigned char> rounding_policy;
0048 };
0049
0050 template <>
0051 struct numeric_cast_traits
0052 <
0053 char
0054 , short
0055 >
0056 {
0057 typedef def_overflow_handler overflow_policy;
0058 typedef UseInternalRangeChecker range_checking_policy;
0059 typedef Trunc<short> rounding_policy;
0060 };
0061
0062 template <>
0063 struct numeric_cast_traits
0064 <
0065 char
0066 , unsigned short
0067 >
0068 {
0069 typedef def_overflow_handler overflow_policy;
0070 typedef UseInternalRangeChecker range_checking_policy;
0071 typedef Trunc<unsigned short> rounding_policy;
0072 };
0073
0074 template <>
0075 struct numeric_cast_traits
0076 <
0077 char
0078 , int
0079 >
0080 {
0081 typedef def_overflow_handler overflow_policy;
0082 typedef UseInternalRangeChecker range_checking_policy;
0083 typedef Trunc<int> rounding_policy;
0084 };
0085
0086 template <>
0087 struct numeric_cast_traits
0088 <
0089 char
0090 , unsigned int
0091 >
0092 {
0093 typedef def_overflow_handler overflow_policy;
0094 typedef UseInternalRangeChecker range_checking_policy;
0095 typedef Trunc<unsigned int> rounding_policy;
0096 };
0097
0098 template <>
0099 struct numeric_cast_traits
0100 <
0101 char
0102 , long
0103 >
0104 {
0105 typedef def_overflow_handler overflow_policy;
0106 typedef UseInternalRangeChecker range_checking_policy;
0107 typedef Trunc<long> rounding_policy;
0108 };
0109
0110 template <>
0111 struct numeric_cast_traits
0112 <
0113 char
0114 , unsigned long
0115 >
0116 {
0117 typedef def_overflow_handler overflow_policy;
0118 typedef UseInternalRangeChecker range_checking_policy;
0119 typedef Trunc<unsigned long> rounding_policy;
0120 };
0121
0122 template <>
0123 struct numeric_cast_traits
0124 <
0125 char
0126 , float
0127 >
0128 {
0129 typedef def_overflow_handler overflow_policy;
0130 typedef UseInternalRangeChecker range_checking_policy;
0131 typedef Trunc<float> rounding_policy;
0132 };
0133
0134 template <>
0135 struct numeric_cast_traits
0136 <
0137 char
0138 , double
0139 >
0140 {
0141 typedef def_overflow_handler overflow_policy;
0142 typedef UseInternalRangeChecker range_checking_policy;
0143 typedef Trunc<double> rounding_policy;
0144 };
0145
0146 template <>
0147 struct numeric_cast_traits
0148 <
0149 char
0150 , long double
0151 >
0152 {
0153 typedef def_overflow_handler overflow_policy;
0154 typedef UseInternalRangeChecker range_checking_policy;
0155 typedef Trunc<long double> rounding_policy;
0156 };
0157
0158 template <>
0159 struct numeric_cast_traits
0160 <
0161 signed char
0162 , char
0163 >
0164 {
0165 typedef def_overflow_handler overflow_policy;
0166 typedef UseInternalRangeChecker range_checking_policy;
0167 typedef Trunc<char> rounding_policy;
0168 };
0169
0170 template <>
0171 struct numeric_cast_traits
0172 <
0173 signed char
0174 , signed char
0175 >
0176 {
0177 typedef def_overflow_handler overflow_policy;
0178 typedef UseInternalRangeChecker range_checking_policy;
0179 typedef Trunc<signed char> rounding_policy;
0180 };
0181
0182 template <>
0183 struct numeric_cast_traits
0184 <
0185 signed char
0186 , unsigned char
0187 >
0188 {
0189 typedef def_overflow_handler overflow_policy;
0190 typedef UseInternalRangeChecker range_checking_policy;
0191 typedef Trunc<unsigned char> rounding_policy;
0192 };
0193
0194 template <>
0195 struct numeric_cast_traits
0196 <
0197 signed char
0198 , short
0199 >
0200 {
0201 typedef def_overflow_handler overflow_policy;
0202 typedef UseInternalRangeChecker range_checking_policy;
0203 typedef Trunc<short> rounding_policy;
0204 };
0205
0206 template <>
0207 struct numeric_cast_traits
0208 <
0209 signed char
0210 , unsigned short
0211 >
0212 {
0213 typedef def_overflow_handler overflow_policy;
0214 typedef UseInternalRangeChecker range_checking_policy;
0215 typedef Trunc<unsigned short> rounding_policy;
0216 };
0217
0218 template <>
0219 struct numeric_cast_traits
0220 <
0221 signed char
0222 , int
0223 >
0224 {
0225 typedef def_overflow_handler overflow_policy;
0226 typedef UseInternalRangeChecker range_checking_policy;
0227 typedef Trunc<int> rounding_policy;
0228 };
0229
0230 template <>
0231 struct numeric_cast_traits
0232 <
0233 signed char
0234 , unsigned int
0235 >
0236 {
0237 typedef def_overflow_handler overflow_policy;
0238 typedef UseInternalRangeChecker range_checking_policy;
0239 typedef Trunc<unsigned int> rounding_policy;
0240 };
0241
0242 template <>
0243 struct numeric_cast_traits
0244 <
0245 signed char
0246 , long
0247 >
0248 {
0249 typedef def_overflow_handler overflow_policy;
0250 typedef UseInternalRangeChecker range_checking_policy;
0251 typedef Trunc<long> rounding_policy;
0252 };
0253
0254 template <>
0255 struct numeric_cast_traits
0256 <
0257 signed char
0258 , unsigned long
0259 >
0260 {
0261 typedef def_overflow_handler overflow_policy;
0262 typedef UseInternalRangeChecker range_checking_policy;
0263 typedef Trunc<unsigned long> rounding_policy;
0264 };
0265
0266 template <>
0267 struct numeric_cast_traits
0268 <
0269 signed char
0270 , float
0271 >
0272 {
0273 typedef def_overflow_handler overflow_policy;
0274 typedef UseInternalRangeChecker range_checking_policy;
0275 typedef Trunc<float> rounding_policy;
0276 };
0277
0278 template <>
0279 struct numeric_cast_traits
0280 <
0281 signed char
0282 , double
0283 >
0284 {
0285 typedef def_overflow_handler overflow_policy;
0286 typedef UseInternalRangeChecker range_checking_policy;
0287 typedef Trunc<double> rounding_policy;
0288 };
0289
0290 template <>
0291 struct numeric_cast_traits
0292 <
0293 signed char
0294 , long double
0295 >
0296 {
0297 typedef def_overflow_handler overflow_policy;
0298 typedef UseInternalRangeChecker range_checking_policy;
0299 typedef Trunc<long double> rounding_policy;
0300 };
0301
0302 template <>
0303 struct numeric_cast_traits
0304 <
0305 unsigned char
0306 , char
0307 >
0308 {
0309 typedef def_overflow_handler overflow_policy;
0310 typedef UseInternalRangeChecker range_checking_policy;
0311 typedef Trunc<char> rounding_policy;
0312 };
0313
0314 template <>
0315 struct numeric_cast_traits
0316 <
0317 unsigned char
0318 , signed char
0319 >
0320 {
0321 typedef def_overflow_handler overflow_policy;
0322 typedef UseInternalRangeChecker range_checking_policy;
0323 typedef Trunc<signed char> rounding_policy;
0324 };
0325
0326 template <>
0327 struct numeric_cast_traits
0328 <
0329 unsigned char
0330 , unsigned char
0331 >
0332 {
0333 typedef def_overflow_handler overflow_policy;
0334 typedef UseInternalRangeChecker range_checking_policy;
0335 typedef Trunc<unsigned char> rounding_policy;
0336 };
0337
0338 template <>
0339 struct numeric_cast_traits
0340 <
0341 unsigned char
0342 , short
0343 >
0344 {
0345 typedef def_overflow_handler overflow_policy;
0346 typedef UseInternalRangeChecker range_checking_policy;
0347 typedef Trunc<short> rounding_policy;
0348 };
0349
0350 template <>
0351 struct numeric_cast_traits
0352 <
0353 unsigned char
0354 , unsigned short
0355 >
0356 {
0357 typedef def_overflow_handler overflow_policy;
0358 typedef UseInternalRangeChecker range_checking_policy;
0359 typedef Trunc<unsigned short> rounding_policy;
0360 };
0361
0362 template <>
0363 struct numeric_cast_traits
0364 <
0365 unsigned char
0366 , int
0367 >
0368 {
0369 typedef def_overflow_handler overflow_policy;
0370 typedef UseInternalRangeChecker range_checking_policy;
0371 typedef Trunc<int> rounding_policy;
0372 };
0373
0374 template <>
0375 struct numeric_cast_traits
0376 <
0377 unsigned char
0378 , unsigned int
0379 >
0380 {
0381 typedef def_overflow_handler overflow_policy;
0382 typedef UseInternalRangeChecker range_checking_policy;
0383 typedef Trunc<unsigned int> rounding_policy;
0384 };
0385
0386 template <>
0387 struct numeric_cast_traits
0388 <
0389 unsigned char
0390 , long
0391 >
0392 {
0393 typedef def_overflow_handler overflow_policy;
0394 typedef UseInternalRangeChecker range_checking_policy;
0395 typedef Trunc<long> rounding_policy;
0396 };
0397
0398 template <>
0399 struct numeric_cast_traits
0400 <
0401 unsigned char
0402 , unsigned long
0403 >
0404 {
0405 typedef def_overflow_handler overflow_policy;
0406 typedef UseInternalRangeChecker range_checking_policy;
0407 typedef Trunc<unsigned long> rounding_policy;
0408 };
0409
0410 template <>
0411 struct numeric_cast_traits
0412 <
0413 unsigned char
0414 , float
0415 >
0416 {
0417 typedef def_overflow_handler overflow_policy;
0418 typedef UseInternalRangeChecker range_checking_policy;
0419 typedef Trunc<float> rounding_policy;
0420 };
0421
0422 template <>
0423 struct numeric_cast_traits
0424 <
0425 unsigned char
0426 , double
0427 >
0428 {
0429 typedef def_overflow_handler overflow_policy;
0430 typedef UseInternalRangeChecker range_checking_policy;
0431 typedef Trunc<double> rounding_policy;
0432 };
0433
0434 template <>
0435 struct numeric_cast_traits
0436 <
0437 unsigned char
0438 , long double
0439 >
0440 {
0441 typedef def_overflow_handler overflow_policy;
0442 typedef UseInternalRangeChecker range_checking_policy;
0443 typedef Trunc<long double> rounding_policy;
0444 };
0445
0446 template <>
0447 struct numeric_cast_traits
0448 <
0449 short
0450 , char
0451 >
0452 {
0453 typedef def_overflow_handler overflow_policy;
0454 typedef UseInternalRangeChecker range_checking_policy;
0455 typedef Trunc<char> rounding_policy;
0456 };
0457
0458 template <>
0459 struct numeric_cast_traits
0460 <
0461 short
0462 , signed char
0463 >
0464 {
0465 typedef def_overflow_handler overflow_policy;
0466 typedef UseInternalRangeChecker range_checking_policy;
0467 typedef Trunc<signed char> rounding_policy;
0468 };
0469
0470 template <>
0471 struct numeric_cast_traits
0472 <
0473 short
0474 , unsigned char
0475 >
0476 {
0477 typedef def_overflow_handler overflow_policy;
0478 typedef UseInternalRangeChecker range_checking_policy;
0479 typedef Trunc<unsigned char> rounding_policy;
0480 };
0481
0482 template <>
0483 struct numeric_cast_traits
0484 <
0485 short
0486 , short
0487 >
0488 {
0489 typedef def_overflow_handler overflow_policy;
0490 typedef UseInternalRangeChecker range_checking_policy;
0491 typedef Trunc<short> rounding_policy;
0492 };
0493
0494 template <>
0495 struct numeric_cast_traits
0496 <
0497 short
0498 , unsigned short
0499 >
0500 {
0501 typedef def_overflow_handler overflow_policy;
0502 typedef UseInternalRangeChecker range_checking_policy;
0503 typedef Trunc<unsigned short> rounding_policy;
0504 };
0505
0506 template <>
0507 struct numeric_cast_traits
0508 <
0509 short
0510 , int
0511 >
0512 {
0513 typedef def_overflow_handler overflow_policy;
0514 typedef UseInternalRangeChecker range_checking_policy;
0515 typedef Trunc<int> rounding_policy;
0516 };
0517
0518 template <>
0519 struct numeric_cast_traits
0520 <
0521 short
0522 , unsigned int
0523 >
0524 {
0525 typedef def_overflow_handler overflow_policy;
0526 typedef UseInternalRangeChecker range_checking_policy;
0527 typedef Trunc<unsigned int> rounding_policy;
0528 };
0529
0530 template <>
0531 struct numeric_cast_traits
0532 <
0533 short
0534 , long
0535 >
0536 {
0537 typedef def_overflow_handler overflow_policy;
0538 typedef UseInternalRangeChecker range_checking_policy;
0539 typedef Trunc<long> rounding_policy;
0540 };
0541
0542 template <>
0543 struct numeric_cast_traits
0544 <
0545 short
0546 , unsigned long
0547 >
0548 {
0549 typedef def_overflow_handler overflow_policy;
0550 typedef UseInternalRangeChecker range_checking_policy;
0551 typedef Trunc<unsigned long> rounding_policy;
0552 };
0553
0554 template <>
0555 struct numeric_cast_traits
0556 <
0557 short
0558 , float
0559 >
0560 {
0561 typedef def_overflow_handler overflow_policy;
0562 typedef UseInternalRangeChecker range_checking_policy;
0563 typedef Trunc<float> rounding_policy;
0564 };
0565
0566 template <>
0567 struct numeric_cast_traits
0568 <
0569 short
0570 , double
0571 >
0572 {
0573 typedef def_overflow_handler overflow_policy;
0574 typedef UseInternalRangeChecker range_checking_policy;
0575 typedef Trunc<double> rounding_policy;
0576 };
0577
0578 template <>
0579 struct numeric_cast_traits
0580 <
0581 short
0582 , long double
0583 >
0584 {
0585 typedef def_overflow_handler overflow_policy;
0586 typedef UseInternalRangeChecker range_checking_policy;
0587 typedef Trunc<long double> rounding_policy;
0588 };
0589
0590 template <>
0591 struct numeric_cast_traits
0592 <
0593 unsigned short
0594 , char
0595 >
0596 {
0597 typedef def_overflow_handler overflow_policy;
0598 typedef UseInternalRangeChecker range_checking_policy;
0599 typedef Trunc<char> rounding_policy;
0600 };
0601
0602 template <>
0603 struct numeric_cast_traits
0604 <
0605 unsigned short
0606 , signed char
0607 >
0608 {
0609 typedef def_overflow_handler overflow_policy;
0610 typedef UseInternalRangeChecker range_checking_policy;
0611 typedef Trunc<signed char> rounding_policy;
0612 };
0613
0614 template <>
0615 struct numeric_cast_traits
0616 <
0617 unsigned short
0618 , unsigned char
0619 >
0620 {
0621 typedef def_overflow_handler overflow_policy;
0622 typedef UseInternalRangeChecker range_checking_policy;
0623 typedef Trunc<unsigned char> rounding_policy;
0624 };
0625
0626 template <>
0627 struct numeric_cast_traits
0628 <
0629 unsigned short
0630 , short
0631 >
0632 {
0633 typedef def_overflow_handler overflow_policy;
0634 typedef UseInternalRangeChecker range_checking_policy;
0635 typedef Trunc<short> rounding_policy;
0636 };
0637
0638 template <>
0639 struct numeric_cast_traits
0640 <
0641 unsigned short
0642 , unsigned short
0643 >
0644 {
0645 typedef def_overflow_handler overflow_policy;
0646 typedef UseInternalRangeChecker range_checking_policy;
0647 typedef Trunc<unsigned short> rounding_policy;
0648 };
0649
0650 template <>
0651 struct numeric_cast_traits
0652 <
0653 unsigned short
0654 , int
0655 >
0656 {
0657 typedef def_overflow_handler overflow_policy;
0658 typedef UseInternalRangeChecker range_checking_policy;
0659 typedef Trunc<int> rounding_policy;
0660 };
0661
0662 template <>
0663 struct numeric_cast_traits
0664 <
0665 unsigned short
0666 , unsigned int
0667 >
0668 {
0669 typedef def_overflow_handler overflow_policy;
0670 typedef UseInternalRangeChecker range_checking_policy;
0671 typedef Trunc<unsigned int> rounding_policy;
0672 };
0673
0674 template <>
0675 struct numeric_cast_traits
0676 <
0677 unsigned short
0678 , long
0679 >
0680 {
0681 typedef def_overflow_handler overflow_policy;
0682 typedef UseInternalRangeChecker range_checking_policy;
0683 typedef Trunc<long> rounding_policy;
0684 };
0685
0686 template <>
0687 struct numeric_cast_traits
0688 <
0689 unsigned short
0690 , unsigned long
0691 >
0692 {
0693 typedef def_overflow_handler overflow_policy;
0694 typedef UseInternalRangeChecker range_checking_policy;
0695 typedef Trunc<unsigned long> rounding_policy;
0696 };
0697
0698 template <>
0699 struct numeric_cast_traits
0700 <
0701 unsigned short
0702 , float
0703 >
0704 {
0705 typedef def_overflow_handler overflow_policy;
0706 typedef UseInternalRangeChecker range_checking_policy;
0707 typedef Trunc<float> rounding_policy;
0708 };
0709
0710 template <>
0711 struct numeric_cast_traits
0712 <
0713 unsigned short
0714 , double
0715 >
0716 {
0717 typedef def_overflow_handler overflow_policy;
0718 typedef UseInternalRangeChecker range_checking_policy;
0719 typedef Trunc<double> rounding_policy;
0720 };
0721
0722 template <>
0723 struct numeric_cast_traits
0724 <
0725 unsigned short
0726 , long double
0727 >
0728 {
0729 typedef def_overflow_handler overflow_policy;
0730 typedef UseInternalRangeChecker range_checking_policy;
0731 typedef Trunc<long double> rounding_policy;
0732 };
0733
0734 template <>
0735 struct numeric_cast_traits
0736 <
0737 int
0738 , char
0739 >
0740 {
0741 typedef def_overflow_handler overflow_policy;
0742 typedef UseInternalRangeChecker range_checking_policy;
0743 typedef Trunc<char> rounding_policy;
0744 };
0745
0746 template <>
0747 struct numeric_cast_traits
0748 <
0749 int
0750 , signed char
0751 >
0752 {
0753 typedef def_overflow_handler overflow_policy;
0754 typedef UseInternalRangeChecker range_checking_policy;
0755 typedef Trunc<signed char> rounding_policy;
0756 };
0757
0758 template <>
0759 struct numeric_cast_traits
0760 <
0761 int
0762 , unsigned char
0763 >
0764 {
0765 typedef def_overflow_handler overflow_policy;
0766 typedef UseInternalRangeChecker range_checking_policy;
0767 typedef Trunc<unsigned char> rounding_policy;
0768 };
0769
0770 template <>
0771 struct numeric_cast_traits
0772 <
0773 int
0774 , short
0775 >
0776 {
0777 typedef def_overflow_handler overflow_policy;
0778 typedef UseInternalRangeChecker range_checking_policy;
0779 typedef Trunc<short> rounding_policy;
0780 };
0781
0782 template <>
0783 struct numeric_cast_traits
0784 <
0785 int
0786 , unsigned short
0787 >
0788 {
0789 typedef def_overflow_handler overflow_policy;
0790 typedef UseInternalRangeChecker range_checking_policy;
0791 typedef Trunc<unsigned short> rounding_policy;
0792 };
0793
0794 template <>
0795 struct numeric_cast_traits
0796 <
0797 int
0798 , int
0799 >
0800 {
0801 typedef def_overflow_handler overflow_policy;
0802 typedef UseInternalRangeChecker range_checking_policy;
0803 typedef Trunc<int> rounding_policy;
0804 };
0805
0806 template <>
0807 struct numeric_cast_traits
0808 <
0809 int
0810 , unsigned int
0811 >
0812 {
0813 typedef def_overflow_handler overflow_policy;
0814 typedef UseInternalRangeChecker range_checking_policy;
0815 typedef Trunc<unsigned int> rounding_policy;
0816 };
0817
0818 template <>
0819 struct numeric_cast_traits
0820 <
0821 int
0822 , long
0823 >
0824 {
0825 typedef def_overflow_handler overflow_policy;
0826 typedef UseInternalRangeChecker range_checking_policy;
0827 typedef Trunc<long> rounding_policy;
0828 };
0829
0830 template <>
0831 struct numeric_cast_traits
0832 <
0833 int
0834 , unsigned long
0835 >
0836 {
0837 typedef def_overflow_handler overflow_policy;
0838 typedef UseInternalRangeChecker range_checking_policy;
0839 typedef Trunc<unsigned long> rounding_policy;
0840 };
0841
0842 template <>
0843 struct numeric_cast_traits
0844 <
0845 int
0846 , float
0847 >
0848 {
0849 typedef def_overflow_handler overflow_policy;
0850 typedef UseInternalRangeChecker range_checking_policy;
0851 typedef Trunc<float> rounding_policy;
0852 };
0853
0854 template <>
0855 struct numeric_cast_traits
0856 <
0857 int
0858 , double
0859 >
0860 {
0861 typedef def_overflow_handler overflow_policy;
0862 typedef UseInternalRangeChecker range_checking_policy;
0863 typedef Trunc<double> rounding_policy;
0864 };
0865
0866 template <>
0867 struct numeric_cast_traits
0868 <
0869 int
0870 , long double
0871 >
0872 {
0873 typedef def_overflow_handler overflow_policy;
0874 typedef UseInternalRangeChecker range_checking_policy;
0875 typedef Trunc<long double> rounding_policy;
0876 };
0877
0878 template <>
0879 struct numeric_cast_traits
0880 <
0881 unsigned int
0882 , char
0883 >
0884 {
0885 typedef def_overflow_handler overflow_policy;
0886 typedef UseInternalRangeChecker range_checking_policy;
0887 typedef Trunc<char> rounding_policy;
0888 };
0889
0890 template <>
0891 struct numeric_cast_traits
0892 <
0893 unsigned int
0894 , signed char
0895 >
0896 {
0897 typedef def_overflow_handler overflow_policy;
0898 typedef UseInternalRangeChecker range_checking_policy;
0899 typedef Trunc<signed char> rounding_policy;
0900 };
0901
0902 template <>
0903 struct numeric_cast_traits
0904 <
0905 unsigned int
0906 , unsigned char
0907 >
0908 {
0909 typedef def_overflow_handler overflow_policy;
0910 typedef UseInternalRangeChecker range_checking_policy;
0911 typedef Trunc<unsigned char> rounding_policy;
0912 };
0913
0914 template <>
0915 struct numeric_cast_traits
0916 <
0917 unsigned int
0918 , short
0919 >
0920 {
0921 typedef def_overflow_handler overflow_policy;
0922 typedef UseInternalRangeChecker range_checking_policy;
0923 typedef Trunc<short> rounding_policy;
0924 };
0925
0926 template <>
0927 struct numeric_cast_traits
0928 <
0929 unsigned int
0930 , unsigned short
0931 >
0932 {
0933 typedef def_overflow_handler overflow_policy;
0934 typedef UseInternalRangeChecker range_checking_policy;
0935 typedef Trunc<unsigned short> rounding_policy;
0936 };
0937
0938 template <>
0939 struct numeric_cast_traits
0940 <
0941 unsigned int
0942 , int
0943 >
0944 {
0945 typedef def_overflow_handler overflow_policy;
0946 typedef UseInternalRangeChecker range_checking_policy;
0947 typedef Trunc<int> rounding_policy;
0948 };
0949
0950 template <>
0951 struct numeric_cast_traits
0952 <
0953 unsigned int
0954 , unsigned int
0955 >
0956 {
0957 typedef def_overflow_handler overflow_policy;
0958 typedef UseInternalRangeChecker range_checking_policy;
0959 typedef Trunc<unsigned int> rounding_policy;
0960 };
0961
0962 template <>
0963 struct numeric_cast_traits
0964 <
0965 unsigned int
0966 , long
0967 >
0968 {
0969 typedef def_overflow_handler overflow_policy;
0970 typedef UseInternalRangeChecker range_checking_policy;
0971 typedef Trunc<long> rounding_policy;
0972 };
0973
0974 template <>
0975 struct numeric_cast_traits
0976 <
0977 unsigned int
0978 , unsigned long
0979 >
0980 {
0981 typedef def_overflow_handler overflow_policy;
0982 typedef UseInternalRangeChecker range_checking_policy;
0983 typedef Trunc<unsigned long> rounding_policy;
0984 };
0985
0986 template <>
0987 struct numeric_cast_traits
0988 <
0989 unsigned int
0990 , float
0991 >
0992 {
0993 typedef def_overflow_handler overflow_policy;
0994 typedef UseInternalRangeChecker range_checking_policy;
0995 typedef Trunc<float> rounding_policy;
0996 };
0997
0998 template <>
0999 struct numeric_cast_traits
1000 <
1001 unsigned int
1002 , double
1003 >
1004 {
1005 typedef def_overflow_handler overflow_policy;
1006 typedef UseInternalRangeChecker range_checking_policy;
1007 typedef Trunc<double> rounding_policy;
1008 };
1009
1010 template <>
1011 struct numeric_cast_traits
1012 <
1013 unsigned int
1014 , long double
1015 >
1016 {
1017 typedef def_overflow_handler overflow_policy;
1018 typedef UseInternalRangeChecker range_checking_policy;
1019 typedef Trunc<long double> rounding_policy;
1020 };
1021
1022 template <>
1023 struct numeric_cast_traits
1024 <
1025 long
1026 , char
1027 >
1028 {
1029 typedef def_overflow_handler overflow_policy;
1030 typedef UseInternalRangeChecker range_checking_policy;
1031 typedef Trunc<char> rounding_policy;
1032 };
1033
1034 template <>
1035 struct numeric_cast_traits
1036 <
1037 long
1038 , signed char
1039 >
1040 {
1041 typedef def_overflow_handler overflow_policy;
1042 typedef UseInternalRangeChecker range_checking_policy;
1043 typedef Trunc<signed char> rounding_policy;
1044 };
1045
1046 template <>
1047 struct numeric_cast_traits
1048 <
1049 long
1050 , unsigned char
1051 >
1052 {
1053 typedef def_overflow_handler overflow_policy;
1054 typedef UseInternalRangeChecker range_checking_policy;
1055 typedef Trunc<unsigned char> rounding_policy;
1056 };
1057
1058 template <>
1059 struct numeric_cast_traits
1060 <
1061 long
1062 , short
1063 >
1064 {
1065 typedef def_overflow_handler overflow_policy;
1066 typedef UseInternalRangeChecker range_checking_policy;
1067 typedef Trunc<short> rounding_policy;
1068 };
1069
1070 template <>
1071 struct numeric_cast_traits
1072 <
1073 long
1074 , unsigned short
1075 >
1076 {
1077 typedef def_overflow_handler overflow_policy;
1078 typedef UseInternalRangeChecker range_checking_policy;
1079 typedef Trunc<unsigned short> rounding_policy;
1080 };
1081
1082 template <>
1083 struct numeric_cast_traits
1084 <
1085 long
1086 , int
1087 >
1088 {
1089 typedef def_overflow_handler overflow_policy;
1090 typedef UseInternalRangeChecker range_checking_policy;
1091 typedef Trunc<int> rounding_policy;
1092 };
1093
1094 template <>
1095 struct numeric_cast_traits
1096 <
1097 long
1098 , unsigned int
1099 >
1100 {
1101 typedef def_overflow_handler overflow_policy;
1102 typedef UseInternalRangeChecker range_checking_policy;
1103 typedef Trunc<unsigned int> rounding_policy;
1104 };
1105
1106 template <>
1107 struct numeric_cast_traits
1108 <
1109 long
1110 , long
1111 >
1112 {
1113 typedef def_overflow_handler overflow_policy;
1114 typedef UseInternalRangeChecker range_checking_policy;
1115 typedef Trunc<long> rounding_policy;
1116 };
1117
1118 template <>
1119 struct numeric_cast_traits
1120 <
1121 long
1122 , unsigned long
1123 >
1124 {
1125 typedef def_overflow_handler overflow_policy;
1126 typedef UseInternalRangeChecker range_checking_policy;
1127 typedef Trunc<unsigned long> rounding_policy;
1128 };
1129
1130 template <>
1131 struct numeric_cast_traits
1132 <
1133 long
1134 , float
1135 >
1136 {
1137 typedef def_overflow_handler overflow_policy;
1138 typedef UseInternalRangeChecker range_checking_policy;
1139 typedef Trunc<float> rounding_policy;
1140 };
1141
1142 template <>
1143 struct numeric_cast_traits
1144 <
1145 long
1146 , double
1147 >
1148 {
1149 typedef def_overflow_handler overflow_policy;
1150 typedef UseInternalRangeChecker range_checking_policy;
1151 typedef Trunc<double> rounding_policy;
1152 };
1153
1154 template <>
1155 struct numeric_cast_traits
1156 <
1157 long
1158 , long double
1159 >
1160 {
1161 typedef def_overflow_handler overflow_policy;
1162 typedef UseInternalRangeChecker range_checking_policy;
1163 typedef Trunc<long double> rounding_policy;
1164 };
1165
1166 template <>
1167 struct numeric_cast_traits
1168 <
1169 unsigned long
1170 , char
1171 >
1172 {
1173 typedef def_overflow_handler overflow_policy;
1174 typedef UseInternalRangeChecker range_checking_policy;
1175 typedef Trunc<char> rounding_policy;
1176 };
1177
1178 template <>
1179 struct numeric_cast_traits
1180 <
1181 unsigned long
1182 , signed char
1183 >
1184 {
1185 typedef def_overflow_handler overflow_policy;
1186 typedef UseInternalRangeChecker range_checking_policy;
1187 typedef Trunc<signed char> rounding_policy;
1188 };
1189
1190 template <>
1191 struct numeric_cast_traits
1192 <
1193 unsigned long
1194 , unsigned char
1195 >
1196 {
1197 typedef def_overflow_handler overflow_policy;
1198 typedef UseInternalRangeChecker range_checking_policy;
1199 typedef Trunc<unsigned char> rounding_policy;
1200 };
1201
1202 template <>
1203 struct numeric_cast_traits
1204 <
1205 unsigned long
1206 , short
1207 >
1208 {
1209 typedef def_overflow_handler overflow_policy;
1210 typedef UseInternalRangeChecker range_checking_policy;
1211 typedef Trunc<short> rounding_policy;
1212 };
1213
1214 template <>
1215 struct numeric_cast_traits
1216 <
1217 unsigned long
1218 , unsigned short
1219 >
1220 {
1221 typedef def_overflow_handler overflow_policy;
1222 typedef UseInternalRangeChecker range_checking_policy;
1223 typedef Trunc<unsigned short> rounding_policy;
1224 };
1225
1226 template <>
1227 struct numeric_cast_traits
1228 <
1229 unsigned long
1230 , int
1231 >
1232 {
1233 typedef def_overflow_handler overflow_policy;
1234 typedef UseInternalRangeChecker range_checking_policy;
1235 typedef Trunc<int> rounding_policy;
1236 };
1237
1238 template <>
1239 struct numeric_cast_traits
1240 <
1241 unsigned long
1242 , unsigned int
1243 >
1244 {
1245 typedef def_overflow_handler overflow_policy;
1246 typedef UseInternalRangeChecker range_checking_policy;
1247 typedef Trunc<unsigned int> rounding_policy;
1248 };
1249
1250 template <>
1251 struct numeric_cast_traits
1252 <
1253 unsigned long
1254 , long
1255 >
1256 {
1257 typedef def_overflow_handler overflow_policy;
1258 typedef UseInternalRangeChecker range_checking_policy;
1259 typedef Trunc<long> rounding_policy;
1260 };
1261
1262 template <>
1263 struct numeric_cast_traits
1264 <
1265 unsigned long
1266 , unsigned long
1267 >
1268 {
1269 typedef def_overflow_handler overflow_policy;
1270 typedef UseInternalRangeChecker range_checking_policy;
1271 typedef Trunc<unsigned long> rounding_policy;
1272 };
1273
1274 template <>
1275 struct numeric_cast_traits
1276 <
1277 unsigned long
1278 , float
1279 >
1280 {
1281 typedef def_overflow_handler overflow_policy;
1282 typedef UseInternalRangeChecker range_checking_policy;
1283 typedef Trunc<float> rounding_policy;
1284 };
1285
1286 template <>
1287 struct numeric_cast_traits
1288 <
1289 unsigned long
1290 , double
1291 >
1292 {
1293 typedef def_overflow_handler overflow_policy;
1294 typedef UseInternalRangeChecker range_checking_policy;
1295 typedef Trunc<double> rounding_policy;
1296 };
1297
1298 template <>
1299 struct numeric_cast_traits
1300 <
1301 unsigned long
1302 , long double
1303 >
1304 {
1305 typedef def_overflow_handler overflow_policy;
1306 typedef UseInternalRangeChecker range_checking_policy;
1307 typedef Trunc<long double> rounding_policy;
1308 };
1309
1310 template <>
1311 struct numeric_cast_traits
1312 <
1313 float
1314 , char
1315 >
1316 {
1317 typedef def_overflow_handler overflow_policy;
1318 typedef UseInternalRangeChecker range_checking_policy;
1319 typedef Trunc<char> rounding_policy;
1320 };
1321
1322 template <>
1323 struct numeric_cast_traits
1324 <
1325 float
1326 , signed char
1327 >
1328 {
1329 typedef def_overflow_handler overflow_policy;
1330 typedef UseInternalRangeChecker range_checking_policy;
1331 typedef Trunc<signed char> rounding_policy;
1332 };
1333
1334 template <>
1335 struct numeric_cast_traits
1336 <
1337 float
1338 , unsigned char
1339 >
1340 {
1341 typedef def_overflow_handler overflow_policy;
1342 typedef UseInternalRangeChecker range_checking_policy;
1343 typedef Trunc<unsigned char> rounding_policy;
1344 };
1345
1346 template <>
1347 struct numeric_cast_traits
1348 <
1349 float
1350 , short
1351 >
1352 {
1353 typedef def_overflow_handler overflow_policy;
1354 typedef UseInternalRangeChecker range_checking_policy;
1355 typedef Trunc<short> rounding_policy;
1356 };
1357
1358 template <>
1359 struct numeric_cast_traits
1360 <
1361 float
1362 , unsigned short
1363 >
1364 {
1365 typedef def_overflow_handler overflow_policy;
1366 typedef UseInternalRangeChecker range_checking_policy;
1367 typedef Trunc<unsigned short> rounding_policy;
1368 };
1369
1370 template <>
1371 struct numeric_cast_traits
1372 <
1373 float
1374 , int
1375 >
1376 {
1377 typedef def_overflow_handler overflow_policy;
1378 typedef UseInternalRangeChecker range_checking_policy;
1379 typedef Trunc<int> rounding_policy;
1380 };
1381
1382 template <>
1383 struct numeric_cast_traits
1384 <
1385 float
1386 , unsigned int
1387 >
1388 {
1389 typedef def_overflow_handler overflow_policy;
1390 typedef UseInternalRangeChecker range_checking_policy;
1391 typedef Trunc<unsigned int> rounding_policy;
1392 };
1393
1394 template <>
1395 struct numeric_cast_traits
1396 <
1397 float
1398 , long
1399 >
1400 {
1401 typedef def_overflow_handler overflow_policy;
1402 typedef UseInternalRangeChecker range_checking_policy;
1403 typedef Trunc<long> rounding_policy;
1404 };
1405
1406 template <>
1407 struct numeric_cast_traits
1408 <
1409 float
1410 , unsigned long
1411 >
1412 {
1413 typedef def_overflow_handler overflow_policy;
1414 typedef UseInternalRangeChecker range_checking_policy;
1415 typedef Trunc<unsigned long> rounding_policy;
1416 };
1417
1418 template <>
1419 struct numeric_cast_traits
1420 <
1421 float
1422 , float
1423 >
1424 {
1425 typedef def_overflow_handler overflow_policy;
1426 typedef UseInternalRangeChecker range_checking_policy;
1427 typedef Trunc<float> rounding_policy;
1428 };
1429
1430 template <>
1431 struct numeric_cast_traits
1432 <
1433 float
1434 , double
1435 >
1436 {
1437 typedef def_overflow_handler overflow_policy;
1438 typedef UseInternalRangeChecker range_checking_policy;
1439 typedef Trunc<double> rounding_policy;
1440 };
1441
1442 template <>
1443 struct numeric_cast_traits
1444 <
1445 float
1446 , long double
1447 >
1448 {
1449 typedef def_overflow_handler overflow_policy;
1450 typedef UseInternalRangeChecker range_checking_policy;
1451 typedef Trunc<long double> rounding_policy;
1452 };
1453
1454 template <>
1455 struct numeric_cast_traits
1456 <
1457 double
1458 , char
1459 >
1460 {
1461 typedef def_overflow_handler overflow_policy;
1462 typedef UseInternalRangeChecker range_checking_policy;
1463 typedef Trunc<char> rounding_policy;
1464 };
1465
1466 template <>
1467 struct numeric_cast_traits
1468 <
1469 double
1470 , signed char
1471 >
1472 {
1473 typedef def_overflow_handler overflow_policy;
1474 typedef UseInternalRangeChecker range_checking_policy;
1475 typedef Trunc<signed char> rounding_policy;
1476 };
1477
1478 template <>
1479 struct numeric_cast_traits
1480 <
1481 double
1482 , unsigned char
1483 >
1484 {
1485 typedef def_overflow_handler overflow_policy;
1486 typedef UseInternalRangeChecker range_checking_policy;
1487 typedef Trunc<unsigned char> rounding_policy;
1488 };
1489
1490 template <>
1491 struct numeric_cast_traits
1492 <
1493 double
1494 , short
1495 >
1496 {
1497 typedef def_overflow_handler overflow_policy;
1498 typedef UseInternalRangeChecker range_checking_policy;
1499 typedef Trunc<short> rounding_policy;
1500 };
1501
1502 template <>
1503 struct numeric_cast_traits
1504 <
1505 double
1506 , unsigned short
1507 >
1508 {
1509 typedef def_overflow_handler overflow_policy;
1510 typedef UseInternalRangeChecker range_checking_policy;
1511 typedef Trunc<unsigned short> rounding_policy;
1512 };
1513
1514 template <>
1515 struct numeric_cast_traits
1516 <
1517 double
1518 , int
1519 >
1520 {
1521 typedef def_overflow_handler overflow_policy;
1522 typedef UseInternalRangeChecker range_checking_policy;
1523 typedef Trunc<int> rounding_policy;
1524 };
1525
1526 template <>
1527 struct numeric_cast_traits
1528 <
1529 double
1530 , unsigned int
1531 >
1532 {
1533 typedef def_overflow_handler overflow_policy;
1534 typedef UseInternalRangeChecker range_checking_policy;
1535 typedef Trunc<unsigned int> rounding_policy;
1536 };
1537
1538 template <>
1539 struct numeric_cast_traits
1540 <
1541 double
1542 , long
1543 >
1544 {
1545 typedef def_overflow_handler overflow_policy;
1546 typedef UseInternalRangeChecker range_checking_policy;
1547 typedef Trunc<long> rounding_policy;
1548 };
1549
1550 template <>
1551 struct numeric_cast_traits
1552 <
1553 double
1554 , unsigned long
1555 >
1556 {
1557 typedef def_overflow_handler overflow_policy;
1558 typedef UseInternalRangeChecker range_checking_policy;
1559 typedef Trunc<unsigned long> rounding_policy;
1560 };
1561
1562 template <>
1563 struct numeric_cast_traits
1564 <
1565 double
1566 , float
1567 >
1568 {
1569 typedef def_overflow_handler overflow_policy;
1570 typedef UseInternalRangeChecker range_checking_policy;
1571 typedef Trunc<float> rounding_policy;
1572 };
1573
1574 template <>
1575 struct numeric_cast_traits
1576 <
1577 double
1578 , double
1579 >
1580 {
1581 typedef def_overflow_handler overflow_policy;
1582 typedef UseInternalRangeChecker range_checking_policy;
1583 typedef Trunc<double> rounding_policy;
1584 };
1585
1586 template <>
1587 struct numeric_cast_traits
1588 <
1589 double
1590 , long double
1591 >
1592 {
1593 typedef def_overflow_handler overflow_policy;
1594 typedef UseInternalRangeChecker range_checking_policy;
1595 typedef Trunc<long double> rounding_policy;
1596 };
1597
1598 template <>
1599 struct numeric_cast_traits
1600 <
1601 long double
1602 , char
1603 >
1604 {
1605 typedef def_overflow_handler overflow_policy;
1606 typedef UseInternalRangeChecker range_checking_policy;
1607 typedef Trunc<char> rounding_policy;
1608 };
1609
1610 template <>
1611 struct numeric_cast_traits
1612 <
1613 long double
1614 , signed char
1615 >
1616 {
1617 typedef def_overflow_handler overflow_policy;
1618 typedef UseInternalRangeChecker range_checking_policy;
1619 typedef Trunc<signed char> rounding_policy;
1620 };
1621
1622 template <>
1623 struct numeric_cast_traits
1624 <
1625 long double
1626 , unsigned char
1627 >
1628 {
1629 typedef def_overflow_handler overflow_policy;
1630 typedef UseInternalRangeChecker range_checking_policy;
1631 typedef Trunc<unsigned char> rounding_policy;
1632 };
1633
1634 template <>
1635 struct numeric_cast_traits
1636 <
1637 long double
1638 , short
1639 >
1640 {
1641 typedef def_overflow_handler overflow_policy;
1642 typedef UseInternalRangeChecker range_checking_policy;
1643 typedef Trunc<short> rounding_policy;
1644 };
1645
1646 template <>
1647 struct numeric_cast_traits
1648 <
1649 long double
1650 , unsigned short
1651 >
1652 {
1653 typedef def_overflow_handler overflow_policy;
1654 typedef UseInternalRangeChecker range_checking_policy;
1655 typedef Trunc<unsigned short> rounding_policy;
1656 };
1657
1658 template <>
1659 struct numeric_cast_traits
1660 <
1661 long double
1662 , int
1663 >
1664 {
1665 typedef def_overflow_handler overflow_policy;
1666 typedef UseInternalRangeChecker range_checking_policy;
1667 typedef Trunc<int> rounding_policy;
1668 };
1669
1670 template <>
1671 struct numeric_cast_traits
1672 <
1673 long double
1674 , unsigned int
1675 >
1676 {
1677 typedef def_overflow_handler overflow_policy;
1678 typedef UseInternalRangeChecker range_checking_policy;
1679 typedef Trunc<unsigned int> rounding_policy;
1680 };
1681
1682 template <>
1683 struct numeric_cast_traits
1684 <
1685 long double
1686 , long
1687 >
1688 {
1689 typedef def_overflow_handler overflow_policy;
1690 typedef UseInternalRangeChecker range_checking_policy;
1691 typedef Trunc<long> rounding_policy;
1692 };
1693
1694 template <>
1695 struct numeric_cast_traits
1696 <
1697 long double
1698 , unsigned long
1699 >
1700 {
1701 typedef def_overflow_handler overflow_policy;
1702 typedef UseInternalRangeChecker range_checking_policy;
1703 typedef Trunc<unsigned long> rounding_policy;
1704 };
1705
1706 template <>
1707 struct numeric_cast_traits
1708 <
1709 long double
1710 , float
1711 >
1712 {
1713 typedef def_overflow_handler overflow_policy;
1714 typedef UseInternalRangeChecker range_checking_policy;
1715 typedef Trunc<float> rounding_policy;
1716 };
1717
1718 template <>
1719 struct numeric_cast_traits
1720 <
1721 long double
1722 , double
1723 >
1724 {
1725 typedef def_overflow_handler overflow_policy;
1726 typedef UseInternalRangeChecker range_checking_policy;
1727 typedef Trunc<double> rounding_policy;
1728 };
1729
1730 template <>
1731 struct numeric_cast_traits
1732 <
1733 long double
1734 , long double
1735 >
1736 {
1737 typedef def_overflow_handler overflow_policy;
1738 typedef UseInternalRangeChecker range_checking_policy;
1739 typedef Trunc<long double> rounding_policy;
1740 };
1741 }}