aboutsummaryrefslogtreecommitdiffstats
path: root/contrib/restricted
diff options
context:
space:
mode:
authorbugaevskiy <bugaevskiy@yandex-team.com>2022-07-28 22:48:34 +0300
committerbugaevskiy <bugaevskiy@yandex-team.com>2022-07-28 22:48:34 +0300
commit2b2db76e99526303504b01101d94815ba6e2c485 (patch)
treee8d99c4cb73e47308c8101247bd482b881e10180 /contrib/restricted
parent92821b50913cc003e8a06d919fb2fade5a81dead (diff)
downloadydb-2b2db76e99526303504b01101d94815ba6e2c485.tar.gz
Reimport boost/tuple as a separate project
Diffstat (limited to 'contrib/restricted')
-rw-r--r--contrib/restricted/boost/CMakeLists.txt1
-rw-r--r--contrib/restricted/boost/boost/tuple/tuple_io.hpp339
-rw-r--r--contrib/restricted/boost/tuple/CMakeLists.txt21
-rw-r--r--contrib/restricted/boost/tuple/include/boost/tuple/detail/tuple_basic.hpp (renamed from contrib/restricted/boost/boost/tuple/detail/tuple_basic.hpp)0
-rw-r--r--contrib/restricted/boost/tuple/include/boost/tuple/tuple.hpp (renamed from contrib/restricted/boost/boost/tuple/tuple.hpp)0
-rw-r--r--contrib/restricted/boost/tuple/include/boost/tuple/tuple_comparison.hpp (renamed from contrib/restricted/boost/boost/tuple/tuple_comparison.hpp)0
6 files changed, 22 insertions, 339 deletions
diff --git a/contrib/restricted/boost/CMakeLists.txt b/contrib/restricted/boost/CMakeLists.txt
index 551f2d373a..209c0519df 100644
--- a/contrib/restricted/boost/CMakeLists.txt
+++ b/contrib/restricted/boost/CMakeLists.txt
@@ -30,6 +30,7 @@ target_link_libraries(contrib-restricted-boost INTERFACE
restricted-boost-smart_ptr
restricted-boost-static_assert
restricted-boost-throw_exception
+ restricted-boost-tuple
restricted-boost-type_traits
restricted-boost-utility
restricted-boost-vmd
diff --git a/contrib/restricted/boost/boost/tuple/tuple_io.hpp b/contrib/restricted/boost/boost/tuple/tuple_io.hpp
deleted file mode 100644
index f21c7edacc..0000000000
--- a/contrib/restricted/boost/boost/tuple/tuple_io.hpp
+++ /dev/null
@@ -1,339 +0,0 @@
-// tuple_io.hpp --------------------------------------------------------------
-
-// Copyright (C) 2001 Jaakko Jarvi (jaakko.jarvi@cs.utu.fi)
-// 2001 Gary Powell (gary.powell@sierra.com)
-//
-// 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)
-// For more information, see http://www.boost.org
-
-// ----------------------------------------------------------------------------
-
-#ifndef BOOST_TUPLE_IO_HPP
-#define BOOST_TUPLE_IO_HPP
-
-#include <istream>
-#include <ostream>
-
-#include <sstream>
-
-#include <boost/tuple/tuple.hpp>
-
-// This is ugly: one should be using twoargument isspace since whitspace can
-// be locale dependent, in theory at least.
-// not all libraries implement have the two-arg version, so we need to
-// use the one-arg one, which one should get with <cctype> but there seem
-// to be exceptions to this.
-
-#if !defined (BOOST_NO_STD_LOCALE)
-
-#include <locale> // for two-arg isspace
-
-#else
-
-#include <cctype> // for one-arg (old) isspace
-#include <ctype.h> // Metrowerks does not find one-arg isspace from cctype
-
-#endif
-
-namespace boost {
-namespace tuples {
-
-namespace detail {
-
-class format_info {
-public:
-
- enum manipulator_type { open, close, delimiter };
- BOOST_STATIC_CONSTANT(int, number_of_manipulators = delimiter + 1);
-private:
-
- static int get_stream_index (int m)
- {
- static const int stream_index[number_of_manipulators]
- = { std::ios::xalloc(), std::ios::xalloc(), std::ios::xalloc() };
-
- return stream_index[m];
- }
-
- format_info(const format_info&);
- format_info();
-
-
-public:
-
- template<class CharType, class CharTrait>
- static CharType get_manipulator(std::basic_ios<CharType, CharTrait>& i,
- manipulator_type m) {
- // The manipulators are stored as long.
- // A valid instanitation of basic_stream allows CharType to be any POD,
- // hence, the static_cast may fail (it fails if long is not convertible
- // to CharType
- CharType c = static_cast<CharType>(i.iword(get_stream_index(m)) );
- // parentheses and space are the default manipulators
- if (!c) {
- switch(m) {
- case detail::format_info::open : c = i.widen('('); break;
- case detail::format_info::close : c = i.widen(')'); break;
- case detail::format_info::delimiter : c = i.widen(' '); break;
- }
- }
- return c;
- }
-
-
- template<class CharType, class CharTrait>
- static void set_manipulator(std::basic_ios<CharType, CharTrait>& i,
- manipulator_type m, CharType c) {
- // The manipulators are stored as long.
- // A valid instanitation of basic_stream allows CharType to be any POD,
- // hence, the static_cast may fail (it fails if CharType is not
- // convertible long.
- i.iword(get_stream_index(m)) = static_cast<long>(c);
- }
-};
-
-} // end of namespace detail
-
-template<class CharType>
-class tuple_manipulator {
- const detail::format_info::manipulator_type mt;
- CharType f_c;
-public:
- explicit tuple_manipulator(detail::format_info::manipulator_type m,
- const char c = 0)
- : mt(m), f_c(c) {}
-
- template<class CharTrait>
- void set(std::basic_ios<CharType, CharTrait> &io) const {
- detail::format_info::set_manipulator(io, mt, f_c);
- }
-};
-
-
-template<class CharType, class CharTrait>
-inline std::basic_ostream<CharType, CharTrait>&
-operator<<(std::basic_ostream<CharType, CharTrait>& o, const tuple_manipulator<CharType>& m) {
- m.set(o);
- return o;
-}
-
-template<class CharType, class CharTrait>
-inline std::basic_istream<CharType, CharTrait>&
-operator>>(std::basic_istream<CharType, CharTrait>& i, const tuple_manipulator<CharType>& m) {
- m.set(i);
- return i;
-}
-
-
-template<class CharType>
-inline tuple_manipulator<CharType> set_open(const CharType c) {
- return tuple_manipulator<CharType>(detail::format_info::open, c);
-}
-
-template<class CharType>
-inline tuple_manipulator<CharType> set_close(const CharType c) {
- return tuple_manipulator<CharType>(detail::format_info::close, c);
-}
-
-template<class CharType>
-inline tuple_manipulator<CharType> set_delimiter(const CharType c) {
- return tuple_manipulator<CharType>(detail::format_info::delimiter, c);
-}
-
-
-
-
-
-// -------------------------------------------------------------
-// printing tuples to ostream in format (a b c)
-// parentheses and space are defaults, but can be overriden with manipulators
-// set_open, set_close and set_delimiter
-
-namespace detail {
-
-// Note: The order of the print functions is critical
-// to let a conforming compiler find and select the correct one.
-
-
-template<class CharType, class CharTrait, class T1>
-inline std::basic_ostream<CharType, CharTrait>&
-print(std::basic_ostream<CharType, CharTrait>& o, const cons<T1, null_type>& t) {
- return o << t.head;
-}
-
-
-template<class CharType, class CharTrait>
-inline std::basic_ostream<CharType, CharTrait>&
-print(std::basic_ostream<CharType, CharTrait>& o, const null_type&) {
- return o;
-}
-
-template<class CharType, class CharTrait, class T1, class T2>
-inline std::basic_ostream<CharType, CharTrait>&
-print(std::basic_ostream<CharType, CharTrait>& o, const cons<T1, T2>& t) {
-
- const CharType d = format_info::get_manipulator(o, format_info::delimiter);
-
- o << t.head;
-
- o << d;
-
- return print(o, t.tail);
-}
-
-template<class CharT, class Traits, class T>
-inline bool handle_width(std::basic_ostream<CharT, Traits>& o, const T& t) {
- std::streamsize width = o.width();
- if(width == 0) return false;
-
- std::basic_ostringstream<CharT, Traits> ss;
-
- ss.copyfmt(o);
- ss.tie(0);
- ss.width(0);
-
- ss << t;
- o << ss.str();
-
- return true;
-}
-
-
-} // namespace detail
-
-
-template<class CharType, class CharTrait>
-inline std::basic_ostream<CharType, CharTrait>&
-operator<<(std::basic_ostream<CharType, CharTrait>& o,
- const null_type& t) {
- if (!o.good() ) return o;
- if (detail::handle_width(o, t)) return o;
-
- const CharType l =
- detail::format_info::get_manipulator(o, detail::format_info::open);
- const CharType r =
- detail::format_info::get_manipulator(o, detail::format_info::close);
-
- o << l;
- o << r;
-
- return o;
-}
-
-template<class CharType, class CharTrait, class T1, class T2>
-inline std::basic_ostream<CharType, CharTrait>&
-operator<<(std::basic_ostream<CharType, CharTrait>& o,
- const cons<T1, T2>& t) {
- if (!o.good() ) return o;
- if (detail::handle_width(o, t)) return o;
-
- const CharType l =
- detail::format_info::get_manipulator(o, detail::format_info::open);
- const CharType r =
- detail::format_info::get_manipulator(o, detail::format_info::close);
-
- o << l;
-
- detail::print(o, t);
-
- o << r;
-
- return o;
-}
-
-
-// -------------------------------------------------------------
-// input stream operators
-
-namespace detail {
-
-
-template<class CharType, class CharTrait>
-inline std::basic_istream<CharType, CharTrait>&
-extract_and_check_delimiter(
- std::basic_istream<CharType, CharTrait> &is, format_info::manipulator_type del)
-{
- const CharType d = format_info::get_manipulator(is, del);
-
-#if defined (BOOST_NO_STD_LOCALE)
- const bool is_delimiter = !isspace(d);
-#elif defined ( __BORLANDC__ )
- const bool is_delimiter = !std::use_facet< std::ctype< CharType > >
- (is.getloc() ).is( std::ctype_base::space, d);
-#else
- const bool is_delimiter = (!std::isspace(d, is.getloc()) );
-#endif
-
- CharType c;
- if (is_delimiter) {
- is >> c;
- if (is.good() && c!=d) {
- is.setstate(std::ios::failbit);
- }
- } else {
- is >> std::ws;
- }
- return is;
-}
-
-
-template<class CharType, class CharTrait, class T1>
-inline std::basic_istream<CharType, CharTrait> &
-read (std::basic_istream<CharType, CharTrait> &is, cons<T1, null_type>& t1) {
-
- if (!is.good()) return is;
-
- return is >> t1.head;
-}
-
-template<class CharType, class CharTrait, class T1, class T2>
-inline std::basic_istream<CharType, CharTrait>&
-read(std::basic_istream<CharType, CharTrait> &is, cons<T1, T2>& t1) {
-
- if (!is.good()) return is;
-
- is >> t1.head;
-
-
- extract_and_check_delimiter(is, format_info::delimiter);
-
- return read(is, t1.tail);
-}
-
-} // end namespace detail
-
-
-template<class CharType, class CharTrait>
-inline std::basic_istream<CharType, CharTrait>&
-operator>>(std::basic_istream<CharType, CharTrait> &is, null_type&) {
-
- if (!is.good() ) return is;
-
- detail::extract_and_check_delimiter(is, detail::format_info::open);
- detail::extract_and_check_delimiter(is, detail::format_info::close);
-
- return is;
-}
-
-template<class CharType, class CharTrait, class T1, class T2>
-inline std::basic_istream<CharType, CharTrait>&
-operator>>(std::basic_istream<CharType, CharTrait>& is, cons<T1, T2>& t1) {
-
- if (!is.good() ) return is;
-
- detail::extract_and_check_delimiter(is, detail::format_info::open);
-
- detail::read(is, t1);
-
- detail::extract_and_check_delimiter(is, detail::format_info::close);
-
- return is;
-}
-
-
-} // end of namespace tuples
-} // end of namespace boost
-
-#endif // BOOST_TUPLE_IO_HPP
diff --git a/contrib/restricted/boost/tuple/CMakeLists.txt b/contrib/restricted/boost/tuple/CMakeLists.txt
new file mode 100644
index 0000000000..a3ec6b8b63
--- /dev/null
+++ b/contrib/restricted/boost/tuple/CMakeLists.txt
@@ -0,0 +1,21 @@
+
+# This file was gererated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(restricted-boost-tuple INTERFACE)
+target_include_directories(restricted-boost-tuple INTERFACE
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/boost/tuple/include
+)
+target_link_libraries(restricted-boost-tuple INTERFACE
+ contrib-libs-cxxsupp
+ yutil
+ restricted-boost-config
+ restricted-boost-core
+ restricted-boost-static_assert
+ restricted-boost-type_traits
+)
diff --git a/contrib/restricted/boost/boost/tuple/detail/tuple_basic.hpp b/contrib/restricted/boost/tuple/include/boost/tuple/detail/tuple_basic.hpp
index 1ed421660e..1ed421660e 100644
--- a/contrib/restricted/boost/boost/tuple/detail/tuple_basic.hpp
+++ b/contrib/restricted/boost/tuple/include/boost/tuple/detail/tuple_basic.hpp
diff --git a/contrib/restricted/boost/boost/tuple/tuple.hpp b/contrib/restricted/boost/tuple/include/boost/tuple/tuple.hpp
index d71e7df0af..d71e7df0af 100644
--- a/contrib/restricted/boost/boost/tuple/tuple.hpp
+++ b/contrib/restricted/boost/tuple/include/boost/tuple/tuple.hpp
diff --git a/contrib/restricted/boost/boost/tuple/tuple_comparison.hpp b/contrib/restricted/boost/tuple/include/boost/tuple/tuple_comparison.hpp
index 0a61952a78..0a61952a78 100644
--- a/contrib/restricted/boost/boost/tuple/tuple_comparison.hpp
+++ b/contrib/restricted/boost/tuple/include/boost/tuple/tuple_comparison.hpp