1.. Metafunctions/Miscellaneous//sizeof_ |100 2 3sizeof\_ 4======== 5 6Synopsis 7-------- 8 9.. parsed-literal:: 10 11 template< 12 typename X 13 > 14 struct sizeof\_ 15 { 16 typedef |unspecified| type; 17 }; 18 19 20 21Description 22----------- 23 24Returns the result of a ``sizeof(X)`` expression wrapped into an 25|Integral Constant| of the corresponding type, ``std::size_t``. 26 27 28Header 29------ 30 31.. parsed-literal:: 32 33 #include <boost/mpl/sizeof.hpp> 34 35 36Model of 37-------- 38 39|Metafunction| 40 41 42Parameters 43---------- 44 45+---------------+-------------------+-------------------------------------------+ 46| Parameter | Requirement | Description | 47+===============+===================+===========================================+ 48| ``X`` | Any type | A type to compute the ``sizeof`` for. | 49+---------------+-------------------+-------------------------------------------+ 50 51 52Expression semantics 53-------------------- 54 55For an arbitrary type ``x``: 56 57 58.. parsed-literal:: 59 60 typedef sizeof_<x>::type n; 61 62 63:Return type: 64 |Integral Constant|. 65 66:Precondition: 67 ``x`` is a complete type. 68 69:Semantics: 70 Equivalent to 71 72 .. parsed-literal:: 73 74 typedef size_t< sizeof(x) > n; 75 76 77 78Complexity 79---------- 80 81Constant time. 82 83 84Example 85------- 86 87.. parsed-literal:: 88 89 struct udt { char a[100]; }; 90 91 BOOST_MPL_ASSERT_RELATION( sizeof_<char>::value, ==, sizeof(char) ); 92 BOOST_MPL_ASSERT_RELATION( sizeof_<int>::value, ==, sizeof(int) ); 93 BOOST_MPL_ASSERT_RELATION( sizeof_<double>::value, ==, sizeof(double) ); 94 BOOST_MPL_ASSERT_RELATION( sizeof_<udt>::value, ==, sizeof(my) ); 95 96 97See also 98-------- 99 100|Metafunctions|, |Integral Constant|, |size_t| 101 102 103.. copyright:: Copyright � 2001-2009 Aleksey Gurtovoy and David Abrahams 104 Distributed under the Boost Software License, Version 1.0. (See accompanying 105 file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 106