зеркало из 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)
|
||||
|
||||
class reference { // proxy for an element
|
||||
friend bitset<_Bits>;
|
||||
friend bitset;
|
||||
|
||||
public:
|
||||
_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
|
||||
public:
|
||||
__CLR_OR_THIS_CALL bad_alloc() noexcept
|
||||
|
@ -143,7 +145,7 @@ public:
|
|||
__CLR_OR_THIS_CALL ~bad_alloc() noexcept override {}
|
||||
|
||||
private:
|
||||
friend class bad_array_new_length;
|
||||
friend bad_array_new_length;
|
||||
|
||||
__CLR_OR_THIS_CALL bad_alloc(const char* _Message) noexcept
|
||||
: 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>;
|
||||
#endif // ^^^ !_HAS_CXX20
|
||||
|
||||
struct _Dir_enum_impl;
|
||||
struct _Recursive_dir_enum_impl;
|
||||
|
||||
_EXPORT_STD class directory_entry {
|
||||
public:
|
||||
// [fs.dir.entry.cons], constructors and destructor
|
||||
|
@ -2472,8 +2475,8 @@ namespace filesystem {
|
|||
return _Error;
|
||||
}
|
||||
|
||||
friend struct _Dir_enum_impl;
|
||||
friend struct _Recursive_dir_enum_impl;
|
||||
friend _Dir_enum_impl;
|
||||
friend _Recursive_dir_enum_impl;
|
||||
friend void _Copy_impl(
|
||||
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]] */ _Movable_box<_Fn> _Fun{};
|
||||
|
||||
template <bool _Const>
|
||||
class _Sentinel;
|
||||
|
||||
template <bool _Const>
|
||||
struct _Category_base {};
|
||||
|
||||
|
@ -2350,10 +2347,7 @@ namespace ranges {
|
|||
template <bool _Const>
|
||||
class _Iterator : public _Category_base<_Const> {
|
||||
private:
|
||||
template <bool>
|
||||
friend class _Iterator;
|
||||
template <bool>
|
||||
friend class _Sentinel;
|
||||
friend transform_view;
|
||||
|
||||
using _Parent_t = _Maybe_const<_Const, transform_view>;
|
||||
using _Base = _Maybe_const<_Const, _Vw>;
|
||||
|
@ -2603,8 +2597,7 @@ namespace ranges {
|
|||
template <bool _Const>
|
||||
class _Sentinel {
|
||||
private:
|
||||
template <bool>
|
||||
friend class _Sentinel;
|
||||
friend transform_view;
|
||||
|
||||
using _Parent_t = _Maybe_const<_Const, transform_view>;
|
||||
using _Base = _Maybe_const<_Const, _Vw>;
|
||||
|
@ -2776,8 +2769,7 @@ namespace ranges {
|
|||
template <bool _Const, bool _Wrapped = true>
|
||||
class _Sentinel {
|
||||
private:
|
||||
template <bool, bool>
|
||||
friend class _Sentinel;
|
||||
friend take_view;
|
||||
|
||||
using _Base_t = _Maybe_const<_Const, _Vw>;
|
||||
using _Base_sentinel = _Maybe_wrapped<_Wrapped, sentinel_t<_Base_t>>;
|
||||
|
@ -3070,8 +3062,7 @@ namespace ranges {
|
|||
template <bool _Const, bool _Wrapped = true>
|
||||
class _Sentinel {
|
||||
private:
|
||||
template <bool, bool>
|
||||
friend class _Sentinel;
|
||||
friend take_while_view;
|
||||
|
||||
using _Base_t = _Maybe_const<_Const, _Vw>;
|
||||
using _Base_iterator = _Maybe_wrapped<_Wrapped, iterator_t<_Base_t>>;
|
||||
|
@ -4562,9 +4553,7 @@ namespace ranges {
|
|||
template <bool _Const>
|
||||
class _Outer_iter : public _Outer_iter_base<iterator_t<_Maybe_const<_Const, _Vw>>> {
|
||||
private:
|
||||
template <bool>
|
||||
friend class _Inner_iter;
|
||||
friend _Outer_iter<true>;
|
||||
friend lazy_split_view;
|
||||
|
||||
using _Mybase = _Outer_iter_base<iterator_t<_Maybe_const<_Const, _Vw>>>;
|
||||
using _ParentTy = _Maybe_const<_Const, lazy_split_view>;
|
||||
|
@ -4934,11 +4923,9 @@ namespace ranges {
|
|||
/* [[no_unique_address]] */ _Pat _Pattern{};
|
||||
_Non_propagating_cache<subrange<iterator_t<_Vw>>> _Next{};
|
||||
|
||||
class _Sentinel;
|
||||
|
||||
class _Iterator {
|
||||
private:
|
||||
friend _Sentinel;
|
||||
friend split_view;
|
||||
|
||||
split_view* _Parent = nullptr;
|
||||
iterator_t<_Vw> _Current = {};
|
||||
|
@ -5601,9 +5588,6 @@ namespace ranges {
|
|||
private:
|
||||
/* [[no_unique_address]] */ _Vw _Range{};
|
||||
|
||||
template <bool _Const>
|
||||
class _Sentinel;
|
||||
|
||||
template <class _Base>
|
||||
struct _Category_base {};
|
||||
|
||||
|
@ -5619,10 +5603,7 @@ namespace ranges {
|
|||
template <bool _Const>
|
||||
class _Iterator : public _Category_base<_Maybe_const<_Const, _Vw>> {
|
||||
private:
|
||||
template <bool>
|
||||
friend class _Iterator;
|
||||
template <bool>
|
||||
friend class _Sentinel;
|
||||
friend elements_view;
|
||||
|
||||
using _Base = _Maybe_const<_Const, _Vw>;
|
||||
|
||||
|
@ -5850,8 +5831,7 @@ namespace ranges {
|
|||
template <bool _Const>
|
||||
class _Sentinel {
|
||||
private:
|
||||
template <bool>
|
||||
friend class _Sentinel;
|
||||
friend elements_view;
|
||||
|
||||
using _Base = _Maybe_const<_Const, _Vw>;
|
||||
template <bool _OtherConst>
|
||||
|
@ -6359,10 +6339,9 @@ namespace ranges {
|
|||
range_difference_t<_Vw> _Remainder = 0;
|
||||
_Non_propagating_cache<iterator_t<_Vw>> _Current{};
|
||||
|
||||
class _Outer_iterator;
|
||||
class _Inner_iterator {
|
||||
private:
|
||||
friend struct _Outer_iterator::value_type;
|
||||
friend chunk_view;
|
||||
chunk_view* _Parent{};
|
||||
|
||||
constexpr explicit _Inner_iterator(chunk_view* _Parent_) noexcept : _Parent(_Parent_) {}
|
||||
|
|
|
@ -115,12 +115,12 @@ public:
|
|||
__PURE_APPDOMAIN_GLOBAL static int _Id_cnt;
|
||||
};
|
||||
|
||||
class _Locimp;
|
||||
struct _Facet_guard;
|
||||
|
||||
class _CRTIMP2_PURE_IMPORT facet : public _Facet_base, public _Crt_new_delete {
|
||||
// base class for all locale facets, performs reference counting
|
||||
private:
|
||||
friend struct _Facet_guard;
|
||||
friend _Facet_guard;
|
||||
|
||||
public:
|
||||
static size_t __CLRCALL_OR_CDECL _Getcat(const facet** = nullptr, const locale* = nullptr) {
|
||||
|
|
Загрузка…
Ссылка в новой задаче