Mercurial > hg > vamp-build-and-test
comparison DEPENDENCIES/generic/include/boost/numeric/conversion/cast.hpp @ 16:2665513ce2d3
Add boost headers
author | Chris Cannam |
---|---|
date | Tue, 05 Aug 2014 11:11:38 +0100 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
15:663ca0da4350 | 16:2665513ce2d3 |
---|---|
1 // (c) Copyright Fernando Luis Cacciola Carballal 2000-2004 | |
2 // Use, modification, and distribution is subject to the Boost Software | |
3 // License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at | |
4 // http://www.boost.org/LICENSE_1_0.txt) | |
5 | |
6 // See library home page at http://www.boost.org/libs/numeric/conversion | |
7 // | |
8 // Contact the author at: fernando_cacciola@hotmail.com | |
9 // | |
10 // | |
11 // Revision History | |
12 // | |
13 // 19 Nov 2001 Syntatic changes as suggested by Darin Adler (Fernando Cacciola) | |
14 // 08 Nov 2001 Fixes to accommodate MSVC (Fernando Cacciola) | |
15 // 04 Nov 2001 Fixes to accommodate gcc2.92 (Fernando Cacciola) | |
16 // 30 Oct 2001 Some fixes suggested by Daryle Walker (Fernando Cacciola) | |
17 // 25 Oct 2001 Initial boostification (Fernando Cacciola) | |
18 // 23 Jan 2004 Inital add to cvs (post review)s | |
19 // 22 Jun 2011 Added support for specializing cast policies via numeric_cast_traits (Brandon Kohn). | |
20 // | |
21 #ifndef BOOST_NUMERIC_CONVERSION_CAST_25OCT2001_HPP | |
22 #define BOOST_NUMERIC_CONVERSION_CAST_25OCT2001_HPP | |
23 | |
24 #include <boost/detail/workaround.hpp> | |
25 | |
26 #if BOOST_WORKAROUND(BOOST_MSVC, < 1300) || BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x582)) | |
27 | |
28 # include<boost/numeric/conversion/detail/old_numeric_cast.hpp> | |
29 | |
30 #else | |
31 | |
32 #include <boost/type.hpp> | |
33 #include <boost/numeric/conversion/converter.hpp> | |
34 #include <boost/numeric/conversion/numeric_cast_traits.hpp> | |
35 | |
36 namespace boost | |
37 { | |
38 template <typename Target, typename Source> | |
39 inline Target numeric_cast( Source arg ) | |
40 { | |
41 typedef numeric::conversion_traits<Target, Source> conv_traits; | |
42 typedef numeric::numeric_cast_traits<Target, Source> cast_traits; | |
43 typedef boost::numeric::converter | |
44 < | |
45 Target, | |
46 Source, | |
47 conv_traits, | |
48 typename cast_traits::overflow_policy, | |
49 typename cast_traits::rounding_policy, | |
50 boost::numeric::raw_converter< conv_traits >, | |
51 typename cast_traits::range_checking_policy | |
52 > converter; | |
53 return converter::convert(arg); | |
54 } | |
55 | |
56 using numeric::bad_numeric_cast; | |
57 } // namespace boost | |
58 | |
59 #endif | |
60 | |
61 #endif |