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
0002
0003
0004
0005
0006
0007
0008
0009
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
0031
0032
0033
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
0048 template<class Concept, class T>
0049 struct concept_of< ::boost::type_erasure::any<Concept, T> >
0050 {
0051 typedef Concept type;
0052 };
0053
0054
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