From fdeb0a73af71aec7a79c43008faf5796d73c7ede Mon Sep 17 00:00:00 2001 From: Aleksey Gurtovoy Date: Sun, 15 Sep 2002 23:47:04 +0000 Subject: [PATCH] add size_t_c [SVN r15348] --- include/boost/mpl/size_t_c.hpp | 49 ++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 include/boost/mpl/size_t_c.hpp diff --git a/include/boost/mpl/size_t_c.hpp b/include/boost/mpl/size_t_c.hpp new file mode 100644 index 0000000..ecbdeda --- /dev/null +++ b/include/boost/mpl/size_t_c.hpp @@ -0,0 +1,49 @@ +//----------------------------------------------------------------------------- +// boost mpl/size_t_c.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_SIZE_T_C_HPP_INCLUDED +#define BOOST_MPL_SIZE_T_C_HPP_INCLUDED + +#include "boost/mpl/integral_c.hpp" +#include "boost/config.hpp" +#include // for std::size_t + +namespace boost { +namespace mpl { + +template< std::size_t N > struct size_t_c +#if !defined(__BORLANDC__) + : integral_c< std::size_t,N > +{ + typedef size_t_c type; +}; +#else +{ + BOOST_STATIC_CONSTANT(std::size_t, value = N); + typedef size_t_c type; + typedef std::size_t value_type; + + typedef size_t_c next; + typedef size_t_c prior; + + operator std::size_t() const { return this->value; } +}; +#endif + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_SIZE_T_C_HPP_INCLUDED