summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorrobot-contrib <[email protected]>2022-08-09 16:13:56 +0300
committerrobot-contrib <[email protected]>2022-08-09 16:13:56 +0300
commitee817f8bb9ff8820555d4e250dd0532df76ae49e (patch)
treedb61eab4e98e8b6ecc728eaf975484b335d1cb20
parentd93e95537dd716562fb5670e18c870c409d7999e (diff)
Update contrib/restricted/boost/tti to 1.79.0
-rw-r--r--contrib/restricted/boost/tti/include/boost/tti/detail/dcomp_mem_fun.hpp37
-rw-r--r--contrib/restricted/boost/tti/include/boost/tti/detail/denclosing_type.hpp36
-rw-r--r--contrib/restricted/boost/tti/include/boost/tti/detail/dmacro_sunfix.hpp20
-rw-r--r--contrib/restricted/boost/tti/include/boost/tti/detail/dmem_fun.hpp67
-rw-r--r--contrib/restricted/boost/tti/include/boost/tti/detail/dptmf.hpp1
-rw-r--r--contrib/restricted/boost/tti/include/boost/tti/has_member_function.hpp37
6 files changed, 107 insertions, 91 deletions
diff --git a/contrib/restricted/boost/tti/include/boost/tti/detail/dcomp_mem_fun.hpp b/contrib/restricted/boost/tti/include/boost/tti/detail/dcomp_mem_fun.hpp
index 95b37d1b0e7..b2388e0b70b 100644
--- a/contrib/restricted/boost/tti/include/boost/tti/detail/dcomp_mem_fun.hpp
+++ b/contrib/restricted/boost/tti/include/boost/tti/detail/dcomp_mem_fun.hpp
@@ -7,17 +7,15 @@
#if !defined(BOOST_TTI_DETAIL_COMP_MEM_FUN_HPP)
#define BOOST_TTI_DETAIL_COMP_MEM_FUN_HPP
-#include <boost/config.hpp>
#include <boost/mpl/bool.hpp>
#include <boost/preprocessor/cat.hpp>
#include <boost/tti/detail/dftclass.hpp>
+#include <boost/tti/detail/dmacro_sunfix.hpp>
#include <boost/tti/detail/dnullptr.hpp>
#include <boost/tti/gen/namespace_gen.hpp>
#include <boost/type_traits/remove_const.hpp>
#include <boost/type_traits/detail/yes_no_type.hpp>
-#if defined(__SUNPRO_CC)
-
#define BOOST_TTI_DETAIL_TRAIT_HAS_COMP_MEMBER_FUNCTION(trait,name) \
template<class BOOST_TTI_DETAIL_TP_T> \
struct BOOST_PP_CAT(trait,_detail_hcmf) \
@@ -32,7 +30,7 @@
}; \
\
template<BOOST_TTI_DETAIL_TP_T> \
- struct helper {}; \
+ struct helper BOOST_TTI_DETAIL_MACRO_SUNFIX ; \
\
template<class BOOST_TTI_DETAIL_TP_U> \
static ::boost::type_traits::yes_type chkt(helper<&BOOST_TTI_DETAIL_TP_U::name> *); \
@@ -44,35 +42,4 @@
}; \
/**/
-#else
-
-#define BOOST_TTI_DETAIL_TRAIT_HAS_COMP_MEMBER_FUNCTION(trait,name) \
- template<class BOOST_TTI_DETAIL_TP_T> \
- struct BOOST_PP_CAT(trait,_detail_hcmf) \
- { \
- template<class BOOST_TTI_DETAIL_TP_F> \
- struct cl_type : \
- boost::remove_const \
- < \
- typename BOOST_TTI_NAMESPACE::detail::class_type<BOOST_TTI_DETAIL_TP_F>::type \
- > \
- { \
- }; \
- \
- template<BOOST_TTI_DETAIL_TP_T> \
- struct helper; \
- \
- template<class BOOST_TTI_DETAIL_TP_U> \
- static ::boost::type_traits::yes_type chkt(helper<&BOOST_TTI_DETAIL_TP_U::name> *); \
- \
- template<class BOOST_TTI_DETAIL_TP_U> \
- static ::boost::type_traits::no_type chkt(...); \
- \
- typedef boost::mpl::bool_<sizeof(chkt<typename cl_type<BOOST_TTI_DETAIL_TP_T>::type>(BOOST_TTI_DETAIL_NULLPTR))==sizeof(::boost::type_traits::yes_type)> type; \
- }; \
-/**/
-
-#endif
-
-
#endif // BOOST_TTI_DETAIL_COMP_MEM_FUN_HPP
diff --git a/contrib/restricted/boost/tti/include/boost/tti/detail/denclosing_type.hpp b/contrib/restricted/boost/tti/include/boost/tti/detail/denclosing_type.hpp
new file mode 100644
index 00000000000..5a5f7fdb0e1
--- /dev/null
+++ b/contrib/restricted/boost/tti/include/boost/tti/detail/denclosing_type.hpp
@@ -0,0 +1,36 @@
+
+// (C) Copyright Edward Diener 2019
+// Use, modification and distribution are subject to 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).
+
+#if !defined(BOOST_TTI_DETAIL_ENCLOSING_TYPE_HPP)
+#define BOOST_TTI_DETAIL_ENCLOSING_TYPE_HPP
+
+#include <boost/mpl/or.hpp>
+#include <boost/type_traits/is_class.hpp>
+#include <boost/type_traits/is_union.hpp>
+
+namespace boost
+ {
+ namespace tti
+ {
+ namespace detail
+ {
+ template
+ <
+ class BOOST_TTI_DETAIL_TP_T
+ >
+ struct enclosing_type :
+ boost::mpl::or_
+ <
+ boost::is_class<BOOST_TTI_DETAIL_TP_T>,
+ boost::is_union<BOOST_TTI_DETAIL_TP_T>
+ >
+ {
+ };
+ }
+ }
+ }
+
+#endif // BOOST_TTI_DETAIL_ENCLOSING_TYPE_HPP
diff --git a/contrib/restricted/boost/tti/include/boost/tti/detail/dmacro_sunfix.hpp b/contrib/restricted/boost/tti/include/boost/tti/detail/dmacro_sunfix.hpp
new file mode 100644
index 00000000000..7737cd6dbae
--- /dev/null
+++ b/contrib/restricted/boost/tti/include/boost/tti/detail/dmacro_sunfix.hpp
@@ -0,0 +1,20 @@
+
+// (C) Copyright Edward Diener 2019
+// Use, modification and distribution are subject to 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).
+
+#if !defined(BOOST_TTI_DETAIL_MACRO_SUNFIX_HPP)
+#define BOOST_TTI_DETAIL_MACRO_SUNFIX_HPP
+
+#if defined(__SUNPRO_CC)
+
+#define BOOST_TTI_DETAIL_MACRO_SUNFIX {}
+
+#else
+
+#define BOOST_TTI_DETAIL_MACRO_SUNFIX
+
+#endif
+
+#endif // BOOST_TTI_DETAIL_MACRO_SUNFIX_HPP
diff --git a/contrib/restricted/boost/tti/include/boost/tti/detail/dmem_fun.hpp b/contrib/restricted/boost/tti/include/boost/tti/detail/dmem_fun.hpp
index 421780297d9..9202c84bb78 100644
--- a/contrib/restricted/boost/tti/include/boost/tti/detail/dmem_fun.hpp
+++ b/contrib/restricted/boost/tti/include/boost/tti/detail/dmem_fun.hpp
@@ -7,7 +7,6 @@
#if !defined(BOOST_TTI_DETAIL_MEM_FUN_HPP)
#define BOOST_TTI_DETAIL_MEM_FUN_HPP
-#include <boost/config.hpp>
#include <boost/function_types/is_member_function_pointer.hpp>
#include <boost/function_types/property_tags.hpp>
#include <boost/mpl/and.hpp>
@@ -18,42 +17,22 @@
#include <boost/mpl/vector.hpp>
#include <boost/preprocessor/cat.hpp>
#include <boost/type_traits/detail/yes_no_type.hpp>
-#include <boost/type_traits/is_class.hpp>
#include <boost/type_traits/is_same.hpp>
#include <boost/type_traits/remove_const.hpp>
#include <boost/tti/detail/dcomp_mem_fun.hpp>
#include <boost/tti/detail/ddeftype.hpp>
+#include <boost/tti/detail/dmacro_sunfix.hpp>
#include <boost/tti/detail/dnullptr.hpp>
+#include <boost/tti/detail/denclosing_type.hpp>
#include <boost/tti/detail/dptmf.hpp>
#include <boost/tti/gen/namespace_gen.hpp>
-#if defined(__SUNPRO_CC)
-
-#define BOOST_TTI_DETAIL_TRAIT_HAS_TYPES_MEMBER_FUNCTION(trait,name) \
- template<class BOOST_TTI_DETAIL_TP_PMEMF,class BOOST_TTI_DETAIL_TP_C> \
- struct BOOST_PP_CAT(trait,_detail_types) \
- { \
- template<BOOST_TTI_DETAIL_TP_PMEMF> \
- struct helper {}; \
- \
- template<class BOOST_TTI_DETAIL_TP_EC> \
- static ::boost::type_traits::yes_type chkt(helper<&BOOST_TTI_DETAIL_TP_EC::name> *); \
- \
- template<class BOOST_TTI_DETAIL_TP_EC> \
- static ::boost::type_traits::no_type chkt(...); \
- \
- typedef boost::mpl::bool_<sizeof(chkt<BOOST_TTI_DETAIL_TP_C>(BOOST_TTI_DETAIL_NULLPTR))==sizeof(::boost::type_traits::yes_type)> type; \
- }; \
-/**/
-
-#else
-
#define BOOST_TTI_DETAIL_TRAIT_HAS_TYPES_MEMBER_FUNCTION(trait,name) \
template<class BOOST_TTI_DETAIL_TP_PMEMF,class BOOST_TTI_DETAIL_TP_C> \
- struct BOOST_PP_CAT(trait,_detail_types) \
+ struct BOOST_PP_CAT(trait,_detail_hmf_types) \
{ \
template<BOOST_TTI_DETAIL_TP_PMEMF> \
- struct helper; \
+ struct helper BOOST_TTI_DETAIL_MACRO_SUNFIX ; \
\
template<class BOOST_TTI_DETAIL_TP_EC> \
static ::boost::type_traits::yes_type chkt(helper<&BOOST_TTI_DETAIL_TP_EC::name> *); \
@@ -65,13 +44,11 @@
}; \
/**/
-#endif
-
#define BOOST_TTI_DETAIL_TRAIT_CTMF_INVOKE(trait,name) \
BOOST_TTI_DETAIL_TRAIT_HAS_TYPES_MEMBER_FUNCTION(trait,name) \
template<class BOOST_TTI_DETAIL_TP_T,class BOOST_TTI_DETAIL_TP_R,class BOOST_TTI_DETAIL_TP_FS,class BOOST_TTI_DETAIL_TP_TAG> \
- struct BOOST_PP_CAT(trait,_detail_ctmf_invoke) : \
- BOOST_PP_CAT(trait,_detail_types) \
+ struct BOOST_PP_CAT(trait,_detail_hmf_ctmf_invoke) : \
+ BOOST_PP_CAT(trait,_detail_hmf_types) \
< \
typename BOOST_TTI_NAMESPACE::detail::ptmf_seq<BOOST_TTI_DETAIL_TP_T,BOOST_TTI_DETAIL_TP_R,BOOST_TTI_DETAIL_TP_FS,BOOST_TTI_DETAIL_TP_TAG>::type, \
BOOST_TTI_DETAIL_TP_T \
@@ -83,19 +60,19 @@
#define BOOST_TTI_DETAIL_TRAIT_HAS_CALL_TYPES_MEMBER_FUNCTION(trait,name) \
BOOST_TTI_DETAIL_TRAIT_CTMF_INVOKE(trait,name) \
template<class BOOST_TTI_DETAIL_TP_T,class BOOST_TTI_DETAIL_TP_R,class BOOST_TTI_DETAIL_TP_FS,class BOOST_TTI_DETAIL_TP_TAG> \
- struct BOOST_PP_CAT(trait,_detail_call_types) : \
- boost::mpl::eval_if \
- < \
- boost::is_class<BOOST_TTI_DETAIL_TP_T>, \
- BOOST_PP_CAT(trait,_detail_ctmf_invoke) \
- < \
- BOOST_TTI_DETAIL_TP_T, \
- BOOST_TTI_DETAIL_TP_R, \
- BOOST_TTI_DETAIL_TP_FS, \
- BOOST_TTI_DETAIL_TP_TAG \
- >, \
- boost::mpl::false_ \
- > \
+ struct BOOST_PP_CAT(trait,_detail_hmf_call_types) : \
+ boost::mpl::eval_if \
+ < \
+ BOOST_TTI_NAMESPACE::detail::enclosing_type<BOOST_TTI_DETAIL_TP_T>, \
+ BOOST_PP_CAT(trait,_detail_hmf_ctmf_invoke) \
+ < \
+ BOOST_TTI_DETAIL_TP_T, \
+ BOOST_TTI_DETAIL_TP_R, \
+ BOOST_TTI_DETAIL_TP_FS, \
+ BOOST_TTI_DETAIL_TP_TAG \
+ >, \
+ boost::mpl::false_ \
+ > \
{ \
}; \
/**/
@@ -103,7 +80,7 @@
#define BOOST_TTI_DETAIL_TRAIT_CHECK_HAS_COMP_MEMBER_FUNCTION(trait,name) \
BOOST_TTI_DETAIL_TRAIT_HAS_COMP_MEMBER_FUNCTION(trait,name) \
template<class BOOST_TTI_DETAIL_TP_T> \
- struct BOOST_PP_CAT(trait,_detail_check_comp) : \
+ struct BOOST_PP_CAT(trait,_detail_hmf_check_comp) : \
BOOST_PP_CAT(trait,_detail_hcmf)<BOOST_TTI_DETAIL_TP_T> \
{ \
BOOST_MPL_ASSERT((boost::function_types::is_member_function_pointer<BOOST_TTI_DETAIL_TP_T>)); \
@@ -123,8 +100,8 @@
boost::is_same<BOOST_TTI_DETAIL_TP_FS,boost::mpl::vector<> >, \
boost::is_same<BOOST_TTI_DETAIL_TP_TAG,boost::function_types::null_tag> \
>, \
- BOOST_PP_CAT(trait,_detail_check_comp)<BOOST_TTI_DETAIL_TP_T>, \
- BOOST_PP_CAT(trait,_detail_call_types)<BOOST_TTI_DETAIL_TP_T,BOOST_TTI_DETAIL_TP_R,BOOST_TTI_DETAIL_TP_FS,BOOST_TTI_DETAIL_TP_TAG> \
+ BOOST_PP_CAT(trait,_detail_hmf_check_comp)<BOOST_TTI_DETAIL_TP_T>, \
+ BOOST_PP_CAT(trait,_detail_hmf_call_types)<BOOST_TTI_DETAIL_TP_T,BOOST_TTI_DETAIL_TP_R,BOOST_TTI_DETAIL_TP_FS,BOOST_TTI_DETAIL_TP_TAG> \
> \
{ \
}; \
diff --git a/contrib/restricted/boost/tti/include/boost/tti/detail/dptmf.hpp b/contrib/restricted/boost/tti/include/boost/tti/detail/dptmf.hpp
index ad6cdf5bd72..f49df629905 100644
--- a/contrib/restricted/boost/tti/include/boost/tti/detail/dptmf.hpp
+++ b/contrib/restricted/boost/tti/include/boost/tti/detail/dptmf.hpp
@@ -7,7 +7,6 @@
#if !defined(BOOST_TTI_DETAIL_PTMF_HPP)
#define BOOST_TTI_DETAIL_PTMF_HPP
-#include <boost/config.hpp>
#include <boost/mpl/push_front.hpp>
#include <boost/function_types/member_function_pointer.hpp>
diff --git a/contrib/restricted/boost/tti/include/boost/tti/has_member_function.hpp b/contrib/restricted/boost/tti/include/boost/tti/has_member_function.hpp
index 3aa247638e7..dc5725b7046 100644
--- a/contrib/restricted/boost/tti/include/boost/tti/has_member_function.hpp
+++ b/contrib/restricted/boost/tti/include/boost/tti/has_member_function.hpp
@@ -25,15 +25,20 @@
/** \file
*/
-/// Expands to a metafunction which tests whether a member function with a particular name and signature exists.
+/// A macro which expands to a metafunction which tests whether a member function with a particular name and signature exists.
/**
- trait = the name of the metafunction within the tti namespace.
+ BOOST_TTI_TRAIT_HAS_MEMBER_FUNCTION is a macro which expands to a metafunction.
+ The metafunction tests whether a member function with a particular name
+ and signature exists. The macro takes the form of BOOST_TTI_TRAIT_HAS_MEMBER_FUNCTION(trait,name) where
+ trait = the name of the metafunction <br/>
name = the name of the inner member.
- generates a metafunction called "trait" where 'trait' is the macro parameter.<br />
+ BOOST_TTI_TRAIT_HAS_MEMBER_FUNCTION generates a metafunction called "trait" where 'trait' is the macro parameter.
+ @code
+
template<class BOOST_TTI_TP_T,class BOOST_TTI_R,class BOOST_TTI_FS,class BOOST_TTI_TAG>
struct trait
{
@@ -43,9 +48,10 @@
The metafunction types and return:
- BOOST_TTI_TP_T = the enclosing type in which to look for our 'name'
+ BOOST_TTI_TP_T = the enclosing type in which to look for our 'name'.
+ The enclosing type can be a class, struct, or union.
OR
- a pointer to member function as a single type.
+ a pointer to member function as a single type.
BOOST_TTI_TP_R = (optional) the return type of the member function
if the first parameter is the enclosing type.
@@ -61,6 +67,8 @@
with the appropriate member function type,
otherwise 'value' is false.
+ @endcode
+
*/
#define BOOST_TTI_TRAIT_HAS_MEMBER_FUNCTION(trait,name) \
BOOST_TTI_DETAIL_TRAIT_HAS_MEMBER_FUNCTION(trait,name) \
@@ -73,15 +81,21 @@
}; \
/**/
-/// Expands to a metafunction which tests whether a member function with a particular name and signature exists.
+/// A macro which expands to a metafunction which tests whether a member function with a particular name and signature exists.
/**
+ BOOST_TTI_HAS_MEMBER_FUNCTION is a macro which expands to a metafunction.
+ The metafunction tests whether a member function with a particular name
+ and signature exists. The macro takes the form of BOOST_TTI_HAS_MEMBER_FUNCTION(name) where
+
name = the name of the inner member.
- generates a metafunction called "has_member_function_name" where 'name' is the macro parameter.
+ BOOST_TTI_HAS_MEMBER_FUNCTION generates a metafunction called "has_member_function_name" where 'name' is the macro parameter.
+ @code
+
template<class BOOST_TTI_TP_T,class BOOST_TTI_TP_R,class BOOST_TTI_TP_FS,class BOOST_TTI_TP_TAG>
- struct has_member_function_name
+ struct has_member_function_'name'
{
static const value = unspecified;
typedef mpl::bool_<true-or-false> type;
@@ -89,9 +103,10 @@
The metafunction types and return:
- BOOST_TTI_TP_T = the enclosing type in which to look for our 'name'
+ BOOST_TTI_TP_T = the enclosing type in which to look for our 'name'.
+ The enclosing type can be a class, struct, or union.
OR
- a pointer to member function as a single type.
+ a pointer to member function as a single type.
BOOST_TTI_TP_R = (optional) the return type of the member function
if the first parameter is the enclosing type.
@@ -107,6 +122,8 @@
with the appropriate member function type,
otherwise 'value' is false.
+ @endcode
+
*/
#define BOOST_TTI_HAS_MEMBER_FUNCTION(name) \
BOOST_TTI_TRAIT_HAS_MEMBER_FUNCTION \