Back to home page

EIC code displayed by LXR

 
 

    


Warning, file /include/boost/type_erasure/concept_of.hpp was not indexed or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).

0001 // Boost.TypeErasure library
0002 //
0003 // Copyright 2011 Steven Watanabe
0004 //
0005 // Distributed under the Boost Software License Version 1.0. (See
0006 // accompanying file LICENSE_1_0.txt or copy at
0007 // http://www.boost.org/LICENSE_1_0.txt)
0008 //
0009 // $Id$
0010 
0011 #ifndef BOOST_TYPE_ERASURE_CONCEPT_OF_HPP_INCLUDED
0012 #define BOOST_TYPE_ERASURE_CONCEPT_OF_HPP_INCLUDED
0013 
0014 #include <boost/config.hpp>
0015 
0016 namespace boost {
0017 namespace type_erasure {
0018 
0019 #ifndef BOOST_TYPE_ERASURE_DOXYGEN
0020 
0021 template<class Concept, class T>
0022 class any;
0023 
0024 template<class Concept, class T>
0025 class param;
0026 
0027 #endif
0028 
0029 /**
0030  * A metafunction returning the concept corresponding
0031  * to an @ref any.  It will also work for all bases
0032  * of @ref any, so it can be applied to the @c Base
0033  * parameter of @ref concept_interface.
0034  */
0035 template<class T>
0036 struct concept_of
0037 {
0038 #ifdef BOOST_TYPE_ERASURE_DOXYGEN
0039     typedef detail::unspecified type;
0040 #else
0041     typedef typename ::boost::type_erasure::concept_of<
0042         typename T::_boost_type_erasure_derived_type
0043     >::type type;
0044 #endif
0045 };
0046 
0047 /** INTERNAL ONLY */
0048 template<class Concept, class T>
0049 struct concept_of< ::boost::type_erasure::any<Concept, T> >
0050 {
0051     typedef Concept type;
0052 };
0053 
0054 /** INTERNAL ONLY */
0055 template<class Concept, class T>
0056 struct concept_of< ::boost::type_erasure::param<Concept, T> >
0057 {
0058     typedef Concept type;
0059 };
0060 
0061 #ifndef BOOST_NO_CXX11_TEMPLATE_ALIASES
0062 
0063 template<class T>
0064 using concept_of_t = typename ::boost::type_erasure::concept_of<T>::type;
0065 
0066 #endif
0067 
0068 }
0069 }
0070 
0071 #endif