@@ -111,6 +111,10 @@ template <typename Character>
111111class console_output_adapter
112112 : public output_adapter_common<Character, console_output_adapter<Character>>
113113{
114+ #ifndef _MSC_VER // For retarded compilers!
115+ using oac_base = output_adapter_common<Character, console_output_adapter<Character>>;
116+ using oac_base::write_string_impl;
117+ #endif
114118public:
115119 typedef __acrt_stdio_char_traits<Character> char_traits;
116120
@@ -141,6 +145,10 @@ template <typename Character>
141145class stream_output_adapter
142146 : public output_adapter_common<Character, stream_output_adapter<Character>>
143147{
148+ #ifndef _MSC_VER // For retarded compilers!
149+ using oac_base = output_adapter_common<Character, stream_output_adapter<Character>>;
150+ using oac_base::write_string_impl;
151+ #endif
144152public:
145153 typedef __acrt_stdio_char_traits<Character> char_traits;
146154
@@ -969,6 +977,11 @@ class output_adapter_data
969977 : protected common_data<Character>
970978{
971979protected:
980+ #ifndef _MSC_VER // For retarded compilers!
981+ using common_data<Character>::_options;
982+ using common_data<Character>::_format_it;
983+ using common_data<Character>::_valist_it;
984+ #endif
972985 output_adapter_data (
973986 OutputAdapter const & output_adapter,
974987 uint64_t const options,
@@ -1003,6 +1016,12 @@ class standard_base
10031016 : protected output_adapter_data<Character, OutputAdapter>
10041017{
10051018protected:
1019+ #ifndef _MSC_VER // For retarded compilers!
1020+ using common_data_base = typename output_adapter_data<Character, OutputAdapter>::template common_data<Character>;
1021+ using common_data_base::_valist_it;
1022+ using common_data_base::_field_width;
1023+ using common_data_base::_precision;
1024+ #endif
10061025 template <typename ... Ts>
10071026 standard_base (Ts&&... arguments) throw ()
10081027 : output_adapter_data<Character, OutputAdapter>{arguments... },
@@ -1106,6 +1125,11 @@ class format_validation_base
11061125 : protected standard_base<Character, OutputAdapter>
11071126{
11081127protected:
1128+ #ifndef _MSC_VER // For retarded compilers!
1129+ using common_data_base = typename standard_base<Character, OutputAdapter>::template output_adapter_data<Character, OutputAdapter>::template common_data<Character>;
1130+ using common_data_base::_ptd;
1131+ using common_data_base::_state;
1132+ #endif
11091133 template <typename ... Ts>
11101134 format_validation_base (Ts&&... arguments) throw()
11111135 : standard_base<Character, OutputAdapter>{arguments...}
@@ -1150,6 +1174,19 @@ class positional_parameter_base
11501174 : protected format_validation_base<Character, OutputAdapter>
11511175{
11521176protected:
1177+ #if defined(__GNUC__) || defined(__clang__) // For retarded compilers!
1178+ using common_data_base = typename format_validation_base<Character, OutputAdapter>::template standard_base<Character, OutputAdapter>::template output_adapter_data<Character, OutputAdapter>::template common_data<Character>;
1179+ using output_adapter_data = typename format_validation_base<Character, OutputAdapter>::template standard_base<Character, OutputAdapter>::template output_adapter_data<Character, OutputAdapter>;
1180+ using common_data_base::_format_it;
1181+ using common_data_base::_ptd;
1182+ using common_data_base::_field_width;
1183+ using common_data_base::_precision;
1184+ using common_data_base::_format_char;
1185+ using common_data_base::_valist_it;
1186+ using common_data_base::_length;
1187+ using common_data_base::_state;
1188+ using common_data_base::_options;
1189+ #endif
11531190
11541191 typedef positional_parameter_base self_type;
11551192 typedef format_validation_base base_type;
@@ -1641,6 +1678,39 @@ class output_processor
16411678 : private ProcessorBase
16421679{
16431680public:
1681+ #ifndef _MSC_VER // For retarded compilers!
1682+ using ProcessorBase::advance_to_next_pass;
1683+ using ProcessorBase::validate_and_update_state_at_beginning_of_format_character;
1684+ using ProcessorBase::validate_and_update_state_at_end_of_format_string;
1685+ using ProcessorBase::should_skip_normal_state_processing;
1686+ using ProcessorBase::update_field_width;
1687+ using ProcessorBase::should_format;
1688+ using ProcessorBase::update_precision;
1689+ using ProcessorBase::should_skip_type_state_output;
1690+ using ProcessorBase::validate_state_for_type_case_a;
1691+ using ProcessorBase::tchar_string;
1692+ using ProcessorBase::state_transition_table;
1693+ using ProcessorBase::state_count;
1694+ using oad_base = typename ProcessorBase::output_adapter_data;
1695+ using oad_base::_output_adapter;
1696+ using common_data_base = typename ProcessorBase::common_data_base;
1697+ using common_data_base::_string_length;
1698+ using common_data_base::_ptd;
1699+ using common_data_base::_format_it;
1700+ using common_data_base::_state;
1701+ using common_data_base::_format_char;
1702+ using common_data_base::_characters_written;
1703+ using common_data_base::_string_is_wide;
1704+ using common_data_base::_field_width;
1705+ using common_data_base::_suppress_output;
1706+ using common_data_base::_flags;
1707+ using common_data_base::_precision;
1708+ using common_data_base::_length;
1709+ using common_data_base::_options;
1710+ using common_data_base::_buffer;
1711+ using common_data_base::_narrow_string;
1712+ using common_data_base::_wide_string;
1713+ #endif
16441714
16451715 typedef __acrt_stdio_char_traits<Character> char_traits;
16461716
0 commit comments