зеркало из https://github.com/microsoft/STL.git
Cleanups: Friendship is magic (#3524)
This commit is contained in:
Родитель
326473d595
Коммит
14357520a5
|
@ -29,7 +29,7 @@ public:
|
||||||
#pragma warning(pop)
|
#pragma warning(pop)
|
||||||
|
|
||||||
class reference { // proxy for an element
|
class reference { // proxy for an element
|
||||||
friend bitset<_Bits>;
|
friend bitset;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
_CONSTEXPR23 reference(const reference&) = default;
|
_CONSTEXPR23 reference(const reference&) = default;
|
||||||
|
|
|
@ -135,6 +135,8 @@ protected:
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
class bad_array_new_length;
|
||||||
|
|
||||||
class bad_alloc : public exception { // base of all bad allocation exceptions
|
class bad_alloc : public exception { // base of all bad allocation exceptions
|
||||||
public:
|
public:
|
||||||
__CLR_OR_THIS_CALL bad_alloc() noexcept
|
__CLR_OR_THIS_CALL bad_alloc() noexcept
|
||||||
|
@ -143,7 +145,7 @@ public:
|
||||||
__CLR_OR_THIS_CALL ~bad_alloc() noexcept override {}
|
__CLR_OR_THIS_CALL ~bad_alloc() noexcept override {}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
friend class bad_array_new_length;
|
friend bad_array_new_length;
|
||||||
|
|
||||||
__CLR_OR_THIS_CALL bad_alloc(const char* _Message) noexcept
|
__CLR_OR_THIS_CALL bad_alloc(const char* _Message) noexcept
|
||||||
: exception(_Message, 1) {} // construct from message string with no memory allocation
|
: exception(_Message, 1) {} // construct from message string with no memory allocation
|
||||||
|
|
|
@ -2080,6 +2080,9 @@ namespace filesystem {
|
||||||
using file_time_type = _CHRONO time_point<filesystem::_File_time_clock>;
|
using file_time_type = _CHRONO time_point<filesystem::_File_time_clock>;
|
||||||
#endif // ^^^ !_HAS_CXX20
|
#endif // ^^^ !_HAS_CXX20
|
||||||
|
|
||||||
|
struct _Dir_enum_impl;
|
||||||
|
struct _Recursive_dir_enum_impl;
|
||||||
|
|
||||||
_EXPORT_STD class directory_entry {
|
_EXPORT_STD class directory_entry {
|
||||||
public:
|
public:
|
||||||
// [fs.dir.entry.cons], constructors and destructor
|
// [fs.dir.entry.cons], constructors and destructor
|
||||||
|
@ -2472,8 +2475,8 @@ namespace filesystem {
|
||||||
return _Error;
|
return _Error;
|
||||||
}
|
}
|
||||||
|
|
||||||
friend struct _Dir_enum_impl;
|
friend _Dir_enum_impl;
|
||||||
friend struct _Recursive_dir_enum_impl;
|
friend _Recursive_dir_enum_impl;
|
||||||
friend void _Copy_impl(
|
friend void _Copy_impl(
|
||||||
const directory_entry& _From, const _STD filesystem::path& _To, copy_options _Options, error_code& _Ec);
|
const directory_entry& _From, const _STD filesystem::path& _To, copy_options _Options, error_code& _Ec);
|
||||||
|
|
||||||
|
|
|
@ -2330,9 +2330,6 @@ namespace ranges {
|
||||||
/* [[no_unique_address]] */ _Vw _Range{};
|
/* [[no_unique_address]] */ _Vw _Range{};
|
||||||
/* [[no_unique_address]] */ _Movable_box<_Fn> _Fun{};
|
/* [[no_unique_address]] */ _Movable_box<_Fn> _Fun{};
|
||||||
|
|
||||||
template <bool _Const>
|
|
||||||
class _Sentinel;
|
|
||||||
|
|
||||||
template <bool _Const>
|
template <bool _Const>
|
||||||
struct _Category_base {};
|
struct _Category_base {};
|
||||||
|
|
||||||
|
@ -2350,10 +2347,7 @@ namespace ranges {
|
||||||
template <bool _Const>
|
template <bool _Const>
|
||||||
class _Iterator : public _Category_base<_Const> {
|
class _Iterator : public _Category_base<_Const> {
|
||||||
private:
|
private:
|
||||||
template <bool>
|
friend transform_view;
|
||||||
friend class _Iterator;
|
|
||||||
template <bool>
|
|
||||||
friend class _Sentinel;
|
|
||||||
|
|
||||||
using _Parent_t = _Maybe_const<_Const, transform_view>;
|
using _Parent_t = _Maybe_const<_Const, transform_view>;
|
||||||
using _Base = _Maybe_const<_Const, _Vw>;
|
using _Base = _Maybe_const<_Const, _Vw>;
|
||||||
|
@ -2603,8 +2597,7 @@ namespace ranges {
|
||||||
template <bool _Const>
|
template <bool _Const>
|
||||||
class _Sentinel {
|
class _Sentinel {
|
||||||
private:
|
private:
|
||||||
template <bool>
|
friend transform_view;
|
||||||
friend class _Sentinel;
|
|
||||||
|
|
||||||
using _Parent_t = _Maybe_const<_Const, transform_view>;
|
using _Parent_t = _Maybe_const<_Const, transform_view>;
|
||||||
using _Base = _Maybe_const<_Const, _Vw>;
|
using _Base = _Maybe_const<_Const, _Vw>;
|
||||||
|
@ -2776,8 +2769,7 @@ namespace ranges {
|
||||||
template <bool _Const, bool _Wrapped = true>
|
template <bool _Const, bool _Wrapped = true>
|
||||||
class _Sentinel {
|
class _Sentinel {
|
||||||
private:
|
private:
|
||||||
template <bool, bool>
|
friend take_view;
|
||||||
friend class _Sentinel;
|
|
||||||
|
|
||||||
using _Base_t = _Maybe_const<_Const, _Vw>;
|
using _Base_t = _Maybe_const<_Const, _Vw>;
|
||||||
using _Base_sentinel = _Maybe_wrapped<_Wrapped, sentinel_t<_Base_t>>;
|
using _Base_sentinel = _Maybe_wrapped<_Wrapped, sentinel_t<_Base_t>>;
|
||||||
|
@ -3070,8 +3062,7 @@ namespace ranges {
|
||||||
template <bool _Const, bool _Wrapped = true>
|
template <bool _Const, bool _Wrapped = true>
|
||||||
class _Sentinel {
|
class _Sentinel {
|
||||||
private:
|
private:
|
||||||
template <bool, bool>
|
friend take_while_view;
|
||||||
friend class _Sentinel;
|
|
||||||
|
|
||||||
using _Base_t = _Maybe_const<_Const, _Vw>;
|
using _Base_t = _Maybe_const<_Const, _Vw>;
|
||||||
using _Base_iterator = _Maybe_wrapped<_Wrapped, iterator_t<_Base_t>>;
|
using _Base_iterator = _Maybe_wrapped<_Wrapped, iterator_t<_Base_t>>;
|
||||||
|
@ -4562,9 +4553,7 @@ namespace ranges {
|
||||||
template <bool _Const>
|
template <bool _Const>
|
||||||
class _Outer_iter : public _Outer_iter_base<iterator_t<_Maybe_const<_Const, _Vw>>> {
|
class _Outer_iter : public _Outer_iter_base<iterator_t<_Maybe_const<_Const, _Vw>>> {
|
||||||
private:
|
private:
|
||||||
template <bool>
|
friend lazy_split_view;
|
||||||
friend class _Inner_iter;
|
|
||||||
friend _Outer_iter<true>;
|
|
||||||
|
|
||||||
using _Mybase = _Outer_iter_base<iterator_t<_Maybe_const<_Const, _Vw>>>;
|
using _Mybase = _Outer_iter_base<iterator_t<_Maybe_const<_Const, _Vw>>>;
|
||||||
using _ParentTy = _Maybe_const<_Const, lazy_split_view>;
|
using _ParentTy = _Maybe_const<_Const, lazy_split_view>;
|
||||||
|
@ -4934,11 +4923,9 @@ namespace ranges {
|
||||||
/* [[no_unique_address]] */ _Pat _Pattern{};
|
/* [[no_unique_address]] */ _Pat _Pattern{};
|
||||||
_Non_propagating_cache<subrange<iterator_t<_Vw>>> _Next{};
|
_Non_propagating_cache<subrange<iterator_t<_Vw>>> _Next{};
|
||||||
|
|
||||||
class _Sentinel;
|
|
||||||
|
|
||||||
class _Iterator {
|
class _Iterator {
|
||||||
private:
|
private:
|
||||||
friend _Sentinel;
|
friend split_view;
|
||||||
|
|
||||||
split_view* _Parent = nullptr;
|
split_view* _Parent = nullptr;
|
||||||
iterator_t<_Vw> _Current = {};
|
iterator_t<_Vw> _Current = {};
|
||||||
|
@ -5601,9 +5588,6 @@ namespace ranges {
|
||||||
private:
|
private:
|
||||||
/* [[no_unique_address]] */ _Vw _Range{};
|
/* [[no_unique_address]] */ _Vw _Range{};
|
||||||
|
|
||||||
template <bool _Const>
|
|
||||||
class _Sentinel;
|
|
||||||
|
|
||||||
template <class _Base>
|
template <class _Base>
|
||||||
struct _Category_base {};
|
struct _Category_base {};
|
||||||
|
|
||||||
|
@ -5619,10 +5603,7 @@ namespace ranges {
|
||||||
template <bool _Const>
|
template <bool _Const>
|
||||||
class _Iterator : public _Category_base<_Maybe_const<_Const, _Vw>> {
|
class _Iterator : public _Category_base<_Maybe_const<_Const, _Vw>> {
|
||||||
private:
|
private:
|
||||||
template <bool>
|
friend elements_view;
|
||||||
friend class _Iterator;
|
|
||||||
template <bool>
|
|
||||||
friend class _Sentinel;
|
|
||||||
|
|
||||||
using _Base = _Maybe_const<_Const, _Vw>;
|
using _Base = _Maybe_const<_Const, _Vw>;
|
||||||
|
|
||||||
|
@ -5850,8 +5831,7 @@ namespace ranges {
|
||||||
template <bool _Const>
|
template <bool _Const>
|
||||||
class _Sentinel {
|
class _Sentinel {
|
||||||
private:
|
private:
|
||||||
template <bool>
|
friend elements_view;
|
||||||
friend class _Sentinel;
|
|
||||||
|
|
||||||
using _Base = _Maybe_const<_Const, _Vw>;
|
using _Base = _Maybe_const<_Const, _Vw>;
|
||||||
template <bool _OtherConst>
|
template <bool _OtherConst>
|
||||||
|
@ -6359,10 +6339,9 @@ namespace ranges {
|
||||||
range_difference_t<_Vw> _Remainder = 0;
|
range_difference_t<_Vw> _Remainder = 0;
|
||||||
_Non_propagating_cache<iterator_t<_Vw>> _Current{};
|
_Non_propagating_cache<iterator_t<_Vw>> _Current{};
|
||||||
|
|
||||||
class _Outer_iterator;
|
|
||||||
class _Inner_iterator {
|
class _Inner_iterator {
|
||||||
private:
|
private:
|
||||||
friend struct _Outer_iterator::value_type;
|
friend chunk_view;
|
||||||
chunk_view* _Parent{};
|
chunk_view* _Parent{};
|
||||||
|
|
||||||
constexpr explicit _Inner_iterator(chunk_view* _Parent_) noexcept : _Parent(_Parent_) {}
|
constexpr explicit _Inner_iterator(chunk_view* _Parent_) noexcept : _Parent(_Parent_) {}
|
||||||
|
|
|
@ -115,12 +115,12 @@ public:
|
||||||
__PURE_APPDOMAIN_GLOBAL static int _Id_cnt;
|
__PURE_APPDOMAIN_GLOBAL static int _Id_cnt;
|
||||||
};
|
};
|
||||||
|
|
||||||
class _Locimp;
|
struct _Facet_guard;
|
||||||
|
|
||||||
class _CRTIMP2_PURE_IMPORT facet : public _Facet_base, public _Crt_new_delete {
|
class _CRTIMP2_PURE_IMPORT facet : public _Facet_base, public _Crt_new_delete {
|
||||||
// base class for all locale facets, performs reference counting
|
// base class for all locale facets, performs reference counting
|
||||||
private:
|
private:
|
||||||
friend struct _Facet_guard;
|
friend _Facet_guard;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
static size_t __CLRCALL_OR_CDECL _Getcat(const facet** = nullptr, const locale* = nullptr) {
|
static size_t __CLRCALL_OR_CDECL _Getcat(const facet** = nullptr, const locale* = nullptr) {
|
||||||
|
|
Загрузка…
Ссылка в новой задаче