summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorrobot-contrib <[email protected]>2025-08-28 10:52:58 +0300
committerrobot-contrib <[email protected]>2025-08-28 11:48:01 +0300
commit570809564ed893effc57405668c9c694198132d0 (patch)
tree7f3e85628eca3af584f5e43435d254d42636ef7d
parentfa5404828d05be5757b2a70e25b4be1c6f7bcf60 (diff)
Update contrib/restricted/boost/type_traits to 1.89.0
commit_hash:77c9f57ed2b96e7181db9214e69194abdfb16db5
-rw-r--r--contrib/restricted/boost/type_traits/.yandex_meta/default.nix4
-rw-r--r--contrib/restricted/boost/type_traits/include/boost/type_traits/integral_constant.hpp14
-rw-r--r--contrib/restricted/boost/type_traits/include/boost/type_traits/is_complete.hpp41
-rw-r--r--contrib/restricted/boost/type_traits/ya.make4
4 files changed, 43 insertions, 20 deletions
diff --git a/contrib/restricted/boost/type_traits/.yandex_meta/default.nix b/contrib/restricted/boost/type_traits/.yandex_meta/default.nix
index feeda15df74..278c6dbb863 100644
--- a/contrib/restricted/boost/type_traits/.yandex_meta/default.nix
+++ b/contrib/restricted/boost/type_traits/.yandex_meta/default.nix
@@ -1,13 +1,13 @@
self: super: with self; {
boost_type_traits = stdenv.mkDerivation rec {
pname = "boost_type_traits";
- version = "1.88.0";
+ version = "1.89.0";
src = fetchFromGitHub {
owner = "boostorg";
repo = "type_traits";
rev = "boost-${version}";
- hash = "sha256-kunJMhryv/tq+bsX4gNVYFkkQfF5MJtIzw/sCgdbyqw=";
+ hash = "sha256-OH9x0V8WzASXYFwIPs3RAA4O1JD4dEm5wEjndpAM0T4=";
};
};
}
diff --git a/contrib/restricted/boost/type_traits/include/boost/type_traits/integral_constant.hpp b/contrib/restricted/boost/type_traits/include/boost/type_traits/integral_constant.hpp
index 2592bcb95db..7424c86d36b 100644
--- a/contrib/restricted/boost/type_traits/include/boost/type_traits/integral_constant.hpp
+++ b/contrib/restricted/boost/type_traits/include/boost/type_traits/integral_constant.hpp
@@ -60,10 +60,11 @@ namespace boost{
operator const mpl::integral_c<T, val>& ()const
{
static const char data[sizeof(long)] = { 0 };
- static const void* pdata = data;
- return *(reinterpret_cast<const mpl::integral_c<T, val>*>(pdata));
+ const void* const pdata = data;
+ return *static_cast<const mpl::integral_c<T, val>*>(pdata);
}
- BOOST_CONSTEXPR operator T()const { return val; }
+ BOOST_CONSTEXPR operator T()const BOOST_NOEXCEPT { return val; }
+ BOOST_CONSTEXPR T operator()()const BOOST_NOEXCEPT { return val; }
};
template <class T, T val>
@@ -80,10 +81,11 @@ namespace boost{
operator const mpl::bool_<val>& ()const
{
static const char data[sizeof(long)] = { 0 };
- static const void* pdata = data;
- return *(reinterpret_cast<const mpl::bool_<val>*>(pdata));
+ const void* const pdata = data;
+ return *static_cast<const mpl::bool_<val>*>(pdata);
}
- BOOST_CONSTEXPR operator bool()const { return val; }
+ BOOST_CONSTEXPR operator bool()const BOOST_NOEXCEPT { return val; }
+ BOOST_CONSTEXPR bool operator()()const BOOST_NOEXCEPT { return val; }
};
template <bool val>
diff --git a/contrib/restricted/boost/type_traits/include/boost/type_traits/is_complete.hpp b/contrib/restricted/boost/type_traits/include/boost/type_traits/is_complete.hpp
index 08f0e6277ab..428edf11375 100644
--- a/contrib/restricted/boost/type_traits/include/boost/type_traits/is_complete.hpp
+++ b/contrib/restricted/boost/type_traits/include/boost/type_traits/is_complete.hpp
@@ -27,11 +27,10 @@
* DO NOT MAKE GENERAL USE OF THIS TRAIT, AS THE COMPLETENESS OF A TYPE
* VARIES ACROSS TRANSLATION UNITS AS WELL AS WITHIN A SINGLE UNIT.
*
-*/
+ */
namespace boost {
-
//
// We will undef this if the trait isn't fully functional:
//
@@ -39,7 +38,7 @@ namespace boost {
#if !defined(BOOST_NO_SFINAE_EXPR) && !BOOST_WORKAROUND(BOOST_MSVC, <= 1900) && !BOOST_WORKAROUND(BOOST_GCC_VERSION, < 40600)
- namespace detail{
+ namespace detail {
template <std::size_t N>
struct ok_tag { double d; char c[N]; };
@@ -48,15 +47,15 @@ namespace boost {
ok_tag<sizeof(T)> check_is_complete(int);
template <class T>
char check_is_complete(...);
- }
+
+ } // namespace detail
template <class T> struct is_complete
: public integral_constant<bool, ::boost::is_function<typename boost::remove_reference<T>::type>::value || (sizeof(boost::detail::check_is_complete<T>(0)) != sizeof(char))> {};
#elif !defined(BOOST_NO_SFINAE) && !defined(BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS) && !BOOST_WORKAROUND(BOOST_GCC_VERSION, < 40500)
- namespace detail
- {
+ namespace detail {
template <class T>
struct is_complete_imp
@@ -70,7 +69,7 @@ namespace boost {
static const bool value = sizeof(check<T>(0)) == sizeof(type_traits::yes_type);
};
-} // namespace detail
+ } // namespace detail
template <class T>
@@ -78,11 +77,33 @@ namespace boost {
{};
template <class T>
struct is_complete<T&> : boost::is_complete<T> {};
-
+
#else
- template <class T> struct is_complete
- : public boost::integral_constant<bool, true> {};
+ namespace detail {
+
+ template <class T>
+ struct is_complete_impl : public boost::true_type {};
+
+ template < >
+ struct is_complete_impl<void> : public boost::false_type {};
+
+ template <class T>
+ struct is_complete_impl<T[]> : public boost::false_type {};
+
+ template <class T>
+ struct is_complete_impl<T&> : public is_complete_impl<T>::type {};
+
+ } // namespace detail
+
+ template <class T>
+ struct is_complete : public detail::is_complete_impl<T>::type {};
+ template <class T>
+ struct is_complete<const T> : public detail::is_complete_impl<T>::type {};
+ template <class T>
+ struct is_complete<volatile T> : public detail::is_complete_impl<T>::type {};
+ template <class T>
+ struct is_complete<const volatile T> : public detail::is_complete_impl<T>::type {};
#undef BOOST_TT_HAS_WORKING_IS_COMPLETE
diff --git a/contrib/restricted/boost/type_traits/ya.make b/contrib/restricted/boost/type_traits/ya.make
index 2d21593debf..976aff8e78d 100644
--- a/contrib/restricted/boost/type_traits/ya.make
+++ b/contrib/restricted/boost/type_traits/ya.make
@@ -6,9 +6,9 @@ LICENSE(BSL-1.0)
LICENSE_TEXTS(.yandex_meta/licenses.list.txt)
-VERSION(1.88.0)
+VERSION(1.89.0)
-ORIGINAL_SOURCE(https://github.com/boostorg/type_traits/archive/boost-1.88.0.tar.gz)
+ORIGINAL_SOURCE(https://github.com/boostorg/type_traits/archive/boost-1.89.0.tar.gz)
PEERDIR(
contrib/restricted/boost/config