/
usr
/
include
/
c++
/
9
/
bits
/
/usr/include/c++/9/bits
mkdir
upload
Name
Size
Mode
Actions
algorithmfwd.h
21737
0644
edit
dl
rm
allocated_ptr.h
3293
0644
edit
dl
rm
allocator.h
7942
0644
edit
dl
rm
alloc_traits.h
21481
0644
edit
dl
rm
atomic_base.h
24993
0644
edit
dl
rm
atomic_futex.h
9499
0644
edit
dl
rm
atomic_lockfree_defines.h
2353
0644
edit
dl
rm
basic_ios.h
16080
0644
edit
dl
rm
basic_ios.tcc
6083
0644
edit
dl
rm
basic_string.h
247075
0644
edit
dl
rm
basic_string.tcc
53891
0644
edit
dl
rm
boost_concept_check.h
27161
0644
edit
dl
rm
c++0x_warning.h
1474
0644
edit
dl
rm
char_traits.h
24828
0644
edit
dl
rm
codecvt.h
25429
0644
edit
dl
rm
concept_check.h
3423
0644
edit
dl
rm
cpp_type_traits.h
9947
0644
edit
dl
rm
cxxabi_forced.h
1811
0644
edit
dl
rm
cxxabi_init_exception.h
2220
0644
edit
dl
rm
deque.tcc
34404
0644
edit
dl
rm
enable_special_members.h
12387
0644
edit
dl
rm
erase_if.h
2037
0644
edit
dl
rm
exception.h
2486
0644
edit
dl
rm
exception_defines.h
1645
0644
edit
dl
rm
exception_ptr.h
5982
0644
edit
dl
rm
forward_list.h
49405
0644
edit
dl
rm
forward_list.tcc
13871
0644
edit
dl
rm
fstream.tcc
33663
0644
edit
dl
rm
fs_dir.h
15168
0644
edit
dl
rm
fs_fwd.h
11687
0644
edit
dl
rm
fs_ops.h
9731
0644
edit
dl
rm
fs_path.h
36954
0644
edit
dl
rm
functexcept.h
3433
0644
edit
dl
rm
functional_hash.h
8568
0644
edit
dl
rm
gslice.h
5519
0644
edit
dl
rm
gslice_array.h
7852
0644
edit
dl
rm
hashtable.h
74814
0644
edit
dl
rm
hashtable_policy.h
68109
0644
edit
dl
rm
hash_bytes.h
2146
0644
edit
dl
rm
indirect_array.h
7862
0644
edit
dl
rm
invoke.h
3657
0644
edit
dl
rm
ios_base.h
31434
0644
edit
dl
rm
istream.tcc
31093
0644
edit
dl
rm
list.tcc
16968
0644
edit
dl
rm
localefwd.h
5941
0644
edit
dl
rm
locale_classes.h
24903
0644
edit
dl
rm
locale_classes.tcc
8375
0644
edit
dl
rm
locale_conv.h
18801
0644
edit
dl
rm
locale_facets.h
92339
0644
edit
dl
rm
locale_facets.tcc
39548
0644
edit
dl
rm
locale_facets_nonio.h
68994
0644
edit
dl
rm
locale_facets_nonio.tcc
45280
0644
edit
dl
rm
mask_array.h
7676
0644
edit
dl
rm
memoryfwd.h
2453
0644
edit
dl
rm
move.h
6529
0644
edit
dl
rm
nested_exception.h
4803
0644
edit
dl
rm
node_handle.h
8216
0644
edit
dl
rm
ostream.tcc
12315
0644
edit
dl
rm
ostream_insert.h
4002
0644
edit
dl
rm
parse_numbers.h
7944
0644
edit
dl
rm
postypes.h
8465
0644
edit
dl
rm
predefined_ops.h
9083
0644
edit
dl
rm
ptr_traits.h
6728
0644
edit
dl
rm
quoted_string.h
5053
0644
edit
dl
rm
random.h
178041
0644
edit
dl
rm
random.tcc
105619
0644
edit
dl
rm
range_access.h
10084
0644
edit
dl
rm
refwrap.h
12927
0644
edit
dl
rm
regex.h
98707
0644
edit
dl
rm
regex.tcc
16574
0644
edit
dl
rm
regex_automaton.h
10739
0644
edit
dl
rm
regex_automaton.tcc
7722
0644
edit
dl
rm
regex_compiler.h
16482
0644
edit
dl
rm
regex_compiler.tcc
18929
0644
edit
dl
rm
regex_constants.h
14707
0644
edit
dl
rm
regex_error.h
4907
0644
edit
dl
rm
regex_executor.h
7489
0644
edit
dl
rm
regex_executor.tcc
18841
0644
edit
dl
rm
regex_scanner.h
7089
0644
edit
dl
rm
regex_scanner.tcc
15009
0644
edit
dl
rm
shared_ptr.h
24221
0644
edit
dl
rm
shared_ptr_atomic.h
9775
0644
edit
dl
rm
shared_ptr_base.h
53771
0644
edit
dl
rm
slice_array.h
9430
0644
edit
dl
rm
specfun.h
47052
0644
edit
dl
rm
sstream.tcc
10142
0644
edit
dl
rm
std_abs.h
3384
0644
edit
dl
rm
std_function.h
23566
0644
edit
dl
rm
std_mutex.h
4768
0644
edit
dl
rm
stl_algo.h
215416
0644
edit
dl
rm
stl_algobase.h
51417
0644
edit
dl
rm
stl_bvector.h
33888
0644
edit
dl
rm
stl_construct.h
7397
0644
edit
dl
rm
stl_deque.h
80116
0644
edit
dl
rm
stl_function.h
42293
0644
edit
dl
rm
stl_heap.h
20206
0644
edit
dl
rm
stl_iterator.h
42755
0644
edit
dl
rm
stl_iterator_base_funcs.h
8178
0644
edit
dl
rm
stl_iterator_base_types.h
8682
0644
edit
dl
rm
stl_list.h
67809
0644
edit
dl
rm
stl_map.h
53495
0644
edit
dl
rm
stl_multimap.h
42240
0644
edit
dl
rm
stl_multiset.h
36486
0644
edit
dl
rm
stl_numeric.h
14376
0644
edit
dl
rm
stl_pair.h
18642
0644
edit
dl
rm
stl_queue.h
24580
0644
edit
dl
rm
stl_raw_storage_iter.h
3830
0644
edit
dl
rm
stl_relops.h
4594
0644
edit
dl
rm
stl_set.h
36790
0644
edit
dl
rm
stl_stack.h
12228
0644
edit
dl
rm
stl_tempbuf.h
8287
0644
edit
dl
rm
stl_tree.h
75018
0644
edit
dl
rm
stl_uninitialized.h
31455
0644
edit
dl
rm
stl_vector.h
64968
0644
edit
dl
rm
streambuf.tcc
4929
0644
edit
dl
rm
streambuf_iterator.h
13889
0644
edit
dl
rm
stream_iterator.h
6867
0644
edit
dl
rm
stringfwd.h
2690
0644
edit
dl
rm
string_view.tcc
6698
0644
edit
dl
rm
uniform_int_dist.h
10248
0644
edit
dl
rm
unique_lock.h
6102
0644
edit
dl
rm
unique_ptr.h
27564
0644
edit
dl
rm
unordered_map.h
76884
0644
edit
dl
rm
unordered_set.h
60677
0644
edit
dl
rm
uses_allocator.h
6824
0644
edit
dl
rm
valarray_after.h
22839
0644
edit
dl
rm
valarray_array.h
21295
0644
edit
dl
rm
valarray_array.tcc
7254
0644
edit
dl
rm
valarray_before.h
19142
0644
edit
dl
rm
vector.tcc
30870
0644
edit
dl
rm
Edit:
/usr/include/c++/9/bits/stl_construct.h
(7397B)
// nonstandard construct and destroy functions -*- C++ -*- // Copyright (C) 2001-2019 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/>. /* * * Copyright (c) 1994 * Hewlett-Packard Company * * Permission to use, copy, modify, distribute and sell this software * and its documentation for any purpose is hereby granted without fee, * provided that the above copyright notice appear in all copies and * that both that copyright notice and this permission notice appear * in supporting documentation. Hewlett-Packard Company makes no * representations about the suitability of this software for any * purpose. It is provided "as is" without express or implied warranty. * * * Copyright (c) 1996,1997 * Silicon Graphics Computer Systems, Inc. * * Permission to use, copy, modify, distribute and sell this software * and its documentation for any purpose is hereby granted without fee, * provided that the above copyright notice appear in all copies and * that both that copyright notice and this permission notice appear * in supporting documentation. Silicon Graphics makes no * representations about the suitability of this software for any * purpose. It is provided "as is" without express or implied warranty. */ /** @file bits/stl_construct.h * This is an internal header file, included by other library headers. * Do not attempt to use it directly. @headername{memory} */ #ifndef _STL_CONSTRUCT_H #define _STL_CONSTRUCT_H 1 #include <new> #include <bits/move.h> #include <ext/alloc_traits.h> namespace std _GLIBCXX_VISIBILITY(default) { _GLIBCXX_BEGIN_NAMESPACE_VERSION /** * Constructs an object in existing memory by invoking an allocated * object's constructor with an initializer. */ #if __cplusplus >= 201103L template<typename _T1, typename... _Args> inline void _Construct(_T1* __p, _Args&&... __args) { ::new(static_cast<void*>(__p)) _T1(std::forward<_Args>(__args)...); } #else template<typename _T1, typename _T2> inline void _Construct(_T1* __p, const _T2& __value) { // _GLIBCXX_RESOLVE_LIB_DEFECTS // 402. wrong new expression in [some_]allocator::construct ::new(static_cast<void*>(__p)) _T1(__value); } #endif template<typename _T1> inline void _Construct_novalue(_T1* __p) { ::new(static_cast<void*>(__p)) _T1; } /** * Destroy the object pointed to by a pointer type. */ template<typename _Tp> inline void _Destroy(_Tp* __pointer) { __pointer->~_Tp(); } template<bool> struct _Destroy_aux { template<typename _ForwardIterator> static void __destroy(_ForwardIterator __first, _ForwardIterator __last) { for (; __first != __last; ++__first) std::_Destroy(std::__addressof(*__first)); } }; template<> struct _Destroy_aux<true> { template<typename _ForwardIterator> static void __destroy(_ForwardIterator, _ForwardIterator) { } }; /** * Destroy a range of objects. If the value_type of the object has * a trivial destructor, the compiler should optimize all of this * away, otherwise the objects' destructors must be invoked. */ template<typename _ForwardIterator> inline void _Destroy(_ForwardIterator __first, _ForwardIterator __last) { typedef typename iterator_traits<_ForwardIterator>::value_type _Value_type; #if __cplusplus >= 201103L // A deleted destructor is trivial, this ensures we reject such types: static_assert(is_destructible<_Value_type>::value, "value type is destructible"); #endif std::_Destroy_aux<__has_trivial_destructor(_Value_type)>:: __destroy(__first, __last); } template<bool> struct _Destroy_n_aux { template<typename _ForwardIterator, typename _Size> static _ForwardIterator __destroy_n(_ForwardIterator __first, _Size __count) { for (; __count > 0; (void)++__first, --__count) std::_Destroy(std::__addressof(*__first)); return __first; } }; template<> struct _Destroy_n_aux<true> { template<typename _ForwardIterator, typename _Size> static _ForwardIterator __destroy_n(_ForwardIterator __first, _Size __count) { std::advance(__first, __count); return __first; } }; /** * Destroy a range of objects. If the value_type of the object has * a trivial destructor, the compiler should optimize all of this * away, otherwise the objects' destructors must be invoked. */ template<typename _ForwardIterator, typename _Size> inline _ForwardIterator _Destroy_n(_ForwardIterator __first, _Size __count) { typedef typename iterator_traits<_ForwardIterator>::value_type _Value_type; #if __cplusplus >= 201103L // A deleted destructor is trivial, this ensures we reject such types: static_assert(is_destructible<_Value_type>::value, "value type is destructible"); #endif return std::_Destroy_n_aux<__has_trivial_destructor(_Value_type)>:: __destroy_n(__first, __count); } /** * Destroy a range of objects using the supplied allocator. For * nondefault allocators we do not optimize away invocation of * destroy() even if _Tp has a trivial destructor. */ template<typename _ForwardIterator, typename _Allocator> void _Destroy(_ForwardIterator __first, _ForwardIterator __last, _Allocator& __alloc) { typedef __gnu_cxx::__alloc_traits<_Allocator> __traits; for (; __first != __last; ++__first) __traits::destroy(__alloc, std::__addressof(*__first)); } template<typename _ForwardIterator, typename _Tp> inline void _Destroy(_ForwardIterator __first, _ForwardIterator __last, allocator<_Tp>&) { _Destroy(__first, __last); } #if __cplusplus > 201402L template <typename _Tp> inline void destroy_at(_Tp* __location) { std::_Destroy(__location); } template <typename _ForwardIterator> inline void destroy(_ForwardIterator __first, _ForwardIterator __last) { std::_Destroy(__first, __last); } template <typename _ForwardIterator, typename _Size> inline _ForwardIterator destroy_n(_ForwardIterator __first, _Size __count) { return std::_Destroy_n(__first, __count); } #endif _GLIBCXX_END_NAMESPACE_VERSION } // namespace std #endif /* _STL_CONSTRUCT_H */
Save
cmd:
run