fix doc example typo
[boost.git] / boost / type_traits / integral_constant.hpp
blob4ed1bb058fc80f3acf83d2d3bbff1b730fb44a6d
1 // (C) Copyright John Maddock 2005.
2 // Use, modification and distribution are subject to the
3 // Boost Software License, Version 1.0. (See accompanying file
4 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
6 #ifndef BOOST_TYPE_TRAITS_INTEGRAL_CONSTANT_HPP
7 #define BOOST_TYPE_TRAITS_INTEGRAL_CONSTANT_HPP
9 #include <boost/config.hpp>
10 #include <boost/mpl/bool.hpp>
11 #include <boost/mpl/integral_c.hpp>
13 namespace boost{
15 #if defined(BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS) || defined(__BORLANDC__)
16 template <class T, int val>
17 #else
18 template <class T, T val>
19 #endif
20 struct integral_constant : public mpl::integral_c<T, val>
22 typedef integral_constant<T,val> type;
25 template<> struct integral_constant<bool,true> : public mpl::true_
27 #if BOOST_WORKAROUND(BOOST_MSVC, < 1300)
28 # pragma warning(push)
29 # pragma warning(disable:4097)
30 typedef mpl::true_ base_;
31 using base_::value;
32 # pragma warning(pop)
33 #endif
34 typedef integral_constant<bool,true> type;
36 template<> struct integral_constant<bool,false> : public mpl::false_
38 #if BOOST_WORKAROUND(BOOST_MSVC, < 1300)
39 # pragma warning(push)
40 # pragma warning(disable:4097)
41 typedef mpl::false_ base_;
42 using base_::value;
43 # pragma warning(pop)
44 #endif
45 typedef integral_constant<bool,false> type;
48 typedef integral_constant<bool,true> true_type;
49 typedef integral_constant<bool,false> false_type;
53 #endif