Boost logo

Boost :

From: Cromwell Enage (sponage_at_[hidden])
Date: 2007-04-18 13:59:07


--- Christian Holmquist wrote:
> --- Cromwell Enage wrote:
> > In my automata library, I defined a data_type
> > metafunction that removes const, pointer,
> > reference, volatile, and [] qualifiers from
> > the input type.
>
> Could you post the function here? Or would it be
> possible to eventually have it added to the
> type_traits library?

The automata library is available from the Boost Vault
in the Data Structures directory, but for convenience,
here are the contents of the header file in question:

// Copyright (C) 2007 Cromwell D. Enage
// Distributed under the Boost Software License,
// Version 1.0.
// (See accompanying file LICENSE_1_0.txt
// or copy at http://www.boost.org/LICENSE_1_0.txt)

#ifndef
BOOST_DETAIL_METAFUNCTION_DATA_TYPE_HPP_INCLUDED
#define
BOOST_DETAIL_METAFUNCTION_DATA_TYPE_HPP_INCLUDED

#include <boost/type_traits/remove_const.hpp>
#include <boost/type_traits/remove_reference.hpp>
#include <boost/type_traits/remove_pointer.hpp>
#include <boost/type_traits/remove_volatile.hpp>
#include <boost/type_traits/remove_all_extents.hpp>
#include <boost/mpl/aux_/lambda_support.hpp>

namespace boost { namespace detail {

    template <typename T>
    struct data_type
      : remove_const<
            typename remove_reference<
                typename remove_pointer<
                    typename remove_volatile<
                        typename
remove_all_extents<T>::type
>::type
>::type
>::type
>
    {
        BOOST_MPL_AUX_LAMBDA_SUPPORT(1,data_type,(T))
    };
}} // namespace boost::detail

#endif //
BOOST_DETAIL_METAFUNCTION_DATA_TYPE_HPP_INCLUDED

                              HTH,
                              Cromwell D. Enage

__________________________________________________
Do You Yahoo!?
Tired of spam? Yahoo! Mail has the best spam protection around
http://mail.yahoo.com


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk