Linux v69820.1blu.de 4.15.0 #1 SMP Mon Sep 30 15:36:27 MSK 2024 x86_64
Apache/2.4.58
Server IP : 195.90.215.149 & Your IP : 216.73.216.250
Domains :
Cant Read [ /etc/named.conf ]
User : www-data
Terminal
Auto Root
Create File
Create Folder
Localroot Suggester
Backdoor Destroyer
Readme
/
usr /
include /
c++ /
13 /
Delete
Unzip
Name
Size
Permission
Date
Action
backward
[ DIR ]
drwxr-xr-x
2026-04-26 19:49
bits
[ DIR ]
drwxr-xr-x
2026-04-26 19:49
debug
[ DIR ]
drwxr-xr-x
2026-04-26 19:49
decimal
[ DIR ]
drwxr-xr-x
2026-04-26 19:49
experimental
[ DIR ]
drwxr-xr-x
2026-04-26 19:49
ext
[ DIR ]
drwxr-xr-x
2026-04-26 19:49
parallel
[ DIR ]
drwxr-xr-x
2026-04-26 19:49
pstl
[ DIR ]
drwxr-xr-x
2026-04-26 19:49
tr1
[ DIR ]
drwxr-xr-x
2026-04-26 19:49
tr2
[ DIR ]
drwxr-xr-x
2026-04-26 19:49
algorithm
2.97
KB
-rw-r--r--
2025-12-18 20:59
any
18.38
KB
-rw-r--r--
2025-12-18 20:59
array
15.21
KB
-rw-r--r--
2025-12-18 20:59
atomic
50.36
KB
-rw-r--r--
2025-12-18 20:59
barrier
7.89
KB
-rw-r--r--
2025-12-18 20:59
bit
14.04
KB
-rw-r--r--
2025-12-18 20:59
bitset
49.14
KB
-rw-r--r--
2025-12-18 20:59
cassert
1.61
KB
-rw-r--r--
2025-12-18 20:59
ccomplex
1.3
KB
-rw-r--r--
2025-12-18 20:59
cctype
2.35
KB
-rw-r--r--
2025-12-18 20:59
cerrno
1.73
KB
-rw-r--r--
2025-12-18 20:59
cfenv
2
KB
-rw-r--r--
2025-12-18 20:59
cfloat
1.84
KB
-rw-r--r--
2025-12-18 20:59
charconv
29.52
KB
-rw-r--r--
2025-12-18 20:59
chrono
94.76
KB
-rw-r--r--
2025-12-18 20:59
cinttypes
2.11
KB
-rw-r--r--
2025-12-18 20:59
ciso646
1.43
KB
-rw-r--r--
2025-12-18 20:59
climits
1.87
KB
-rw-r--r--
2025-12-18 20:59
clocale
1.86
KB
-rw-r--r--
2025-12-18 20:59
cmath
91.77
KB
-rw-r--r--
2025-12-18 20:59
codecvt
5.15
KB
-rw-r--r--
2025-12-18 20:59
compare
36.91
KB
-rw-r--r--
2025-12-18 20:59
complex
74.66
KB
-rw-r--r--
2025-12-18 20:59
complex.h
1.56
KB
-rw-r--r--
2025-12-18 20:59
concepts
12.51
KB
-rw-r--r--
2025-12-18 20:59
condition_variable
12.59
KB
-rw-r--r--
2025-12-18 20:59
coroutine
9.44
KB
-rw-r--r--
2025-12-18 20:59
csetjmp
1.9
KB
-rw-r--r--
2025-12-18 20:59
csignal
1.81
KB
-rw-r--r--
2025-12-18 20:59
cstdalign
1.37
KB
-rw-r--r--
2025-12-18 20:59
cstdarg
1.82
KB
-rw-r--r--
2025-12-18 20:59
cstdbool
1.37
KB
-rw-r--r--
2025-12-18 20:59
cstddef
6.5
KB
-rw-r--r--
2025-12-18 20:59
cstdint
3.76
KB
-rw-r--r--
2025-12-18 20:59
cstdio
4.33
KB
-rw-r--r--
2025-12-18 20:59
cstdlib
6.38
KB
-rw-r--r--
2025-12-18 20:59
cstring
3.08
KB
-rw-r--r--
2025-12-18 20:59
ctgmath
1.33
KB
-rw-r--r--
2025-12-18 20:59
ctime
2.24
KB
-rw-r--r--
2025-12-18 20:59
cuchar
2.84
KB
-rw-r--r--
2025-12-18 20:59
cwchar
6.39
KB
-rw-r--r--
2025-12-18 20:59
cwctype
2.73
KB
-rw-r--r--
2025-12-18 20:59
cxxabi.h
21.76
KB
-rw-r--r--
2025-12-18 20:59
deque
4.39
KB
-rw-r--r--
2025-12-18 20:59
exception
5.28
KB
-rw-r--r--
2025-12-18 20:59
execution
1.83
KB
-rw-r--r--
2025-12-18 20:59
expected
49.72
KB
-rw-r--r--
2025-12-18 20:59
fenv.h
1.97
KB
-rw-r--r--
2025-12-18 20:59
filesystem
1.66
KB
-rw-r--r--
2025-12-18 20:59
format
113.64
KB
-rw-r--r--
2025-12-18 20:59
forward_list
2.65
KB
-rw-r--r--
2025-12-18 20:59
fstream
39.77
KB
-rw-r--r--
2025-12-18 20:59
functional
45.45
KB
-rw-r--r--
2025-12-18 20:59
future
51.89
KB
-rw-r--r--
2025-12-18 20:59
initializer_list
2.93
KB
-rw-r--r--
2025-12-18 20:59
iomanip
16.22
KB
-rw-r--r--
2025-12-18 20:59
ios
1.61
KB
-rw-r--r--
2025-12-18 20:59
iosfwd
8.21
KB
-rw-r--r--
2025-12-18 20:59
iostream
3
KB
-rw-r--r--
2025-12-18 20:59
istream
35.47
KB
-rw-r--r--
2025-12-18 20:59
iterator
2.76
KB
-rw-r--r--
2025-12-18 20:59
latch
2.72
KB
-rw-r--r--
2025-12-18 20:59
limits
76.4
KB
-rw-r--r--
2025-12-18 20:59
list
3.6
KB
-rw-r--r--
2025-12-18 20:59
locale
1.5
KB
-rw-r--r--
2025-12-18 20:59
map
4.05
KB
-rw-r--r--
2025-12-18 20:59
math.h
4.47
KB
-rw-r--r--
2025-12-18 20:59
memory
4.82
KB
-rw-r--r--
2025-12-18 20:59
memory_resource
14.14
KB
-rw-r--r--
2025-12-18 20:59
mutex
26.63
KB
-rw-r--r--
2025-12-18 20:59
new
8.45
KB
-rw-r--r--
2025-12-18 20:59
numbers
6.87
KB
-rw-r--r--
2025-12-18 20:59
numeric
25.38
KB
-rw-r--r--
2025-12-18 20:59
optional
44.1
KB
-rw-r--r--
2025-12-18 20:59
ostream
26.56
KB
-rw-r--r--
2025-12-18 20:59
queue
2.46
KB
-rw-r--r--
2025-12-18 20:59
random
1.71
KB
-rw-r--r--
2025-12-18 20:59
ranges
253.81
KB
-rw-r--r--
2025-12-18 20:59
ratio
20.97
KB
-rw-r--r--
2025-12-18 20:59
regex
3.08
KB
-rw-r--r--
2025-12-18 20:59
scoped_allocator
17.33
KB
-rw-r--r--
2025-12-18 20:59
semaphore
2.98
KB
-rw-r--r--
2025-12-18 20:59
set
3.91
KB
-rw-r--r--
2025-12-18 20:59
shared_mutex
24.52
KB
-rw-r--r--
2025-12-18 20:59
source_location
2.68
KB
-rw-r--r--
2025-12-18 20:59
span
13.82
KB
-rw-r--r--
2025-12-18 20:59
spanstream
12.17
KB
-rw-r--r--
2025-12-18 20:59
sstream
38.83
KB
-rw-r--r--
2025-12-18 20:59
stack
2.38
KB
-rw-r--r--
2025-12-18 20:59
stacktrace
21.37
KB
-rw-r--r--
2025-12-18 20:59
stdatomic.h
3.97
KB
-rw-r--r--
2025-12-18 20:59
stdexcept
9.65
KB
-rw-r--r--
2025-12-18 20:59
stdfloat
1.72
KB
-rw-r--r--
2025-12-18 20:59
stdlib.h
2.25
KB
-rw-r--r--
2025-12-18 20:59
stop_token
15.7
KB
-rw-r--r--
2025-12-18 20:59
streambuf
29.24
KB
-rw-r--r--
2025-12-18 20:59
string
3.87
KB
-rw-r--r--
2025-12-18 20:59
string_view
27.33
KB
-rw-r--r--
2025-12-18 20:59
syncstream
8.17
KB
-rw-r--r--
2025-12-18 20:59
system_error
17.96
KB
-rw-r--r--
2025-12-18 20:59
tgmath.h
1.33
KB
-rw-r--r--
2025-12-18 20:59
thread
7.33
KB
-rw-r--r--
2025-12-18 20:59
tuple
76.49
KB
-rw-r--r--
2025-12-18 20:59
type_traits
112.36
KB
-rw-r--r--
2025-12-18 20:59
typeindex
3.43
KB
-rw-r--r--
2025-12-18 20:59
typeinfo
8.11
KB
-rw-r--r--
2025-12-18 20:59
unordered_map
3.37
KB
-rw-r--r--
2025-12-18 20:59
unordered_set
3.23
KB
-rw-r--r--
2025-12-18 20:59
utility
6.98
KB
-rw-r--r--
2025-12-18 20:59
valarray
40.2
KB
-rw-r--r--
2025-12-18 20:59
variant
64.72
KB
-rw-r--r--
2025-12-18 20:59
vector
4.72
KB
-rw-r--r--
2025-12-18 20:59
version
12.32
KB
-rw-r--r--
2025-12-18 20:59
Save
Rename
// Components for manipulating non-owning sequences of objects -*- C++ -*- // Copyright (C) 2019-2023 Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the // terms of the GNU General Public License as published by the // Free Software Foundation; either version 3, or (at your option) // any later version. // This library is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // Under Section 7 of GPL version 3, you are granted additional // permissions described in the GCC Runtime Library Exception, version // 3.1, as published by the Free Software Foundation. // You should have received a copy of the GNU General Public License and // a copy of the GCC Runtime Library Exception along with this program; // see the files COPYING3 and COPYING.RUNTIME respectively. If not, see // <http://www.gnu.org/licenses/>. /** @file span * This is a Standard C++ Library header. */ // // P0122 span library // Contributed by ThePhD // #ifndef _GLIBCXX_SPAN #define _GLIBCXX_SPAN 1 #pragma GCC system_header #if __cplusplus > 201703L #include <array> #include <cstddef> #include <bits/stl_iterator.h> #include <bits/ranges_base.h> #if __cpp_lib_concepts namespace std _GLIBCXX_VISIBILITY(default) { _GLIBCXX_BEGIN_NAMESPACE_VERSION #define __cpp_lib_span 202002L inline constexpr size_t dynamic_extent = static_cast<size_t>(-1); template<typename _Type, size_t _Extent> class span; namespace __detail { template<typename _Tp> inline constexpr bool __is_span = false; template<typename _Tp, size_t _Num> inline constexpr bool __is_span<span<_Tp, _Num>> = true; template<typename _Tp> inline constexpr bool __is_std_array = false; template<typename _Tp, size_t _Num> inline constexpr bool __is_std_array<std::array<_Tp, _Num>> = true; template<size_t _Extent> class __extent_storage { public: constexpr __extent_storage(size_t) noexcept { } static constexpr size_t _M_extent() noexcept { return _Extent; } }; template<> class __extent_storage<dynamic_extent> { public: constexpr __extent_storage(size_t __extent) noexcept : _M_extent_value(__extent) { } constexpr size_t _M_extent() const noexcept { return this->_M_extent_value; } private: size_t _M_extent_value; }; } // namespace __detail template<typename _Type, size_t _Extent = dynamic_extent> class span { template<size_t _Offset, size_t _Count> static constexpr size_t _S_subspan_extent() { if constexpr (_Count != dynamic_extent) return _Count; else if constexpr (extent != dynamic_extent) return _Extent - _Offset; else return dynamic_extent; } // _GLIBCXX_RESOLVE_LIB_DEFECTS // 3255. span's array constructor is too strict template<typename _Tp, size_t _ArrayExtent> requires (_Extent == dynamic_extent || _ArrayExtent == _Extent) using __is_compatible_array = __is_array_convertible<_Type, _Tp>; template<typename _Ref> using __is_compatible_ref = __is_array_convertible<_Type, remove_reference_t<_Ref>>; public: // member types using element_type = _Type; using value_type = remove_cv_t<_Type>; using size_type = size_t; using difference_type = ptrdiff_t; using pointer = _Type*; using const_pointer = const _Type*; using reference = element_type&; using const_reference = const element_type&; using iterator = __gnu_cxx::__normal_iterator<pointer, span>; using reverse_iterator = std::reverse_iterator<iterator>; #if __cplusplus > 202002L using const_iterator = std::const_iterator<iterator>; using const_reverse_iterator = std::const_iterator<reverse_iterator>; #endif // member constants static constexpr size_t extent = _Extent; // constructors, copy and assignment constexpr span() noexcept requires (_Extent == dynamic_extent || _Extent == 0) : _M_ptr(nullptr), _M_extent(0) { } template<contiguous_iterator _It> requires __is_compatible_ref<iter_reference_t<_It>>::value constexpr explicit(extent != dynamic_extent) span(_It __first, size_type __count) noexcept : _M_ptr(std::to_address(__first)), _M_extent(__count) { if constexpr (_Extent != dynamic_extent) { __glibcxx_assert(__count == _Extent); } __glibcxx_requires_valid_range(__first, __first + __count); } template<contiguous_iterator _It, sized_sentinel_for<_It> _End> requires __is_compatible_ref<iter_reference_t<_It>>::value && (!is_convertible_v<_End, size_type>) constexpr explicit(extent != dynamic_extent) span(_It __first, _End __last) noexcept(noexcept(__last - __first)) : _M_ptr(std::to_address(__first)), _M_extent(static_cast<size_type>(__last - __first)) { if constexpr (_Extent != dynamic_extent) { __glibcxx_assert((__last - __first) == _Extent); } __glibcxx_requires_valid_range(__first, __last); } template<size_t _ArrayExtent> requires (_Extent == dynamic_extent || _ArrayExtent == _Extent) constexpr span(type_identity_t<element_type> (&__arr)[_ArrayExtent]) noexcept : span(static_cast<pointer>(__arr), _ArrayExtent) { } template<typename _Tp, size_t _ArrayExtent> requires __is_compatible_array<_Tp, _ArrayExtent>::value constexpr span(array<_Tp, _ArrayExtent>& __arr) noexcept : span(static_cast<pointer>(__arr.data()), _ArrayExtent) { } template<typename _Tp, size_t _ArrayExtent> requires __is_compatible_array<const _Tp, _ArrayExtent>::value constexpr span(const array<_Tp, _ArrayExtent>& __arr) noexcept : span(static_cast<pointer>(__arr.data()), _ArrayExtent) { } template<typename _Range> requires (!__detail::__is_span<remove_cvref_t<_Range>>) && (!__detail::__is_std_array<remove_cvref_t<_Range>>) && (!is_array_v<remove_cvref_t<_Range>>) && ranges::contiguous_range<_Range> && ranges::sized_range<_Range> && (ranges::borrowed_range<_Range> || is_const_v<element_type>) && __is_compatible_ref<ranges::range_reference_t<_Range>>::value constexpr explicit(extent != dynamic_extent) span(_Range&& __range) noexcept(noexcept(ranges::data(__range)) && noexcept(ranges::size(__range))) : span(ranges::data(__range), ranges::size(__range)) { if constexpr (extent != dynamic_extent) { __glibcxx_assert(ranges::size(__range) == extent); } } constexpr span(const span&) noexcept = default; template<typename _OType, size_t _OExtent> requires (_Extent == dynamic_extent || _OExtent == dynamic_extent || _Extent == _OExtent) && (__is_array_convertible<_Type, _OType>::value) constexpr explicit(extent != dynamic_extent && _OExtent == dynamic_extent) span(const span<_OType, _OExtent>& __s) noexcept : _M_extent(__s.size()), _M_ptr(__s.data()) { if constexpr (extent != dynamic_extent) { __glibcxx_assert(__s.size() == extent); } } ~span() noexcept = default; constexpr span& operator=(const span&) noexcept = default; // observers [[nodiscard]] constexpr size_type size() const noexcept { return this->_M_extent._M_extent(); } [[nodiscard]] constexpr size_type size_bytes() const noexcept { return this->_M_extent._M_extent() * sizeof(element_type); } [[nodiscard]] constexpr bool empty() const noexcept { return size() == 0; } // element access [[nodiscard]] constexpr reference front() const noexcept { __glibcxx_assert(!empty()); return *this->_M_ptr; } [[nodiscard]] constexpr reference back() const noexcept { __glibcxx_assert(!empty()); return *(this->_M_ptr + (size() - 1)); } [[nodiscard]] constexpr reference operator[](size_type __idx) const noexcept { __glibcxx_assert(__idx < size()); return *(this->_M_ptr + __idx); } [[nodiscard]] constexpr pointer data() const noexcept { return this->_M_ptr; } // iterator support [[nodiscard]] constexpr iterator begin() const noexcept { return iterator(this->_M_ptr); } [[nodiscard]] constexpr iterator end() const noexcept { return iterator(this->_M_ptr + this->size()); } [[nodiscard]] constexpr reverse_iterator rbegin() const noexcept { return reverse_iterator(this->end()); } [[nodiscard]] constexpr reverse_iterator rend() const noexcept { return reverse_iterator(this->begin()); } #if __cplusplus > 202002L [[nodiscard]] constexpr const_iterator cbegin() const noexcept { return begin(); } [[nodiscard]] constexpr const_iterator cend() const noexcept { return end(); } [[nodiscard]] constexpr const_reverse_iterator crbegin() const noexcept { return rbegin(); } [[nodiscard]] constexpr const_reverse_iterator crend() const noexcept { return rend(); } #endif // subviews template<size_t _Count> [[nodiscard]] constexpr span<element_type, _Count> first() const noexcept { if constexpr (_Extent == dynamic_extent) __glibcxx_assert(_Count <= size()); else static_assert(_Count <= extent); using _Sp = span<element_type, _Count>; return _Sp{ this->data(), _Count }; } [[nodiscard]] constexpr span<element_type, dynamic_extent> first(size_type __count) const noexcept { __glibcxx_assert(__count <= size()); return { this->data(), __count }; } template<size_t _Count> [[nodiscard]] constexpr span<element_type, _Count> last() const noexcept { if constexpr (_Extent == dynamic_extent) __glibcxx_assert(_Count <= size()); else static_assert(_Count <= extent); using _Sp = span<element_type, _Count>; return _Sp{ this->data() + (this->size() - _Count), _Count }; } [[nodiscard]] constexpr span<element_type, dynamic_extent> last(size_type __count) const noexcept { __glibcxx_assert(__count <= size()); return { this->data() + (this->size() - __count), __count }; } template<size_t _Offset, size_t _Count = dynamic_extent> [[nodiscard]] constexpr auto subspan() const noexcept -> span<element_type, _S_subspan_extent<_Offset, _Count>()> { if constexpr (_Extent == dynamic_extent) { __glibcxx_assert(_Offset <= size()); } else static_assert(_Offset <= extent); using _Sp = span<element_type, _S_subspan_extent<_Offset, _Count>()>; if constexpr (_Count == dynamic_extent) return _Sp{ this->data() + _Offset, this->size() - _Offset }; else { if constexpr (_Extent == dynamic_extent) { __glibcxx_assert(_Count <= size()); __glibcxx_assert(_Count <= (size() - _Offset)); } else { static_assert(_Count <= extent); static_assert(_Count <= (extent - _Offset)); } return _Sp{ this->data() + _Offset, _Count }; } } [[nodiscard]] constexpr span<element_type, dynamic_extent> subspan(size_type __offset, size_type __count = dynamic_extent) const noexcept { __glibcxx_assert(__offset <= size()); if (__count == dynamic_extent) __count = this->size() - __offset; else { __glibcxx_assert(__count <= size()); __glibcxx_assert(__offset + __count <= size()); } return {this->data() + __offset, __count}; } private: pointer _M_ptr; [[no_unique_address]] __detail::__extent_storage<extent> _M_extent; }; // deduction guides template<typename _Type, size_t _ArrayExtent> span(_Type(&)[_ArrayExtent]) -> span<_Type, _ArrayExtent>; template<typename _Type, size_t _ArrayExtent> span(array<_Type, _ArrayExtent>&) -> span<_Type, _ArrayExtent>; template<typename _Type, size_t _ArrayExtent> span(const array<_Type, _ArrayExtent>&) -> span<const _Type, _ArrayExtent>; template<contiguous_iterator _Iter, typename _End> span(_Iter, _End) -> span<remove_reference_t<iter_reference_t<_Iter>>>; template<ranges::contiguous_range _Range> span(_Range &&) -> span<remove_reference_t<ranges::range_reference_t<_Range&>>>; template<typename _Type, size_t _Extent> [[nodiscard]] inline span<const byte, _Extent == dynamic_extent ? dynamic_extent : _Extent * sizeof(_Type)> as_bytes(span<_Type, _Extent> __sp) noexcept { auto data = reinterpret_cast<const byte*>(__sp.data()); auto size = __sp.size_bytes(); constexpr auto extent = _Extent == dynamic_extent ? dynamic_extent : _Extent * sizeof(_Type); return span<const byte, extent>{data, size}; } template<typename _Type, size_t _Extent> requires (!is_const_v<_Type>) inline span<byte, _Extent == dynamic_extent ? dynamic_extent : _Extent * sizeof(_Type)> as_writable_bytes [[nodiscard]] (span<_Type, _Extent> __sp) noexcept { auto data = reinterpret_cast<byte*>(__sp.data()); auto size = __sp.size_bytes(); constexpr auto extent = _Extent == dynamic_extent ? dynamic_extent : _Extent * sizeof(_Type); return span<byte, extent>{data, size}; } namespace ranges { // Opt-in to borrowed_range concept template<typename _ElementType, size_t _Extent> inline constexpr bool enable_borrowed_range<span<_ElementType, _Extent>> = true; // Opt-in to view concept template<typename _ElementType, size_t _Extent> inline constexpr bool enable_view<span<_ElementType, _Extent>> = true; } _GLIBCXX_END_NAMESPACE_VERSION } // namespace std #endif // concepts #endif // C++20 #endif // _GLIBCXX_SPAN