|
1 |
|
2 // (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000. |
|
3 // Use, modification and distribution are subject to the Boost Software License, |
|
4 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at |
|
5 // http://www.boost.org/LICENSE_1_0.txt). |
|
6 // |
|
7 // See http://www.boost.org/libs/type_traits for most recent version including documentation. |
|
8 |
|
9 #ifndef BOOST_TT_IS_FUNDAMENTAL_HPP_INCLUDED |
|
10 #define BOOST_TT_IS_FUNDAMENTAL_HPP_INCLUDED |
|
11 |
|
12 #include <boost/type_traits/is_arithmetic.hpp> |
|
13 #include <boost/type_traits/is_void.hpp> |
|
14 #include <boost/type_traits/detail/ice_or.hpp> |
|
15 |
|
16 // should be the last #include |
|
17 #include <boost/type_traits/detail/bool_trait_def.hpp> |
|
18 |
|
19 namespace boost { |
|
20 |
|
21 namespace detail { |
|
22 |
|
23 template <typename T> |
|
24 struct is_fundamental_impl |
|
25 : ::boost::type_traits::ice_or< |
|
26 ::boost::is_arithmetic<T>::value |
|
27 , ::boost::is_void<T>::value |
|
28 > |
|
29 { |
|
30 }; |
|
31 |
|
32 } // namespace detail |
|
33 |
|
34 //* is a type T a fundamental type described in the standard (3.9.1) |
|
35 #if defined( __CODEGEARC__ ) |
|
36 BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_fundamental,T,__is_fundamental(T)) |
|
37 #else |
|
38 BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_fundamental,T,::boost::detail::is_fundamental_impl<T>::value) |
|
39 #endif |
|
40 |
|
41 } // namespace boost |
|
42 |
|
43 #include <boost/type_traits/detail/bool_trait_undef.hpp> |
|
44 |
|
45 #endif // BOOST_TT_IS_FUNDAMENTAL_HPP_INCLUDED |