1.. Data Types/Numeric//char_ |60 2 3char\_ 4====== 5 6Synopsis 7-------- 8 9.. parsed-literal:: 10 11 template< 12 char N 13 > 14 struct char\_ 15 { 16 // |unspecified| 17 // ... 18 }; 19 20 21Description 22----------- 23 24An |Integral Constant| wrapper for ``char``. 25 26 27Header 28------ 29 30.. parsed-literal:: 31 32 #include <boost/mpl/char.hpp> 33 34 35Model of 36-------- 37 38|Integral Constant| 39 40 41Parameters 42---------- 43 44+---------------+-------------------------------+---------------------------+ 45| Parameter | Requirement | Description | 46+===============+===============================+===========================+ 47| ``N`` | A character constant | A value to wrap. | 48+---------------+-------------------------------+---------------------------+ 49 50Expression semantics 51-------------------- 52 53|Semantics disclaimer...| |Integral Constant|. 54 55For arbitrary character constant ``c``: 56 57+-------------------+-----------------------------------------------------------+ 58| Expression | Semantics | 59+===================+===========================================================+ 60| ``char_<c>`` | An |Integral Constant| ``x`` such that ``x::value == c`` | 61| | and ``x::value_type`` is identical to ``char``. | 62+-------------------+-----------------------------------------------------------+ 63 64 65Example 66------- 67 68.. parsed-literal:: 69 70 typedef char_<'c'> c; 71 72 BOOST_MPL_ASSERT(( is_same< c::value_type, char > )); 73 BOOST_MPL_ASSERT(( is_same< c::type, c > )); 74 BOOST_MPL_ASSERT(( is_same< next< c >::type, char_<'d'> > )); 75 BOOST_MPL_ASSERT(( is_same< prior< c >::type, char_<'b'> > )); 76 BOOST_MPL_ASSERT_RELATION( (c::value), ==, 'c' ); 77 assert( c() == 'c' ); 78 79 80See also 81-------- 82 83|Data Types|, |Integral Constant|, |int_|, |size_t|, |integral_c| 84 85 86.. copyright:: Copyright � 2009 Eric Niebler 87 Distributed under the Boost Software License, Version 1.0. (See accompanying 88 file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 89