#endif
private:
- friend class _Dir;
+ friend struct _Dir;
friend class directory_iterator;
friend class recursive_directory_iterator;
tolower(_CharT, const locale&);
// 22.2.1 and 22.2.1.3 ctype
- class ctype_base;
+ struct ctype_base;
template<typename _CharT>
class ctype;
template<> class ctype<char>;
_GLIBCXX_END_NAMESPACE_CXX11
// 22.2.7 message retrieval
- class messages_base;
+ struct messages_base;
_GLIBCXX_BEGIN_NAMESPACE_CXX11
template<typename _CharT>
class messages;
* satisfies the requirements of such a traits class.
*/
template<typename _Ch_type>
- struct regex_traits
+ class regex_traits
{
public:
typedef _Ch_type char_type;
typedef std::basic_string<char_type> string_type;
typedef std::locale locale_type;
+
private:
struct _RegexMask
{
{ return _M_t._M_reinsert_node_hint_unique(__hint, std::move(__nh)); }
template<typename, typename>
- friend class std::_Rb_tree_merge_helper;
+ friend struct std::_Rb_tree_merge_helper;
template<typename _Cmp2>
void
{ return _M_t._M_reinsert_node_hint_equal(__hint, std::move(__nh)); }
template<typename, typename>
- friend class std::_Rb_tree_merge_helper;
+ friend struct std::_Rb_tree_merge_helper;
template<typename _Cmp2>
void
{ return _M_t._M_reinsert_node_hint_equal(__hint, std::move(__nh)); }
template<typename, typename>
- friend class std::_Rb_tree_merge_helper;
+ friend struct std::_Rb_tree_merge_helper;
template<typename _Compare1>
void
{ return _M_t._M_reinsert_node_hint_unique(__hint, std::move(__nh)); }
template<typename, typename>
- friend class std::_Rb_tree_merge_helper;
+ friend struct std::_Rb_tree_merge_helper;
template<typename _Compare1>
void
* @param Tp Type of real and imaginary values.
*/
template<typename _Tp>
- struct complex
+ class complex
{
+ public:
/// Value typedef.
typedef _Tp value_type;
/// 26.2.3 complex specializations
/// complex<float> specialization
template<>
- struct complex<float>
+ class complex<float>
{
+ public:
typedef float value_type;
typedef __complex__ float _ComplexT;
/// 26.2.3 complex specializations
/// complex<double> specialization
template<>
- struct complex<double>
+ class complex<double>
{
+ public:
typedef double value_type;
typedef __complex__ double _ComplexT;
/// 26.2.3 complex specializations
/// complex<long double> specialization
template<>
- struct complex<long double>
+ class complex<long double>
{
+ public:
typedef long double value_type;
typedef __complex__ long double _ComplexT;
/// Type of the function object returned from bind().
template<typename _Signature>
- struct _Bind;
+ class _Bind;
template<typename _Functor, typename... _Bound_args>
class _Bind<_Functor(_Bound_args...)>
/// Type of the function object returned from bind<R>().
template<typename _Result, typename _Signature>
- struct _Bind_result;
+ class _Bind_result;
template<typename _Result, typename _Functor, typename... _Bound_args>
class _Bind_result<_Result, _Functor(_Bound_args...)>
typedef __future_base::_State_base _State;
typedef __future_base::_Result<_Res> _Res_type;
typedef __future_base::_Ptr<_Res_type> _Ptr_type;
- template<typename, typename> friend class _State::_Setter;
+ template<typename, typename> friend struct _State::_Setter;
friend _State;
shared_ptr<_State> _M_future;
typedef __future_base::_State_base _State;
typedef __future_base::_Result<_Res&> _Res_type;
typedef __future_base::_Ptr<_Res_type> _Ptr_type;
- template<typename, typename> friend class _State::_Setter;
+ template<typename, typename> friend struct _State::_Setter;
friend _State;
shared_ptr<_State> _M_future;
typedef __future_base::_State_base _State;
typedef __future_base::_Result<void> _Res_type;
typedef __future_base::_Ptr<_Res_type> _Ptr_type;
- template<typename, typename> friend class _State::_Setter;
+ template<typename, typename> friend struct _State::_Setter;
friend _State;
shared_ptr<_State> _M_future;
* library might be represented by an HTTP response status code (e.g. 404)
* and a custom category defined by the library.
*/
- struct error_code
+ class error_code
{
+ public:
error_code() noexcept
: _M_value(0), _M_cat(&system_category()) { }
* An `error_condition` represents something that the program can test for,
* and subsequently take appropriate action.
*/
- struct error_condition
+ class error_condition
{
+ public:
error_condition() noexcept
: _M_value(0), _M_cat(&generic_category()) { }
private:
friend class thread;
- friend class hash<id>;
+ friend struct hash<id>;
friend bool
operator==(id __x, id __y) noexcept;
: public _Tuple_impl<_Idx + 1, _Tail...>,
private _Head_base<_Idx, _Head>
{
- template<size_t, typename...> friend class _Tuple_impl;
+ template<size_t, typename...> friend struct _Tuple_impl;
typedef _Tuple_impl<_Idx + 1, _Tail...> _Inherited;
typedef _Head_base<_Idx, _Head> _Base;
struct _Tuple_impl<_Idx, _Head>
: private _Head_base<_Idx, _Head>
{
- template<size_t, typename...> friend class _Tuple_impl;
+ template<size_t, typename...> friend struct _Tuple_impl;
typedef _Head_base<_Idx, _Head> _Base;
/// result_of
template<typename _Signature>
- class result_of;
+ struct result_of;
// Sfinae-friendly result_of implementation:
size_t _M_size;
_Tp* __restrict__ _M_data;
- friend class _Array<_Tp>;
+ friend struct _Array<_Tp>;
};
#if __cpp_deduction_guides >= 201606